13.07.2015 Aufrufe

Makro-Kochbuch - WollMux

Makro-Kochbuch - WollMux

Makro-Kochbuch - WollMux

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Expandierte Textmarkenicht expandierte TextmarkeoBookmark.anchor.string liefert hier nun"Test2"oBookmark.anchor.string liefert hier nichts ("")– also einen leeren String.Leider gibt es kaum eine Möglichkeit, eine Textmarke nachträglich zu expandieren, es ist alsowichtig, dies schon bei der Erzeugung zu erledigen, wenn es gewünscht ist.Eine Textmarke selbst wird wie folgt im Dokument erzeugt:REM Fügt am Ende des Textes eine Textmarke einSub TextmarkeEinfuegen(odoc as variant, sTextmarke as string)dim oBookmark as variantoBookmark = oDoc.createInstance("com.sun.star.text.Bookmark")oBookmark.setName(sTextmarke)oDoc2.text.insertTextContent(oDoc2.text.end, oBookmark, false)End SubWichtig hierbei sind zwei Punkte:1. Die Position der Einfügung muss bekannt sein (hier Dokument, Haupttextbereich)2. die Textmarke wird in diesem Fall nicht expandiert eingefügt! Die Einfügeposition istabstrakt ein Punkt (.end!)Praktischer Nutzen solcher Textmarken:Neben der klassischen Verwendung kann man aber Textmarken auch im <strong>Makro</strong> nutzen.Folgendes Beispiel: Ein Dokument, das noch per <strong>Makro</strong> „zusammengebaut“ wird, enthält einenTeil, der später erneut kopiert werden soll. Dieser Teil ist aber noch nicht bekannt. DasVorgehen ist nun wie folgt:Der Beginn des Kopierteils ist definiert. Es wird also zunächst eine Textmarke in das Dokumenteingefügt, dann folgt der Textteil, der kopiert werden soll. Dieser wird nun Stück für Stückaufgebaut. Am Ende erfolgt erneut das Setzen einer Textmarke.Zum Kopieren muss nun der Teil „markiert“ werden: Dazu springt man die erste (gesetzte)Textmarke an, setzt dort den View-Cursor hin, sucht jetzt die zweite Textmarke, und expandiertden View-Cursor bis dort hin. Nun ist der – vorher unbekannte – Teil markiert und kannentsprechend kopiert werden.Das folgende Code-Beispiel erledigt genau dies:'/** copyDoc'*************************************************************************.'* @kurztext kopiert Teile des Dokumentes an eine Textmarke'* Diese Funktion kopiert Teile eines Dokumentes, die eingeschlossen sind, in dieLHM – <strong>Makro</strong>-<strong>Kochbuch</strong> 2012 165

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!