Ersetzen eines Bilddateinamens durch das tatsächliche Bild (Microsoft Word)
Steve hat ein Dokument mit Text, das angibt, wo ein Bild platziert werden soll. Dieser Text besteht aus dem Bildnamen (z. B. „image01.jpg“)
in Klammern. Er sucht nach einer Möglichkeit, jeden Bildnamen automatisch durch das tatsächliche Bild zu ersetzen.
Dies ist mit den regulären Funktionen zum Suchen und Ersetzen von Word nicht möglich, kann jedoch mithilfe eines Makros erfolgen. Die Idee wäre, das Dokument nach dem Markierungstext (den Bildnamen) zu durchsuchen und, falls einer gefunden wird, den Bildnamen abzurufen und den Markierungstext durch das tatsächliche Bild zu ersetzen. Hier ist ein Makro, das diese Schritte implementiert:
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
Im Makrocode müssen zwei Dinge geändert werden: die in den Variablen sFigPath und sMarkerText gespeicherten Werte. Der Inhalt von sMarkerText stimmt wie gezeigt mit allen Klammern überein, in denen das Wort „image“
steht Es folgen zwei Zeichen (z. B. 01, 02, 97 oder XY) und „.jpg“
Erweiterung.
Die Find-Methode des Selection-Objekts implementiert eine tatsächliche Find-Aktion für das allererste Auftreten des Markentextes. Wenn es gefunden wird, kommt der Code in der While … Wend-Schleife ins Spiel. Dadurch wird der Dateiname erfasst und der Variablen sFigName zugewiesen. Dann wird der gefundene Markierungstext gelöscht und an seiner Stelle ein Inline-Bild eingefügt. Schließlich findet die Zeile Selection.Find.Execute das nächste Vorkommen des Markentextes, falls vorhanden.
Das Makro fügt Bilder inline ein und verarbeitet sie nicht zusätzlich.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (10135) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365.