VBATools

Zdarzenia tworzone klasą

by on Nov.09, 2014, under Porady, Word

WD_Zdarzenia

W aplikacji MS Word można powołać się na procedury zdarzeniowe typu Document. Niestety jest ich dość mało i nie spełniają one oczekiwań w stopniu jaki daje nam np MS Excel.

Można jednak tworzyć klasę, która odwołuje się do obiektu Word.Application, który pokazuje szerszą możliwość ich użycia.

W klasie głównej ThisDocument tworzymy zatem kod wywołujący klasę Zdarzenia, którą stworzymy w drugiej kolejności:

Option Explicit
Dim WDEvents As New Zdarzenia
Private Sub Document_Open()
 Set WDEvents.WDApp = Word.Application
End Sub

 

Następnie, należy utworzyć moduł klasy o konkretnej nazwie na jaką powołaliśmy sie pow., którą przywołamy przy uruchomieniu pliku. czyli klasę o nazwie: Zdarzenia

Option Explicit
Public WithEvents WDApp As Word.Application
Private Sub Class_Initialize()
 Set WDApp = Word.Application
End Sub
Private Sub WDApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
 MsgBox "Komunikat tworzony w ramach procesu drukowania dokumentu " & _
 Doc.Name & "!", vbOKOnly, "VBATools.pl"
 Cancel = True 'usuń jak chcesz dopuścić do druku lub wywołać jakiś kod
End Sub

 

Przy wywołaniu instrukcji z Document_open otrzymujemy następującą listę:

WD_Zdarzenia_klasy

Czy to nie otwiera szereg nowych możliwości?

 

(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.
:, ,

Leave a Reply