FAQ Lösungen
Aus- und Einblenden von Text
Oft ist es notwendig, Text in einem Dokument wahlweise ein- resp. auszublenden. Das kann z.B. der Text in einer Fusszeile sein, der in einem 'normalen' Dokument erscheint, aber beim Druck auf das Originalpapier der Firma ausgeblednet werden muss, weil dieser Text schon auf dem Papier vorgedruckt ist.Automatische Lösung: In der Vorlage wird der Text markiert und als Textmarke definiert. Mit dem folgenden Makro, das einem Symbol zugeordnet werden kann, wird zwischen verborgen (in Word2k ausgeblendet) hin- und hergeschaltet. Zuerst wird noch geprüft, ob die Textmarke vorhanden ist ...
Sub ToggleHiddenBookmark()If ActiveDocument.Bookmarks.Exists("txtDateiname") ThenEnd SubActiveDocument.Bookmarks("txtDateiname").Range.Font.Hidden = _End If
Not ActiveDocument.Bookmarks("txtDateiname").Range.Font.Hidden

Aus- und Einblenden von Grafiken
Das folgende Beispiel, wiederum einem Symbol zugeordnet, lässt die Grafiken in der Kopfzeile verschwinden und blendet sie wieder ein. Die Grafiken müssen eine Helligkeit von 50% eingestellt haben (sollte Default sein) und dann funktionierts...Sub ToggleKopfGrafik()' Alle Grafiken in der Kopfzeile werden gewähltEnd Sub
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes.SelectAll
' ein- oder ausblenden
With Selection.ShapeRange.PictureFormatIf .Brightness = 0.5 ThenEnd With.Brightness = 1#Else
.Contrast = 0#.Brightness = 0.5End If
.Contrast = 0.5

Nummerierung in einem geschützten Dokument
Wir das folgende Makro einem Symbol oder Menueintrag zugeordnet, kann auch in einem geschützten Dokument die Nummerierung bzw. Aufzählung formatiert werden.Sub NummerAufzFormat()If ActiveDocument.ProtectionType = wdAllowOnlyFormFields ThenEnd SubActiveDocument.UnprotectEnd IfWith Dialogs(wdDialogFormatBulletsAndNumbering)ActiveDocument.Protect wdAllowOnlyFormFields, True.ShowEnd With

Einfügen von Text an Textmarke
Die folgende Prozedur fügt den als 'sText' übergebenen Text an die Textmarke 'bkm' ein. Danach wird die Textmarke neu definiert, so dass sie den ganzen Text enthält. Der Vorteil ist, dass bei einem erneuten Aufruf der an einer bereits beschriebenen Textmarke der Text vollständig ersetzt wird.Sub vTxt2Bkm(sText As String, bkm As String)Dim rng As RangeEnd Sub
If ActiveDocument.Bookmarks.Exists(bkm) ThenSet rng = ActiveDocument.Bookmarks(bkm).RangeEnd Ifrng.Text = sText ActiveDocument.Bookmarks.Add Name:=bkm, Range:=rng
