czwartek, 6 września 2018

VBA - Zdarzenia


VBA - Zdarzenia

VBA, programowanie sterowane zdarzeniem może być wyzwalane, gdy ręcznie zmienisz komórkę lub zakres wartości komórki. Zmiana zdarzenia może ułatwić sprawę, ale bardzo szybko możesz zakończyć stronę pełną formatowania. Są dwa rodzaje zdarzeń.
  • Zdazenia w arkuszu roboczym
  • Zdarzenia w Workbook

Zdażenia w arkuszu roboczym

Zdarzenia arkusza roboczego są wyzwalane, gdy występuje zmiana w arkuszu roboczym. Tworzy się go, klikając prawym przyciskiem myszy kartę arkusza i wybierając "wyświetl kod", a następnie wklejając kod.
Użytkownik może wybrać każdy z tych arkuszy i wybrać "WorkScheet" z listy rozwijanej, aby uzyskać listę wszystkich obsługiwanych zdarzeń arkusza roboczego.


Poniżej przedstawiono obsługiwane zdarzenia arkusza roboczego, które może dodać użytkownik.
Private Sub Worksheet_Activate()
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)   
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Private Sub Worksheet_Calculate()
Private Sub Worksheet_Change(ByVal Target As Range)
Private Sub Worksheet_Deactivate()
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Przykład
Powiedzmy, że po dwukrotnym kliknięciu musimy wyświetlić komunikat.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   MsgBox "Before Double Click"
End Sub

Po dwukrotnym kliknięciu dowolnej komórki, okno komunikatu jest wyświetlane użytkownikowi.

Zdarzenia w Workbook

Wydarzenia w skoroszycie są uruchamiane, gdy w skoroszycie występuje zmiana całości. Możemy dodać kod do zdarzeń ze skoroszytu, wybierając "ThisWorkbook" i wybierając 'workbook' z menu rozwijanego, jak pokazano na poniższym zrzucie ekranu. Natychmiast wykonywana jest procedura podrzędna Workbook_open, jak widać na poniższym zrzucie ekranu.


Poniżej przedstawiono obsługiwane zdarzenia Workbook, które mogą być dodawane przez użytkownika.
Private Sub Workbook_AddinUninstall()
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Private Sub Workbook_Deactivate()
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Private Sub Workbook_Open()
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Private Sub Workbook_WindowResize(ByVal Wn As Window)
Przykład
Powiedzmy, że potrzebujemy wyświetlić komunikat dla użytkownika, że ​​nowy arkusz jest tworzony z powodzeniem, za każdym razem, gdy tworzony jest nowy arkusz.
Private Sub Workbook_NewSheet(ByVal Sh As Object)
   MsgBox " Nowy arkusz został utworzony pomyślnie "
End Sub
Wyście
Po utworzeniu nowego arkusza Excela wyświetlany jest komunikat, jak pokazano na poniższym zrzucie ekranu.




Brak komentarzy:

Prześlij komentarz