Word 2007 - Bildnamen auslesen und ins Dok einfügen

22/08/2008 - 11:08 von Vivera | Report spam
Hallo zusammen,

ich setze in manche Dokumente mehrere Bilder ein, die als Verknüpfung
eingefügt werden.
Anschließend schreibe ich den in Klammern den Namen der Bilddatei dazu etwa
[[MeinFoto2008.bmp]]
Wenn viele Bilder im Dokument sind artet das in Arbeit aus.
Kann ich so etwas automatisieren? Wenn ja wie? Hat jemand evtl. einen
VBA-Schnipsel für mich?
Gruß, Vivera
 

Lesen sie die antworten

#1 Helmut Weber
22/08/2008 - 14:03 | Warnen spam
Hallo Vivera,

vielleicht so:

Sub Test456aa()
Dim oInl As InlineShape
Dim sTmp As String
With ActiveDocument.Range.Find
.Text = " \[\[*\]\]"
.Replacement.Text = ""
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
For Each oInl In ActiveDocument.InlineShapes
sTmp = oInl.Range.Fields(1).Code
oInl.Range.InsertAfter " [[" & Bildname(sTmp) & "]]"
Next
End Sub

Public Function Bildname(sTmp As String) As String
Dim x1 As Long
x1 = InStrRev(sTmp, "/") - 2
sTmp = Right(sTmp, Len(sTmp) - x1 - 2)
sTmp = Left(sTmp, Len(sTmp) - InStr(sTmp, "\") - 5)
Bildname = sTmp
End Function

Eher schwierig ist die Extraktion des Bildnamens
aus dem Feld-Code. Das macht die Funktion "Bildname".
Ich ging von Inlineshapes aus. Es gibt aber auch noch Shapes,
ganz zu schweigen von Shaperanges.
Das Makro entfernt erstmal alle Zeichenfolgen der Art
Leerzeichen[[irgendwas]] aus dem ganzen Dokument,
damit man mal was testen kann und nicht die eingefügten
Zeichenfolgen immer lànger werden.
Mit den Literalen "-2" und "-5" musst Du eventuell
ein wenig expermimentieren. Da erscheint mir nicht
alles, was VBA da anstellt, streng logisch zu sein.

Viel Spass!


Gruß

Helmut Weber, MVP WordVBA

Vista Small Business, Office XP

Ähnliche fragen