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

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

ワークシートの参照

VBAでワークシートの操作を行う場合は

  • Worksheet【ワークシート】オブジェクト
  • Application【アプリケーション】オブジェクト
  • Workbook【ワークブック】オブジェクト
  • Window【ウインドウ】オブジェクト

の各、プロパティやメソッドを使用して
ワークシートを参照し操作します。

ワークシートを参照するプロパティやメソッド一覧

それでは、各プロパティやメソッドの詳細について解説します。

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【リプレイス】(省略可)
    Trueまたは省略した場合は、現在選択しているシートの選択を
    解除して指定したシートを選択します。
    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でアラートの
表示を抑制して削除した後に戻しています。


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

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

フォローする

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