ワークシートの参照
VBAでワークシートの操作を行う場合は
- Worksheet【ワークシート】オブジェクト
- Application【アプリケーション】オブジェクト
- Workbook【ワークブック】オブジェクト
- Window【ウインドウ】オブジェクト
の各、プロパティやメソッドを使用してワークシートを参照し操作します。
ワークシートを参照するプロパティやメソッド一覧
プロパティ | 内容 |
---|---|
Worksheets【ワークシーツ】 | 指定したワークシートを参照します。 |
Activesheet【アクティブシート】 | アクティブシートを参照します。 |
Select【セレクト】 | ワークシートを選択します。 |
Activate【アクティベート】 | ワークシートをアクティブにします。 |
SelectedSheets【セレクテッドシーツ】 | 選択しているすべてのシートを参照します。 |
Worksheets【ワークシーツ】プロパティ
指定したワークシートを参照するには、Worksheets【ワークシーツ】プロパティを使用します。引数Index【インデックス】にシート名やインデックス番号を指定して各ワークシートを参照します。
Worksheets【ワークシーツ】プロパティの書式と設定値(引数)の説明
[]内は省略可能です。
[オブジェクト].Worksheets(Index)
- オブジェクト(省略可)
Application【アプリケーション】オブジェクトまたはWorkbook【ワークブック】オブジェクトを指定します。Applicationオブジェクトを指定または、省略した場合は、作業中のブックのワークシートが対象になります。Workbookオブジェクトを指定した場合は、指定したブックのワークシートが対象になります。 - Index【インデックス】(必須)
インデックス番号またはワークシート名を指定します。インデックス番号は1から始まる常に左のワークシートから振られる連番です。シートの追加、削除、コピー、移動などの操作をすると番号が左のワークシートからの連番に振りなおされます。確実に特定のシートを参照したい場合は、ワークシート名で指定します。ワークシート名を引数に使用する場合はシート名をダブルクォーテーションで囲みます。「例:Worksheets(“sheet1”)」
※ワークシートを参照する方法でSheets【シーツ】プロパティも同じ働きをします。Sheetsプロパティはワークシート以外のグラブシートなども参照できます。使用方法は、Worksheetsプロパティと同じです。
Activesheet【アクティブシート】プロパティ
作業中のシートであるアクティブシートを参照するにはActivesheet【アクティブシート】プロパティを使用します。
Activesheet【アクティブシート】プロパティの書式と設定値の説明
[]内は省略可能です。
[オブジェクト].Activesheet
- オブジェクト(省略可)
Application【アプリケーション】オブジェクトまたは、Window【ウィンドウ】オブジェクトまたは、Workbook【ワークブック】オブジェクトを指定します。省略した場合は、現在作業中のアクティブブックのアクティブシートが対象になります。
左から1つ目のシートをアクティブにして
そのシート名をA1セルの値に変更するコード例
Sub シート参照() Worksheets(1).Activate ActiveSheet.Name = Range("A1").Value End Sub
実行前
実行後
Select【セレクト】メソッド
ワークシートを選択するには、Select【セレクト】メソッドを使用します。引数Replace【リプレイス】で現在選択しているシートの選択を解除するかどうかを指定できるため複数シートを同時に選択して「作業グループ」にすることができます。
Select【セレクト】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Select[(Replace)]
- オブジェクト(必須)
Worksheets【ワークシーツ】コレクションまたはWorksheet【ワークシート】オブジェクトを指定します。 - Replace【リプレイス】(省略可)
省略した場合は、現在選択しているシートの選択を解除して指定したシートを選択します。Falseに設定した場合は、現在選択しているシートに加えて指定したシートも選択できますが、アクティブになるシートは現在選択しているシートのみです。
Activate【アクティベート】メソッド
指定したワークシートをアクティブにするには、Activate【アクティベイト】メソッドを使用します。
Activate【アクティベイト】メソッドの書式と設定値の説明
オブジェクト.Activate
- オブジェクト(必須)
Worksheet【ワークシート】オブジェクトを指定します。
※選択されていないワークシートに対してActivate【アクティベイト】メソッドを使用すると、前の選択は解除され、指定したワークシートが選択されてアクティブになります。
※複数のワークシートが選択されている場合、選択されているいずれかのワークシートに対してActivateメソッド実行すると選択は解除されずに指定されたワークシートがアクティブになります。
選択範囲外やすべてのシートが選択状態でActivateメソッドを実行すると選択状態は解除されます。
Select(選択)とActivate(アクティブ)の違い
- Select(選択)の場合
複数のシートの選択が可能です。単一のシートを選択した場合は、Activateメソッドと同じ動作になりアクティブシートになります。 - Activate(アクティブ)の場合
アクティブにできるのは単一のシートです。シートをアクティブにすると指定したシートが、最前面に表示されて作業対象となります。
複数のシートを一度に選択する方法
Array【アレイ】関数でシートをまとめて参照して、Select【セレクト】メソッドを使用すると、一度に複数のシートを選択することができます。例としてSheet1 Sheet3を同時に選択する場合は
Worksheets(Array(“sheet1″,”sheet3”)).Select
インデックス番号で指定する場合は
Worksheets(Array(1,3)).Select
と記述します。
ブック内のすべてのシートを選択する場合はWorksheets【ワークシーツ】コレクションに対してSelect【セレクト】メソッドを使用し
Worksheets.select
と記述します。
複数のシートを引数Replaceで選択してsheet3をアクティブにするコード例
Sub 複数選択1() Worksheets("sheet1").Select Worksheets("sheet3").Select (False) Worksheets("sheet3").Activate End Sub
複数のシートをArray関数で選択してsheet3をアクティブにするコード例
Sub 複数選択2() Worksheets(Array("sheet1", "sheet3")).Select Worksheets("sheet3").Activate End Sub
すべてのシートを選択してsheet3をアクティブにするコード例
Sub 複数選択3() Worksheets.Select Worksheets("sheet3").Activate End Sub
※すべてのワークシートを選択して一つのシートをアクティブにするとシートの選択状態は解除されます。
SelectedSheets【セレクテッドシーツ】プロパティ
指定しているウィンドウで、選択しているすべてのシートを参照するには、SelectedSheets【セレクテッドシーツ】プロパティを使用します。
選択している複数のシートに対して、削除やコピーなどの処理をしたい場合に利用できます。
SelectedSheets【セレクテッドシーツ】プロパティの書式と設定値の説明
オブジェクト.SelectedSheets
- オブジェクト(必須)
Window【ウィンドウ】オブジェクトを指定します。
必ずWindowオブジェクトを使用してください。Worksheet【ワークシート】オブジェクトは使用できません。
複数の選択シートを参照して削除するコート例
Sub 複数参照() Worksheets("sheet1").Select Worksheets("sheet3").Select (False) Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True End Sub
シートを削除するまえに「本当に削除していいか」のアラートがでるので
Application.DisplayAlerts = Falseでアラートの表示を抑制して削除した後に戻しています。
以上で、ワークシートを参照するプロパティやメソッドについての解説を終了します。ありがとうございました。