officeproロゴ

Workbookオブジェクトの取得

広告

ブックを表すオブジェクトは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」と言う名前のブックに含まれています。

testbook1.bas

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オブジェクトに含まれるシートのさらにその中に含まれるセルの値を取得して表示しています。

( Written by Tatsuo Ikura )