INCLUDEPICTUREファイル名の抽出(Microsoft Word)
グラフィックを含む長いドキュメントを操作する場合、INCLUDEPICTUREフィールドを使用して実際にグラフィックをドキュメントに挿入することは珍しくありません。ドキュメントにこれらのフィールドが多数ある場合は、ドキュメントで使用されているグラフィックファイルの名前を含む「アートリスト」を作成する方法が必要になる場合があります。
比較的単純なマクロを使用することで、ドキュメント内のINCLUDEPICTUREフィールドの各インスタンスをステップスルーし、参照されているファイルの名前だけを抽出できます。次に、これらを新しいドキュメントに追加して、マクロが完了すると、新しいドキュメントにINCLUDEPICTUREフィールドで参照されているファイルのリストのみが含まれるようにします。これを実行するマクロは次のとおりです。
Sub GetIncludePictures() Dim oField As Field Dim oCurrentDoc As Document Dim oNewDoc As Document Dim sFileName As String Set oCurrentDoc = ActiveDocument Set oNewDoc = Application.Documents.Add For Each oField In oCurrentDoc.Fields If oField.Type = wdFieldIncludePicture Then sFileName = Replace(oField.Code, "INCLUDEPICTURE", "") sFileName = Replace(sFileName, "MERGEFORMAT", "") sFileName = Replace(sFileName, "\*", "") sFileName = Replace(sFileName, "\d", "") sFileName = Replace(sFileName, Chr(34), "") sFileName = Replace(sFileName, "\\", "\") sFileName = Trim(sFileName) oNewDoc.Range.InsertAfter sFileName & vbCrLf End If Next oField oNewDoc.Activate Set oField = Nothing Set oCurrentDoc = Nothing Set oNewDoc = Nothing End Sub
マクロでReplace関数が数回使用されていることに注意してください。この関数は、別の文字列内の1つの文字列の出現を他のテキストに置き換えます。紛らわしいように聞こえるかもしれませんが、非常に便利です。例として、「これは私の文字列です」という文字を含む文字列(sMyString)があり、次を使用するとします。
SMyString = Replace(sMyString, "s", "X")
これにより、sMyStringのすべての小文字の「s」が大文字の「X」に置き換えられます。その結果、sMyStringには「ThiXiXmyXtring」が含まれるようになります。
GetIncludePicturesマクロの場合、Replace関数を含む数行は、画像の実際のファイル名を除いて、フィールドコードからすべての無関係な文字を削除するように機能します。他のものを削除したい場合は、さらに行を追加してそれらの要素を削除できます。 (たとえば、写真が保存されている場所への標準パス名を削除したい場合。)
マクロの実行が完了すると、次の例のように、新しいドキュメントに含まれるのは画像の名前だけになります。
C:\mypics\picture1.tif ..\graphics\chap01\fig03.gif
フルパス名ではなくファイル名だけが必要な場合は、GetIncludePicturesマクロを少し変更して、パスを解析するコードを含めることができます。これを行うには、sFileName = Trim(sFileName)行の直後にマクロに次を追加します。
While Instr(sFileName, "\") > 0 sFileName = Mid(sFileName, Instr(sFileName, "\") + 1) Wend
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(11777)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス: