Makro uruchamiane w zależności od wpisu w komórce
Sposobów na uruchamianie makr w Excelu jest bez liku. Możemy to zrobić za pomocą przycisku wstawionego do arkusza, poprzez okno dialogowe Makra lub uzależnić uruchomienie procedury od akcji wykonanej w arkuszu lub w skoroszycie.
W tym triku pokażemy pewną interesującą kombinację, która na pewno okaże się pomocna w naszej pracy. Kod Visual Basic będzie uruchamiany tylko wówczas, gdy w określonej komórce pojawi się dany tekst.
Aby taki efekt uzyskać:
Otwieramy Edytor Visual Basic za pomocą kombinacji klawiszy lewy Alt + F11.
Z menu Insert wybieramy polecenie Module.
Wpisujemy kod przedstawiony na rysunku 1.
Rys. 1. Kod Visual Basic
Zapisujemy i zamykamy Edytor VBA.
Nasze makro nosi nazwę MojeMakro, natomiast do jego uruchamiania utworzyliśmy dodatkową funkcję użytkownika o nazwie UruchomMojeMakro. Możemy z niej korzystać jak z normalnej funkcji arkuszowej. Tę właściwość wykorzystamy do zagnieżdżenia jej w funkcji warunkowej JEŻELI. Przyjmijmy, że makro MojeMakro ma zostać uruchomione tylko wówczas, gdy w komórce A1 pojawi się tekst Start.
Aby taki efekt uzyskać:
Do dowolnej pustej komórki arkusza wpisujemy następującą formułę:
=JEŻELI(A1=”Start”;UruchomMojeMakro();”Podajemyemy słowo uruchamiające”)
Teraz wpisujemy do komórki A1 tekst Start i wciskamy klawisz Enter.
Uzyskamy efekt jak na rysunku 2.
Rys. 2. Wartość w komórce A1 uruchomiła makro
Po kliknięciu przycisku OK w komórce pojawi się komunikat: Moje makro zostało uruchomione.