用实际图像替换图像文件名(Microsoft Word)
史蒂夫(Steve)的文档带有文字,该文字指示应放置图像的位置。此文本包含图像名称(例如“ 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变量中的值。如图所示,sMarkerText的内容将匹配单词“ image”
中的任何括号。后跟两个字符(例如01、02、97或XY)和“ .jpg”
延期。
Selection对象的Find方法对标记文本的第一次出现实施实际的Find操作。如果找到,则While … Wend循环中的代码开始起作用。这将获取文件名并将其分配给sFigName变量。然后删除找到的标记文本,并在其位置插入一个嵌入式图像。最后,Selection.Find.Execute行查找标记文本的下一个匹配项(如果有)。
宏将内联插入图像,并且不对其进行任何其他处理。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(10135)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。