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

上記マクロを実行すると次のようになります。

Workbookオブジェクトの取得

今回は、「成績.xls」というブックを開いた後でそのブックに関するWorkbookオブジェクトを取得しています。そしてWorkbookオブジェクトに含まれるシートのさらにその中に含まれるセルの値を取得して表示しています。

-- --

Excel VBA で Workbook オブジェクトを取得する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。