ブックのドキュメントプロパティとは
ブックのドキュメントプロパティとは、エクスプローラ上でブックを選択して、右クリックのメニューから「プロパティ」を表示させたときに見える情報のことを指しています。
↓下のフォルダに新規作成したブックAがあります。
ブックAのプロパティの詳細タブを開くと今は何も設定していない状態になっています。
ちなみにOfficeのバージョンは「Microsoft Office Professional Plus 2021」でWindows10を使用しています。
マクロでブックのドキュメントプロパティを書き込む方法
マクロで実行している内容
・ブックAを開く
・プロパティを設定する(タイトル・件名・タグ・分類項目・コメント)
・ブックAを保存して閉じる
Sub Sample1()
With Workbooks.Open("C:フォルダパス\ブックA.xlsx")
'プロパティを設定
.BuiltinDocumentProperties("Title").Value = "たいとる"
.BuiltinDocumentProperties("Subject").Value = "けんめい"
.BuiltinDocumentProperties("Keywords").Value = "たぐ"
.BuiltinDocumentProperties("Category").Value = "ぶんるいこうもく"
.BuiltinDocumentProperties("Comments").Value = "こめんと"
'ブックを保存して閉じる
.Close SaveChanges:=True
End With
End Sub
↓マクロ実行後に再度プロパティを確認すると設定されていることが分かります。
マクロでブックのドキュメントプロパティを取得する方法
マクロで実行している内容
・ブックAを開く
・プロパティを取得してマクロブックのシートに書き出す
(タイトル・件名・タグ・分類項目・コメント)
・ブックAを閉じる
Sub Sample1()
With Workbooks.Open("C:フォルダパス\ブックA.xlsx")
'プロパティを設定
ThisWorkbook.Worksheets(1).Range("B3") = .BuiltinDocumentProperties("Title").Value 'タイトル
ThisWorkbook.Worksheets(1).Range("B4") = .BuiltinDocumentProperties("Subject").Value '件名
ThisWorkbook.Worksheets(1).Range("B5") = .BuiltinDocumentProperties("Keywords").Value 'タグ
ThisWorkbook.Worksheets(1).Range("B6") = .BuiltinDocumentProperties("Category").Value '分類項目
ThisWorkbook.Worksheets(1).Range("B7") = .BuiltinDocumentProperties("Comments").Value 'コメント
'ブックを閉じる
.Close SaveChanges:=False
End With
End Sub
マクロを実行するとブックAのプロパティの情報がシートに出力されます。
プロパティの設定は書き込めるものと書き込めないものが限られているようですが、取得はある程度可能です。
↓ご参考までに。
ブックのドキュメントプロパティをファイルを開かずに取得する
次はブックを開かずに、フォルダ内のブックのプロパティを取得する方法についてです。
フォルダ内にブックA~ブックCまで3つのファイルがあります。
ブックA~ブックCのそれぞれのプロパティの値は↓のようになっています。
マクロで実行している内容
・指定したフォルダ内のブックをループする
・プロパティを取得してマクロブックのシートに書き出す
(ファイル名・作成者・タイトル・件名・タグ・分類項目・コメント)
Sub Sample1()
Dim Shell As Object
Dim Folder As Object
Dim Target As String
Dim row As Long
Const Path As String = "C:フォルダパス\"
Set Shell = CreateObject("Shell.Application")
Set Folder = Shell.Namespace(Path)
Target = Dir(Path & "*.xlsx")
row = 1
Do While Target <> ""
row = row + 1
Cells(row, 1) = Folder.GetDetailsOf(Folder.ParseName(Target), 0) 'ファイル名
Cells(row, 2) = Folder.GetDetailsOf(Folder.ParseName(Target), 20) '作成者
Cells(row, 3) = Folder.GetDetailsOf(Folder.ParseName(Target), 21) 'タイトル
Cells(row, 4) = Folder.GetDetailsOf(Folder.ParseName(Target), 22) '件名
Cells(row, 5) = Folder.GetDetailsOf(Folder.ParseName(Target), 18) 'タグ
Cells(row, 6) = Folder.GetDetailsOf(Folder.ParseName(Target), 23) '分類項目
Cells(row, 7) = Folder.GetDetailsOf(Folder.ParseName(Target), 24) 'コメント
Target = Dir()
Loop
Set Folder = Nothing
Set Shell = Nothing
End Sub
マクロを実行すると、シートに各ブックのプロパティの値が出力されました。
※コードのコピー利用について
・コードのコピーは自由におこなっていただけます。
・気を付けて作成はしていますがコードには誤りがある可能性があります。
・自身の環境で動作確認をしていますが、すべての方の環境で同様に動くことは保証できません。
・データの破損等の責任は負いかねますのでご自身の責任のもとお使いください。