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

 

Właściwość Name czyli nazwa skoroszytu

Name to jedna z częściej stosowanych właściwości obiektu Workbook.  Odpowiada za nazwę skoroszytu, do którego odwołuje się Workbook.

Public Sub Work()
Dim NazwaSkoroszytu As String
NazwaSkoroszytu=ThisWorkbook.Name
(…)
End Sub

W tym przypadku zmienna NazwaSkoroszytu zwraca nazwę tego skoroszytu, która w dalszym ciągu instrukcji może zostać wykorzystana lub zmieniona. 


Kurs Makra w Excelu 365 od podstaw

 

Obiekt Workbook

Obiekt Workbook jest jednym z obiektów VBA związanym ze skoroszytem.
Ma swoje
właściwości

    • FullName
      pełna nazwa skoroszytu
    • Name
      nazwa skoroszytu
    • Path
      nazwa folderu, w którym znajduje się skoroszyt

oraz

metody

    • Activate
      przełączanie między różnymi plikami Excela

Jest to obiekt, więc przypisanie go do zmiennej jest możliwe za pomocą słowa kluczowego Set.

Public Sub Work()
Dim WBK As Workbook
Set WBK = ThisWorkbook
'(…ciąg instrukcji….)
Set WBK = Nothing
End Sub

W tym przypadku do zmiennej WBK przypisujemy obiekt ThisWorkbook czyli ten skoroszyt, w którym jest umieszczona procedura.
Na samym końcu linia kodu:
Set WBK=Nothing
to zdjęcie przypisanego obiektu ze zmiennej.
Wprawdzie teoretycznie zakończenie i wyjście z procedury powoduje ten sam efekt czyli zwolnienie zmiennej (i przypisanej pamięci), ale czasami zdarzało mi się, że wcale tak nie było. Zdania są tu podzielone, ja jestem zwolenniczką dopisywania takiej linii kodu i robię to zawsze w swoich projektach.

Notka ta będzie rozbudowywana po wstawieniu kolejnych wpisów związanych z tym obiektem, opisujących jego metody i właściwości.


Kurs Programowanie VBA w Excelu 365 od podstaw

 

Zdarzenia skoroszytu

Zdarzenia skoroszytu to procedury wyzwalane automatycznie poprzez konkretne metody związane ze skoroszytem, w którym są umieszczone.
Znajdują się one zawsze w module skoroszytu.

kliknij, aby powiększyć

Po wybranie z lewej strony Workbook, z prawej strony możemy wybrać konkretne zdarzenie:

kliknij, aby powiększyć

Najczęściej stosowane to:

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


Kurs Excel programowanie w VBA

 

Moduły w skoroszycie Excela

Każdy skoroszyt Excela ma swoje widoczne w edytorze VBA moduły. Standardowo są to:

    • moduł skoroszytu

    • moduły arkuszy

      każdy arkuszy ma swój oddzielny, przypisany do niego moduł.

Oprócz tego, w skoroszycie można wstawić moduły ogólne. Robimy to w edytorze VBA. Wybieramy w menu Insert:

a następnie Module

W ten sam sposób można wstawić również UserForm czyli własny formularz oraz Class Module czyli moduł klasy.

Moduł skoroszytu oraz moduły arkuszy i formularzy mają charakter prywatny, moduł ogólny – domyślnie publiczny. Oznacza to, że jeżeli wstawimy kod np.własnej funkcji do modułu prywatnego – będzie on widoczny tylko w VBA. Jeżeli sama funkcja będzie typu Private – można się do niej odwoływać tylko z tego samego modułu. Funkcje typu Public – są widoczne również z innych modułów, ale nie można ich zastosować w arkuszu. Funkcje publiczne, w module publicznym można wstawiać również w komórkach Excela wybierając z grupy funkcji Zdefiniowanych przez użytkownika:


Kurs Excel programowanie w VBA