Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 1
  • 849
Komentarze (2)
Darku, dodaj proszę kilka swoich tagów precyzujących temat. Chodzi o późniejsze sortowanie treści
Skomentował : @ TRENER MODERATOR ALTKOM AKADEMII ,11.06.2013

Odpowiedź (1)

  • 6

Zapewne większość czytelników spotkała się z sytuacją, gdzie na starcie dokumentu Excela pojawiał się komunikat o makrach. Użytkownik podejmuje wtedy ważną decyzję - włączyć je czy nie. Decyzja ta jest taka ważna właśnie ze względu na zdarzenia, które natychmiast po wyrażeniu zgody na działanie makr mogą zacząć wykonywać jakiś kod. Głównym podejrzanym jest tu zdarzenie Workbook_Open, które jak nietrudno się domyślić uruchamia się automatycznie przy starcie dokumentu (przy włączonych makrach). Tak więc zdarzenia, to przewidziane przez projektantów Excela typowe czynności, które wykonuje użytkownik w Excelu. 
Najpopularniejsze zdarzenia Skoroszytu to:


- Otwieranie (Workbook_Open).
- Zamykanie (Workbook_BeforeClose(Cancel As Boolean)).

Dla każdego takiego zdarzenia może automatycznie wykonywać się jakiś kod. Kod ten musi być umieszczony w module skoroszytu. Procedury zadziałają tylko wtedy, kiedy ich nazwy będą zgodne ze wzorcem: Obiekt_Zdarzenie, np.:

Private Sub Workbook_Open()
    MsgBox "Witaj " & Application.UserName
End Sub

Powyższa procedura przywita użytkownika korzystając z jego nazwy wpisanej w opcjach Excela, lub:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Len(Range("A1")) < 4 Then
        MsgBox "Komorka A1 musi być wypełniona przed zamknięciem dokumentu!"
        Cancel = True
    Else
        MsgBox "OK, komorka A1 wygląda na poprawnie wypełnioną :)"
        Me.Save
    End If
End Sub

Powyższa procedura przy próbie zamknięcia skoroszytu sprawdzi, czy w komórce A1 znajdują się przynajmniej 4 dowolne znaki. Jeżeli nie, dokument się nie zamknie, jeżeli tak, dokument zostanie zapisany i zamknięty.

Tak więc zdarzenia są pożyteczne, ale trzeba pamiętać, że mogą też zawierać szkodliwy kod.

  • Odpowiedział
  • @ | 11.06.2013
  • TRENER ALTKOM AKADEMII