Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » Workbooks.Itemとは?

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「vba workbooks.item」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

Excel VBA(Visual Basic for Applications)の「Workbooks.Item」というオブジェクト式が、何を意味しているのか、調べていた方による検索でしょうか。

Workbooks.Itemは単一のWorkbookオブジェクトを取得するプロパティ

まずは定義を。

Workbooks.Itemとは、開いている全ブックを表すWorkbooksコレクションオブジェクトから、単一のブックを表すWorkbookオブジェクトを取得するプロパティです。

オブジェクトブラウザーの詳細ペインに書かれている、

Workbooks.Itemとは?

「As Workbook」が、Workbookオブジェクトを返すことを示しています。

[スポンサードリンク]

WorkbooksコレクションのItemプロパティを確認するサンプルマクロ

定義だけを知っても、ピンと来ない方は多いでしょう。

WorkbooksコレクションオブジェクトのItemプロパティを使った、以下のマクロを実行してみてください。

Sub 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コレクションのデフォルトプロパティを確認するサンプルマクロ

続いて、以下のマクロを実行してみてください。

Sub 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オブジェクトを取得するオブジェクト式です。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » Workbooks.Itemとは?

「Workbooks・Workbook」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.