Iteration über alle in eine Word-Datei eingebette OLE-Objekte

In einem Word-Dokument befinden sich ein Dutzend OLE-Objekte, sprich in die Word-Datei eingebettete Dateien wie PDFs, TXTs und XLSs.

Folgendes Visual Basic-Script iteriert über die Shapes und InlineShapes in einem Dokument und gibt den Dateinamen aus:

Sub emeidiListEmbeddedFiles()
Debug.Print "Shapes in ActiveDocument.Shapes.Count: " & ActiveDocument.Shapes.Count
Debug.Print ""

For Each Shape In ActiveDocument.Shapes
With Shape
With .OLEFormat
'Debug.Print " .IconLabel: " & .IconLabel
Debug.Print .IconLabel
End With
End With
Next

Debug.Print "Shapes in ActiveDocument.InlineShapes.Count: " & ActiveDocument.InlineShapes.Count
Debug.Print ""

For Each Shape In ActiveDocument.InlineShapes
With Shape
With .OLEFormat
'Debug.Print " .IconLabel: " & .IconLabel
Debug.Print .IconLabel
End With
End With
Next

End Sub

Das Script kann problemlos angepasst und erweitert werden, um die Eigenschaften der entsprechenden Objekte zu verändern.