Hallo Schnurtzer,
"Bevor du denkst was ist das den für einer..." - Sowas würde ich nie denken. Jeder fängt mal irgendwo an.
In VBA hast du fast immer ein Auflistungsobjekt (ende mit s) welches gleichnamige Einzelobjekte (ohne s hinten) beinhaltet. For Each shp in ActiveDocument.Shapes heißt somit: Gehe jedes einzelne Shape in der Sammlung Shapes durch. Die Deklaration lautet also Dim shp As Shape.
Aber im Gegensatz zu Excel, wo ich den Code bereits seit Jahren erfolgreich nutze, funktioniert das bei mir im Word auch nicht. Wie gesagt, hatte es gestern nicht getestet weil ich mir eigentlich sicher war. Doch im Word bleibt mit der For Each-Schleife am Ende immer etwas stehen. Liegt wohl daran, dass die Sammlung nach dem Ausführen von Delete durcheinander kommt. Deshalb schlage ich dir nun diesen Code vor, der bei mir funktioniert:
Dim i As Long
For i = ActiveDocument.Shapes.Count To 1 Step -1
ActiveDocument.Shapes(i).Delete
Next i
Gruß Mr. K.
|