Замена имени файла изображения фактическим изображением (Microsoft Word)
У Стива есть документ с текстом, который указывает, где следует разместить изображение. Этот текст состоит из названия изображения (например, «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, как показано, будет соответствовать любым скобкам, в которых есть слово «изображение»
за ним следуют два символа (например, 01, 02, 97 или XY) и «.jpg»
расширение.
Метод Find объекта Selection реализует фактическое действие Find для самого первого появления текста маркера. Если он найден, то в дело вступает код цикла While … Wend. Это захватывает имя файла и присваивает его переменной sFigName. Затем найденный текст маркера удаляется и на его место вставляется встроенное изображение. Наконец, строка Selection.Find.Execute находит следующее вхождение текста маркера, если таковой имеется.
Макрос вставляет изображения в строку и не выполняет с ними никакой дополнительной обработки.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (10135) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.