VBAで、ブックやワークシートなどのオブジェクトを指定するには以下のようにする。
コレクション名(オブジェクト名)
例えば、ブック「Book1.xlsx」やワークシート「Sheet1」を指定する場合、以下の通りとなる。
Workbooks("Book1.xlsx") 'ブック名を指定
Worksheets("sheet1") 'ワークシート名を指定
また、インデックス番号を用いてブックやワークシートを指定できる。
インデックス番号とは、コレクションの各要素に自動的に振られた番号である。
Workbooks(1) '複数のブックのうち、最初に開いたブック
Worksheets(1) '一番左のワークシート
オブジェクトの階層構造
オブジェクトは、Excel自体を表すApplicationオブジェクトを最上位とする下図のような階層構造にある。
VBAでオブジェクトを指定する場合、次の記述ルールに従う。
- オブジェクトとオブジェクトを「.」ピリオドで区切る
- 最上位であるApplicationオブジェクトの記述は省略する
- アクティブブック(作業対象となっているブック)が対象の場合は、ブック名は省略できる
- アクティブシート(最前面に表示されるシート)が対象の場合は、シート名は省略できる
例えば、アクティブブック内の「Sheet1」シートのセルA1の値を取得するには、次のように指定する。
Worksheets("Sheet1").Range("A1").value
VBAでは、上記のように階層構造を指定することで、目的のオブジェクトや値がどこにあるのかを正確に指定することがとても重要となる。
(参考)Excel マクロ&VBA [実践ビジネス入門講座]【完全版】 第2版 国本温子(著)SBクリエイティブ
コメント