HOME > 即効テクニック > Excel VBA > ファイル操作関連のテクニック > ブックのプロパティを取得する

即効テクニック

ファイル操作関連のテクニック

ブックのプロパティを取得する

(Excel 97/2000/2002/2003/2007)
ブックには「タイトル」や「作成者」などの情報を記録することができます。
これらの情報はブックの「プロパティ」に記録され、エクスプローラなどでブックを右クリックして表示されるダイアログボックスでも確認できます。

ブックのプロパティを編集するには、[ファイル]メニューの[プロパティ]を実行し、[ファイルの概要]タブで必要な情報を入力します。
なお、[オプション]ダイアログボックスの[全般]タブ[保存時にプロパティを確認する]チェックボックスをオンにしておくと、ブックを保存するときに必ず[プロパティ]ダイアログボックスが開くので、プロパティを活用する場合には便利です。

さて、ブックに設定されているプロパティを取得するには、WorkbookオブジェクトのBuiltinDocumentPropertieオブジェクトを操作します。
次のコードは、C:\Sample.xlsを開いて、プロパティの「タイトル」を取得します。

Sub Sample1()
    Dim buf As String
    Workbooks.Open "C:\Sample.xls"
    buf = ActiveWorkbook.BuiltinDocumentProperties(1)
    ActiveWorkbook.Close
    MsgBox buf
End Sub
ブックのBuiltinDocumentPropertieオブジェクトを操作するときは、上のように一度ブックを開かなければなりません。 ブックを開かないでプロパティを取得するには、WSH(Windows Scripting Host)のShellオブジェクトを使います。 次のコードは、C:\Sample.xlsをExcelで開かずにプロパティの「タイトル」を取得します。
Sub Sample2()
    Dim Shell, Folder, buf As String
    Set Shell = CreateObject("Shell.Application")
    Set Folder = Shell.Namespace("C:\")
    buf = Folder.GetDetailsOf(Folder.ParseName("Sample.xls"), 10)
    MsgBox buf
    Set Folder = Nothing
    Set Shell = Nothing
End Sub
ファイルサイズの大きなブックは、Excelで開くだけで時間がかかる場合もあります。 そんなときは、WSHを利用すると便利です。 なお、WSHのGetDetailsOfメソッドは「タイトル」や「作成者」といったブックのプロパティだけでなく、MP3ファイルの「演奏時間」や「ビットレート」、画像ファイルの「カメラ名」「大きさ」などを取得することも可能です。