Zdarzenie skoroszytu przez wydrukiem

Procedura BeforePrint to jedno ze  zdarzeń skoroszytu (czyli procedur uruchamianych automatycznie) . Tak, jak i inne tego typu zdarzenia, znajduje się w module skoroszytu.

kliknij, aby powiększyć

Procedura Workbook_BeforePrint(Cancel as Boolean) jest uruchamiana automatycznie zawsze przed wydrukiem. Może służyć np. do zmiany formatowania, ukrycia niektórych obiektów, przeliczenia itp.
Procedura ta ma jeden argument:

    • Cancel – typu Boolean. Jest opcjonalny, wartość domyślna to Fałsz.
      Przypisanie w procedurze wartości Prawda – działa tak jak przycisk Anuluj – czyli wydruk zostanie anulowany

Można w ten sposób np. zabezpieczyć jakiś arkusz/arkusze (także wszystkie) przed wydrukiem.


Kurs Excel programowanie w VBA

 

Zdarzenie skoroszytu przed zamknięciem

Procedura BeforeClose to jedno ze  zdarzeń skoroszytu (czyli procedur uruchamianych automatycznie) . Znajduje się ona w module skoroszytu.

kliknij, aby powiększyć

Procedura Workbook_BeforeClose(Cancel as Boolean) jest uruchamiana automatycznie zawsze przed zamknięciem skoroszytu. Może służyć np. do sprawdzenia, czy wszystkie dane zostały wprowadzone czy zapisane.
Procedura ta ma jeden argument:

    • Cancel – typu Boolean. Jest opcjonalny, wartość domyślna to Fałsz.
      Przypisanie w procedurze wartości Prawda – działa tak jak przycisk Anuluj – czyli skoroszyt nie zostanie zamknięty.

Ostatnio w jednym ze swoich projektów wykorzystałam to, żeby możliwość zamknięcia pliku miał tylko użytkownik znający hasło. Wyglądało to mniej więcej tak:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim JHaslo As String
JHaslo = InputBox(„Wpisz hasło do zamknięcia skoroszytu!”, „Kontrola uprawnień”)
If JHaslo <> „abc” Then
   Cancel = True
End If
End Sub

Przy próbie zamknięcia skoroszytu trzeba wpisać prawidłowe hasło (tu: abc) , gdyż w przeciwnym przypadku – skoroszyt nie zostanie zamknięty.


Kurs Excel programowanie w VBA

 

Metoda Activate

Activate to jedna z metod obiektu Workbook przełączająca okno do konkretnego skoroszytu..

Stosuje się ją najczęściej, gdy zachodzi konieczność przełączania pomiędzy różnymi oknami Excela.
Załóżmy, że mamy otwarte 2 różne pliki Excela – makro, w którym przechodzimy do drugiego z nich, wykonujemy ciąg instrukcji, a następnie wracamy do pierwszego pliku może wyglądać tak:

Public Sub Przelacz()
Dim WBK As Workbook
Dim RBK As Workbook
Set WBK = ThisWorkbook
Set RBK = Workbooks(„PlikTestowy”)
RBK.Activate
'(…)
WBK.Activate
'(…)
End Sub

Jeżeli w którymś z plików jest zdefiniowane zdarzenie przy aktywacji lub deaktywacji skoroszytu – automatycznie też zostaną uruchomione.


Kurs Makra w Excelu 365 od podstaw

 

Deaktywacja skoroszytu

Deaktywacja skoroszytu to procedura zdarzeń skoroszytu (czyli procedur uruchamianych automatycznie) działająca odwrotnie do  aktywacji skoroszytu.
Znajduje się ona w module skoroszytu.

Procedura Workbook_Deactivate() jest uruchamiana zawsze przy deaktywacji skoroszytu czyli przy zamknieciu i/lub przełączeniu do innego okna Windows.

Przykład takiej procedury wyświetlającej nazwę opuszczanego skoroszytu to:

Private Sub Workbook_Deactivate()
Dim JNazwa As String
JNazwa = ThisWorkbook.Name
MsgBox „Opuszczony skoroszyt” & vbNewLine & JNazwa
End Sub

 


Kurs Excel programowanie w VBA

 

Aktywacja skoroszytu

Jednym z często używanych automatycznych zdarzeń skoroszytu (czyli procedur uruchamianych automatycznie) jest  procedura przy aktywacji skoroszytu.
Znajduje się ona w module skoroszytu.

kliknij, aby powiększyć

Procedura Workbook_Activate() jest uruchamiana zawsze przy aktywacji skoroszytu czyli przy otwarciu i/lub przełączeniu z innego okna Windows.

Przykład takiej procedury wyświetlającej nazwę uruchomionego skoroszytu to:

Private Sub Workbook_Activate()
Dim JNazwa As String
JNazwa = ThisWorkbook.Name
MsgBox „Aktywny skoroszyt to” & vbNewLine & JNazwa
End Sub

Oczywiście na liście można znaleźć ich więcej, ale na początek wystarczą te.


Kurs Excel programowanie w VBA