シートを参照するプロパティ
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 = TrueApplication.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
以上でワークシートの操作についての解説を終了します。
ありがとうございました。