「wordのプロパティを取得するためのマクロ」
という検索が行われていました。
Word文書のプロパティを取得するVBA(Visual Basic for Applications)マクロを探している方による検索でしょうか。
On Error Resume Next
Dim p As DocumentProperty
For Each p In ActiveDocument.BuiltInDocumentProperties
Debug.Print p.Name & ": " & p.Value
Next
End Sub
上記のマクロを実行するとイミディエイトウィンドウに、プロパティの名前と値が出力されます。
やっていることは、For Each ~ Nextループ文で、ActiveDocument.BuiltInDocumentPropertiesコレクションを順番に参照して、DocumentProperty.NameプロパティとDocumentProperty.Valueプロパティを順番に出力しているだけです。
プロパティ値がないときにエラーとなるのを避けるために、ループ文に入る前にOn Error Resume Nextしています。
結果は同じようなものですが、以下のようなマクロのほうが、コレクションとオブジェクトの関係が参考になるかもしれません。On Error Resume Next
With ActiveDocument.BuiltInDocumentProperties
Dim i As Long
For i = 1 To .Count
Debug.Print i & ": " & .Item(i).Name & ": " & .Item(i).Value
Next i
End With
End Sub
ちなみに、、
この記事を書く前に、新田順也さんのブログ「みんなのワードマクロ」で、似たような記事が公開されていないか「BuiltInDocumentProperties」を検索してみたのですが、ヒット件数は0でした。
新田さんのまわりではWord文書のプロパティを取得したいという要望はそれほどないためこういう記事はなく、このサイト・インストラクターのネタ帳の読者さんの場合にはこういものを必要とする方がいらっしゃるということで、読者層の違いを面白いなと思っています。
最終更新日時:2020-04-26 09:39
Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » Word VBAで文書プロパティを取得する