「vba workbooks.item」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。
Excel VBA(Visual Basic for Applications)の「Workbooks.Item」というオブジェクト式が、何を意味しているのか、調べていた方による検索でしょうか。
Workbooks.Itemは単一のWorkbookオブジェクトを取得するプロパティ
まずは定義を。
Workbooks.Itemとは、開いている全ブックを表すWorkbooksコレクションオブジェクトから、単一のブックを表すWorkbookオブジェクトを取得するプロパティです。
オブジェクトブラウザーの詳細ペインに書かれている、
「As Workbook」が、Workbookオブジェクトを返すことを示しています。
WorkbooksコレクションのItemプロパティを確認するサンプルマクロ
定義だけを知っても、ピンと来ない方は多いでしょう。
WorkbooksコレクションオブジェクトのItemプロパティを使った、以下のマクロを実行してみてください。
Dim i As Long For i = 1 To Workbooks.Count
MsgBox Workbooks.Item(i).Name
Next i
End Sub
上記のマクロを実行すると、開いているブックの名前が順番にメッセージボックスへ表示されます。
開いているブックの数だけFor~Nextループを回して、
For i = 1 To Workbooks.Count
単一のブックを表すWorkbookオブジェクトをItemプロパティで取得して、その名前をメッセージボックスに表示しています。
MsgBox Workbooks.Item(i).Name
Workbooks.Itemプロパティの引数には、インデックス番号かブックの名前を指定することができ、上記のマクロではインデックス番号を使って、Workbookオブジェクト順番に取得しています。
Workbooksコレクションのデフォルトプロパティを確認するサンプルマクロ
続いて、以下のマクロを実行してみてください。
Dim i As Long For i = 1 To Workbooks.Count
MsgBox Workbooks(i).Name
Next i
End Sub
このマクロも実行すると、開いているブックの名前が順番に、メッセージボックスへ表示されます。
先のマクロで使われていた、
MsgBox Workbooks.Item(i).Name
というコードを見慣れない方でも、このマクロの
MsgBox Workbooks(i).Name
といったコードなら見慣れているという方は、相当いらっしゃるはずです。
「Workbooks.Item(i)」というオブジェクト式は、
「Workbooks(i)」と結果的に同じです。
いずれもWorkbooksコレクションオブジェクトから、単一のWorkbookオブジェクトを取得するオブジェクト式です。
- Newer:Unionメソッドの使い方
- Older:ピボットテーブル更新時に列幅を自動調整しないようにするExcelマクロ
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » Workbooks.Itemとは?