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") Then
ActiveDocument.Bookmarks("txtDateiname").Range.Font.Hidden = _
Not ActiveDocument.Bookmarks("txtDateiname").Range.Font.Hidden
End If
End Sub

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ählt
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes.SelectAll

' ein- oder ausblenden
With Selection.ShapeRange.PictureFormat
If .Brightness = 0.5 Then
.Brightness = 1#
.Contrast = 0#
Else
.Brightness = 0.5
.Contrast = 0.5
End If
End With
End Sub

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 Then
ActiveDocument.Unprotect
With Dialogs(wdDialogFormatBulletsAndNumbering)
.Show
End With
ActiveDocument.Protect wdAllowOnlyFormFields, True
End If
End Sub

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 Range
If ActiveDocument.Bookmarks.Exists(bkm) Then
Set rng = ActiveDocument.Bookmarks(bkm).Range
rng.Text = sText ActiveDocument.Bookmarks.Add Name:=bkm, Range:=rng
End If
End Sub
top
SIBS Sägesser Informatik