Zdarzenia tworzone klasą
by vbatools on Nov.09, 2014, under Porady, Word
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ę:
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.