Benutzer mit den meisten Antworten
Word: Text VOR und NICHT IN Textmarke einfügen

Frage
-
Hallo,
die Dokumentation zu <Range>.InsertBefore <String> gibt ausdrücklich an, dass sie, wenn man diese Methode auf eine Textmarke anwendet, selbige um den Inhalt erweitert.
Genau diesen Effekt will ich aber nicht haben, da somit auch Verweise auf diese Textmarke bei Aktualisierung mit [F9] dann auch um diesen Inhalt erweitert werden.
Ich habe hier auch schon so ziemlich alle Kombinationen von .InsertParagraphBefore/.InsertParagraphAfter und .InsertBefore/.InsertAfter ausprobiert und immer wieder landet mein eingefügter Text im Bookmark-Bereich.
Zur Veranschaulichung: Meine Routine klappert alle Images ab und fügt unterhalb einen Text ein.
Der einzufügenden Text ist immer ein eigener Absatz mit einer spezieller Formatvorlage.
Das sieht dann etwa wie folgt aus:
Set rng = shp.Range 'shp ist das Inlienshape zu besagtem Image
rng.Move wdParagraph, 1
rng.Collapse wdCollapseStart
Set para = rng.Paragraphs(1)
If para.Style = sStyle Then 'sStyle = Name einer spezielle FV
para.Range.Delete 'ggf. alte öschen
End If
rng.InsertParagraphAfter
rng.Collapse wdCollapseStart
rng.InsertBefore <String>
rng.Paragraphs(1).Range.Style = sStyle
Unterhalb der Abbildung kann eine Textmarke folgen, muss aber nicht.
Wie kann ich vermeiden, dass mein <String> im Bereich der Textmarke landet?
Schon mal vielen Dank für gute Hinweise.
Grüße aus Köln am Rhein - Klaus Trapp
Antworten
-
Meine Routine klappert alle Images ab und fügt unterhalb einen Text ein.
Wie kann ich vermeiden, dass mein <String> im Bereich der Textmarke landet?
Scheinbar gar nicht. Aber man kann recht einfach diesen Fall erkennen und die Textmarke korrigieren.
Andreas.
Sub Test() Dim R As Range Dim B As Bookmark Set R = ActiveDocument.InlineShapes(1).Range R.Collapse wdCollapseEnd R.InsertAfter "qwe" For Each B In R.Bookmarks B.Start = R.End Next End Sub
- Als Antwort markiert Klaus Trapp Mittwoch, 28. Dezember 2016 15:14
Alle Antworten
-
Meine Routine klappert alle Images ab und fügt unterhalb einen Text ein.
Wie kann ich vermeiden, dass mein <String> im Bereich der Textmarke landet?
Scheinbar gar nicht. Aber man kann recht einfach diesen Fall erkennen und die Textmarke korrigieren.
Andreas.
Sub Test() Dim R As Range Dim B As Bookmark Set R = ActiveDocument.InlineShapes(1).Range R.Collapse wdCollapseEnd R.InsertAfter "qwe" For Each B In R.Bookmarks B.Start = R.End Next End Sub
- Als Antwort markiert Klaus Trapp Mittwoch, 28. Dezember 2016 15:14