Word: Mit VBA Bilder austauschen

Kürzlich hatte ich die Aufgabe, in der Kopfzeile eines Standardbriefbogens Logos für Zertifizierungen dynamisch auszutauschen. Na, das kann ja nicht so schwer sein, dachte ich mir. Wie sich herausstellte, ist doch einiges dabei zu beachten, so dass mir das Thema einen Blog-Beitrag wert erscheint. Hier also eine kleine Anleitung. Die Beispiellösung liegt zum Download bereit (Siehe weiter unten).

Screenshopt: Word-Kopfzeile mit Engel-Logo
Screenshopt: Word-Kopfzeile mit Engel-Logo
Screenshot: Word-Kopfzeile mit Teufel-Logo
Screenshot: Word-Kopfzeile mit Teufel-Logo

Voraussetzung für diese Lösung:

  • Damit es keine Verzerrungen gibt, haben die Bilder die gleichen Proportionen. In meinem Fall sind die beiden Bilder sogar exakt gleich groß.
  • Das erste Bild wird manuell über die Word-GUI mit Verknüpfung eingefügt. Nur so kann später die Eigenschaft SourceFullName im Programmcode angesprochen werden. Ihr dürft bei der Auswahl der Bilddatei also nicht nur Einfügen wählen, sondern Einfügen u. Verknüpfen. Diese Option hat gegenüber der Option Mit Datei verknüpfen den Vorteil, dass auch falls die so eingefügte Bilddatei später einmal nicht mehr zu finden ist, das Bild im Dokument trotzdem sichtbar bleibt. Es ist also embedded.
Einfügeoptionen für Bilder
  • Als Layout-Option für das Bild wurde "Quadrat" gewählt. Hier ist auch jede andere Option denkbar.
Layoutoption "Quadrat"
Layoutoption "Quadrat"

Lösung:

  • Das so eingefügte Bild ist ein Shape. Das Austauschen des Bildes ist allerdings nur für ein verknüpftes Inline-Shape möglich. Inline-Shapes entstehen, wenn man die Layoutoption Mit Text in Zeile wählt.
  • Das Shape muss also kurz in ein Inline-Shape umgewandelt werden. Danach wird die Eigenschaft SourceFullName geändert und das Inline-Shape wieder in ein Shape mit der entsprechenden Layoutoption zurück gewandelt.
  • Damit beim Umwandeln das Bild nicht durch die Gegend hopst, wird vorübergehend  die Bildschirmaktualisierung ausgeschaltet.

Code:

Download
Oben beschriebene Beispiellösung
Entpackt Euch die Zip-Datei. Die Bilder und das Word-Dokument müssen im selben Verzeichnis liegen.
GrafikAustauschen.zip
Komprimiertes Archiv im ZIP Format 262.5 KB

Viel Spaß mit dieser Lösung!

Kommentare: 0