Tworząc określoną rozbudowaną aplikację w VBA naszym celem może być stworzenie jej w taki sposób, aby zależnie od zdefiniowanych parametrów jej przebieg był odmienny. Możliwe przykłady takich działań:
a) wersja testowa i ostateczna
b) wersja uruchamiana przez administratora i pozostałych użytkowników
c) wersja dla nowszych i starszych wersji aplikacji MS Excel/MS Office
W w/w i podobnych sytuacjach zasadne może się okazać wykorzystanie narzędzia kompilacji warunkowej.
Pierwszym krokiem będzie wskazanie elementów, parametrów kompilacji.
W tym celu w edytorze VBA należy uruchomić poniższe okno znajdujące się w
Menu >> Tools >> VBAProject Properties... >> zakładka General. Następnie w ostatniej pozycji tego okna,
"Conditional Compilation Arguments:"
, należy zdefiniować wszystkie niezbędne zmienne/warunki rozdzielając je symbolem dwukropka. Co ważne- nasze zmienne warunkowe mogą przyjmować tylko wartości liczbowe, tekst nie jest dopuszczalny.
Kolejny krok to umiejętne wykorzystanie stworzonych zmiennych warunkowych w naszym kodzie.
Kluczowe w tym momencie będzie wykorzystanie znaku # (sharp/hash), który musi wystąpić przed każdą linią instrukcji warunkowej
#If...#ElseIf...#Else...#End If.
Przykład A) Zmienna warunkowa
compVersion ma za zadanie wskazywać ten fragment kodu, który zostanie wykonany zależnie od zadeklarowanej wersji aplikacji.
1 | #If compVersion = 2007 Then |
3 | wykonana zostanie poniższa linia |
4 | MsgBox "To wersja dla Excel 2007 i wyższa" |
6 | MsgBox "To wersja dla wcześniejszych aplikacji" |
Przykład B) W przypadku kompilacji wykonywanej przez administratora należy w powyższym oknie ustawić wartość
compAdmin =1, kompilacja warunkowa przypisze zmiennej Pass hasło na hasło administratora, w innym wariancie poprosi użytkownika o podanie hasła
3 | Pass = "hasło_administratora" |
6 | wykonana zostanie poniższa linia |
7 | Pass = InputBox( "Podaj hasło: " ) |
Przykład C) niepoprawny. Proszę zwrócić uwagę, że poniższy kod nie jest poprawny ze względu na brak symboli # na początku każdej linii instrukcji warunkowej. Przy próbie wywołania poniższego kodu uzyskamy informację o braku zadeklarowanej zmiennej
compUser. Samo zdefiniowanie tej zmiennej w pierwszym kroku nie jest więc wystarczające.
2 | MsgBox "Wariant dla 1 Grupy użytkowników." |
4 | MsgBox "Wariant dla pozostałych użytkowników. " |
Wskazówka! Stałe, parametry kompilacji można również zdefiniować wewnątrz kodu VBA zamiast w oknie VBAProject Properties zaprezentowanym w pierwszym kroku powyżej. W tym celu również niezbędne będzie wykorzystanie znaku # w celu utworzenia np. takiego fragmentu kodu:
Brak komentarzy:
Prześlij komentarz