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.