Excel VBAワークシートを参照するプロパティ・メソッド

スポンサーリンク

ワークシートの参照

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でアラートの表示を抑制して削除した後に戻しています。


以上で、ワークシートを参照するプロパティやメソッドについての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告