VBA Tools

Ukrycie tekstu niewypełnionych elementów obiektów formularza

napisane przez Oskar w dniu środa, 2 Listopad, 2011, w kategorii Porady - Word

W MS Word, tworzenie formularza realizuje się po przez umieszczenie kontrolek w dokumencie. W zależności od ich rodzaju możemy wyposażyć je w listę wyboru, datę opartą na kalendarzu, tekst umieszczony w polu lub inny formant.

Jednakże podczas wydruku dokumentu możemy napotkać na fakt iż elementy niewypełnione sa drukowane jako podpowiedzi nie jako pusta, niewypełniona przestrzeń.

Jak ukryć teksty, które są zbędne?

Aplikacja nie posiada ustawień które modły by być pomocne w tym przypadku. Jedynym ratunkiem jest oprogramowanie pliku.

MS Word w swoich procedurach zdarzeniowych nie posiada funkcjonalności jaka jest częścią Excela: BeforePrint

Należy w tym celu wbudować klasę, która będzie realizowała ten cel.

Wpierw należy uruchomić developera VBA [Alt+F11] utworzyć klasę i postępować dalej zgodnie z poniższą instrukcją.

'--------------- Umieść w ThisDocument
Option Explicit
Dim oAppClass As New Class1

Private Sub Document_Open()
 Set oAppClass.oApp = Word.Application 'aby przetestować bez restartu pliku należy uruchomić tą procedurę
End Sub

'--------------- Umieścić w klasie Class1
Option Explicit

Public WithEvents oApp As Word.Application
Private Sub oApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
'MVP OShon from VBATools.pl
Dim sh As ContentControl
With Application.ActiveDocument
 For Each sh In .ContentControls
 If sh.ShowingPlaceholderText = True Then sh.Range.Font.Color = wdColorWhite
 Next
.PrintOut Background:=False
 For Each sh In .ContentControls
 If sh.ShowingPlaceholderText = True Then sh.Range.Font.Color = wdColorGray50
 Next
End With
End Sub

Aby plik realizował kod należy go zapisać w standardzie *.docm, oraz pamiętać iż uruchomienie makr jest konieczne.

Wydruk pliku z kodem:

(c) Shon Oskar – www.VBATools.pl

Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.

Podziel się ze znajomymi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Blip
  • Grono
  • Gwar
  • Kciuk.pl
  • LinkedIn
  • MySpace
  • OSnews.pl
  • Śledzik
  • Spis.pl
  • Technorati
  • Twitter
  • Vala.pl
  • Wahacz.pl
  • Wykop

Wpisz swój komentarz:

Comment Spam Protection by WP-SpamFree