- Home ›
- Excel VBA入門 ›
- ブックの参照
Workbookオブジェクトの取得
ブックを表すオブジェクトは Workbook オブジェクトです。ここでは Excel VBA で Workbook オブジェクトを取得する方法について解説します。
(Last modified: )
Workbookオブジェクトを取得する
ブックに対して何らかの作業を行うには、ブックは開いておかなければなりません。開いているすべてのブックはWorkbooksコレクションに含まれています。個々のブックを表すWorkbookオブジェクトはApplicationオブジェクトの「Workbooks」プロパティを使います。
Dim book1 As Workbook Set book1 = Application.Workbooks(インデックス番号)
Applicationオブジェクトを省略した場合にも、デフォルトの値としてApplicationオブジェクトが設定されているので記述してもしなくても構いません。
取得したいブックを指定するにはインデックス番号で指定するかブック名で指定します。インデックス番号はブックが開かれた順番に1から開始されるようです。(ただし、個人用マクロブックなども開いたブックとしてカウントされる場合もあるようですので、インデックス番号ではなくブック名を使ってブックを特定したほうがいいかもしれません)。
Dim book1 As Workbook Set book1 = Workbooks("VBAsample.xls")
サンプルプログラム
では簡単なサンプルで試してみましょう。実行するマクロは「VBAsample.xls」と言う名前のブックに含まれています。
Sub テスト() Dim book1 As Workbook Dim str As String Workbooks.Open "C:¥excelsample¥成績.xls" Set book1 = Workbooks("成績.xls") str = book1.Worksheets("Sheet1").Range("B2").Value MsgBox str End Sub
上記マクロを実行すると次のようになります。
今回は、「成績.xls」というブックを開いた後でそのブックに関するWorkbookオブジェクトを取得しています。そしてWorkbookオブジェクトに含まれるシートのさらにその中に含まれるセルの値を取得して表示しています。
-- --
Excel VBA で Workbook オブジェクトを取得する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。