スティーブは、画像を配置する場所を示すテキストを含むドキュメントを持っています。このテキストは、画像名( “image01.jpg”など)で構成されます

括弧内。彼は、各画像名を実際の画像に自動的に置き換える方法を探しています。

これは、Wordの通常の検索および置換機能では実行できませんが、マクロを使用して実行できます。ドキュメント内でマーカーテキスト(画像名)を検索し、見つかった場合は画像名を取得して、マーカーテキストを実際の画像に置き換えるというアイデアがあります。これらの手順を実装するマクロは次のとおりです。

Sub ReplaceImages()

Dim sMarkerText As String     Dim sFigName As String     Dim sFigPath As String

' Change to the path to the pictures, with a trailing slash.

sFigPath = "C:\Users\Steve\Pictures\"



' Change to marker text. Can include wildcards.

sMarkerText = "(image??.jpg)"



' Search through document for marker text     Selection.Find.ClearFormatting     With Selection.Find         .Text = sMarkerText         .Replacement.Text = ""

.Forward = True         .Wrap = wdFindContinue         .Format = True         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     Selection.Find.Execute     While Selection.Find.Found         ' Found a match, so grab name         ' Need to adjust for parens in marker text         sFigName = Mid(Selection, 2, Len(Selection) - 2)



' Delete the marker text         Selection.Delete

' Insert the picture         Selection.InlineShapes.AddPicture FileName:= _           sFigPath & sFigName, LinkToFile:=False, _           SaveWithDocument:=True         Selection.Find.Execute     Wend End Sub

マクロコードで変更する必要があるのは、sFigPath変数とsMarkerText変数に格納されている値の2つです。示されているように、sMarkerTextの内容は、「画像」という単語が含まれる括弧と一致します

2文字(01、02、97、XYなど)と「.jpg」が続きます

拡張。

SelectionオブジェクトのFindメソッドは、マーカーテキストの最初の出現に対して実際のFindアクションを実装します。見つかった場合は、While …​ Wendループのコードが機能します。これにより、ファイル名が取得され、sFigName変数に割り当てられます。次に、見つかったマーカーテキストが削除され、その場所にインライン画像が挿入されます。最後に、Selection.Find.Execute行は、マーカーテキストの次の出現箇所を検索します(存在する場合)。

マクロは画像をインラインで挿入し、追加の処理は行いません。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(10135)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice365のWordに適用されます。