Excel VBA ワークシートを操作する

スポンサーリンク
スポンサーリンク

シートを参照するプロパティ

Excel2007からのシートは、ワークシートとグラフシートの2種類があります。Worksheets【ワークシーツ】プロパティは、ワークシートを参照でき、Charts【チャーツ】プロパティは、グラフシートを参照できます。その他にVBAでは、シートの種類を問わずに参照できるSheets【シーツ】プロパティがあります。

Sheets【シーツ】コレクションとは

同じ種類のオブジェクトの集まりを「コレクション」といいます。Worksheet【ワークシート】の集まりは、Worksheets【ワークシーツ】コレクション、グラフシートの集まりは、Charts【チャーツ】コレクションすべてのシートの集まりは、Sheets【シーツ】コレクションになります。

Sheetsコレクション概略図


Worksheets.Addメソッド

新規ワークシートを追加するには、WorksheetsコレクションのAdd【アド】メソッドを使用します。

Worksheets.Addメソッドの書式

[]内は省略可能です。
Worksheets.Add[(Before, After, Count)]


  • Before【ビフォア】(省略可)
    指定したシートの前(左)に挿入されます。
    例:Sheet1の前に挿入の場合は、Befor:=Worksheets(“Sheet1”)
  • After【アフター】(省略可)
    指定したシートの後(右)に挿入されます。
    例:Sheet1の後に挿入の場合は、After:=Worksheets(“Sheet1”)
    BeforeとAfterは同時に指定できません。両方省略した場合は1番左に追加されます。
  • Count【カウント】(省略可)
    追加するシートの枚数を指定します。省略した場合は1枚です。
    例:3枚追加する場合は、Count:=3

シートの一番右にワークシートを1枚追加するケースのコード例

Worksheets.Add after:=Worksheets(Worksheets.Count)

名前を付けて1番右にワークシートを1枚追加するケースのコード例

Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = “追加”


シートを選択する

単体のシートの選択方法

  • シート名で指定する方法
    Sheets(“Sheet1”).Select または、Sheets(“Sheet1”).Activate

  • インデックス番号で指定する方法
    Sheets(1).select または、Sheets(1).Activate
    インデックス番号は左からの順番です。

複数のシートを選択する

  • すべてのシート選択
    Sheets.Select

  • シート名で選択
    Sheets(Array(“Sheet1,”Sheet2”)).Select

  • インデックス番号で指定
    Sheets(Array(1,2)).Select 
    複数シートの場合はActivate(アクティベート)は使えません。

シートを削除する

シート削除を実行すると「本当に削除しますか?」と確認メッセージがでて、マクロの実行が中断されるので
確認メッセージを表示させないようにします。 詳しくは、こちらをご覧ください。

  • シート名で削除
    Application.DisplayAlerts = False
    Sheets(“Sheet1”).Delete
    Application.DisplayAlerts = True

  • インデックス番号で削除
    Application.DisplayAlerts = False
    Sheets(1).Delete
    Application.DisplayAlerts = True

  • 複数削除
    Application.DisplayAlerts = False
    Sheets(Array(“Sheet1″,”Sheet2”)).Delete
    Application.DisplayAlerts = True


    Application.DisplayAlerts = False
    Sheets(Array(1,2)).Delete
    Application.DisplayAlerts = True


※すべてのシートを削除するとエラーになるので注意が必要です。

シートを移動する方法

シートを移動するときは、Move(ムーヴ)メソッドを使用します。

  • sheet1をsheet2の後に移動するコード
    Sheets(“Sheet1”).Move After:=Sheets(“Sheet2”)

  • 別のワークブックに移動する方法
    Sheets(“Sheet1”).Move After:=Workbook(“book2.XlSm”).Sheets(1)
    Workbookのカッコ内に移動先にワークブック名を記述します。
    Sheets(“Sheet1”).Move
    Moveの後に引数を指定しないと新規ブックに移動します。

シートをコピーする方法

シートをコピーするときは、Copy(コピー)メソッドを使用します。

  • 同じブック内にコピー
    Sheets(“Sheet1”).copy After:=Sheets(“Sheet2”)

  • 別のブックにコピー
    Sheets(“Sheet1”).Copy After:=Workbooks(“book2.xlsm”).Sheets(1)

  • 新規ブックにコピー
    Sheets(“Sheet1”).Copy

シート見出しに色を付ける方法

シート見出しの色は、Tab(タブ)オブジェクトのColorIndex(カラーインデクス)プロパティで指定します。

  • sheet1の見出しを赤に変更するコード
    Sheets(“Sheet1”).Tab.ColorIndex = 3

シートを非表示にする方法

ワークシートの非表示はVisible(ビジブル)プロパティを使用します。
値は xlHidden(エックスエルヒドゥン)または、xlVeryHidden(エックスエルベリーヒドゥン)です。
違いは、前者がユーザー操作で非表示が解除できますが後者はできないところです。

  • シート非表示のコード例
    Sheets(“Sheet1”).Visible = xlVeryHidden

シートを再表示する方法

非表示にしたシートを再表示するには、Visibleプロパティの値にTrueを代入します。

  • 非表示にしたシートを再表示するコード例
    Sheets(“Sheet1”).Visible = true

以上でワークシートの操作についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク