VBA w Excelu - kurs dla początkujących
Operatory porównania
Na tej stronie przedstawiam krótki opis chyba najczęściej używanych operatorów tj. operatory porównania. Zasady działania i zastosowania operatorów porównania to bardzo szeroki temat. Ponieważ jest to strona dla początkujących skupię się na podstawowych informacjach.VBA posiada operatory do porównywania wartości numerycznych i łańcuchów znaków. Zakładając, że porównywane wyrażenia zawierają poprawne wartości (nie zawierają wartości Null), wynikiem porównania będzie wartość True (Prawda) lub False (Fałsz). Za pomocą operatorów porównania możemy porównywać łańcuchy znaków i wartości numeryczne, ja na tej stronie przedstawię zastosowanie operatorów porównania do porównywania wartości numerycznych.
Operatory porównania stosowane w VBA:
Operator
Znaczenie
Przykład wyniku porównania
<
Mniejsze niż
10 < 5 ' Wynikiem jest False
<=
Mniejsze lub równe
10 <= 5 ' Wynikiem jest False
>
Większe niż
10 >= 5 ' Wynikiem jest True
>=
Większe lub równe
=
Równe
10 = 5 ' Wynikiem jest False
<>
Nierówne
10 <> 5 ' Wynikiem jest True
Informacyjnie tylko podam, że oprócz wymienionych wyżej operatorów VBA posiada jeszcze dwa specjalne operatory porównania.
· Like - operator służący do porównywania łańcucha znaków ze wzorcem.
· Is - operator służący do sprawdzania czy dwa elementy (zmienne obiektowe) odwołują się do tego samego obiektu.
Operatorów porównania możemy użyć w standardowej instrukcji przypisania. Wynik porównania który jest przypisany do zmiennej możemy wykorzystać w wielu instrukcjach. Składnia w tym momencie dla większości operatorów (z wyjątkiem operatorów Like i Is) wygląda następującą.
Składnia:
warunek = wyrażenie1 odpowiedni operator porównania wyrażenie2
· warunek - element obowiązkowy, jest to dowolna zmienna numeryczna.
· wyrażenie1 - element obowiązkowy, jest to dowolne wyrażenie.
· wyrażenie2 - element obowiązkowy, jest to dowolne wyrażenie.
Poniżej przedstawiam przykład użycia operatora porównania w standardowej instrukcji przypisania
· Uwaga: - dla potrzeb kursu, kod przykładu umieściłem w procedurze zdarzenia Click Przycisku polecenia. Oczywiście odpowiedni kod z przykładu możemy wykorzystać w dowolnej procedurze.
Przykład - kod przykładu:
Private Sub CommandButton1_Click()On Error GoTo problem Dim Warunek As Boolean Dim Dzielna, Dzielnik, Iloraz Dzielna = Range("B2").Value Dzielnik = Range("D2").Value Warunek = Dzielnik <> 0 'Nasza instrukcja przypisania. If Warunek = True Then Iloraz = Dzielna / Dzielnik Range("F2").Value = Iloraz Else MsgBox "Dzielenie przez zero, wprowadź poprawną wartość" End IfExit Subproblem: MsgBox "Wystąpił błąd w programie. " & Err.Description & ", wprowadź poprawne wartości"End Sub
Przykład - opis:
Jest to praktycznie w pełni funkcjonalny przykład w którym użyliśmy operatora <> (nierówność) w standardowej instrukcji przypisania. W przykładzie deklarujemy zmienne Dzielna, Dzielnik i Iloraz, oraz zmienną Warunek typu Boolean. Wartość zmiennej Dzielna to zawartość komórki B2 arkusza Excela, natomiast wartość zmiennej Dzielnik jest zawartością komórki D2 arkusza. W przykładzie sprawdzamy czy wartość zmiennej Dzielnik jest różna od zera, jeżeli tak jest wykonywane jest dzielenie. Wynik dzielenia wyświetlany jest w komórce F2. Dodałem też obsługę błędów gdyby użytkownik wprowadził do określonych komórek wartości inne niż numeryczne. Temat obsługi błędów jak i deklarowania zmiennych omówię w dalszej części kursu. W przykładzie wykorzystujemy również niektóre operatory przedstawione na poprzednich stronach kursu.
Możemy też użyć operatorów porównania bezpośrednio w instrukcjach warunkowych. Wynik operacji porównania decyduje o tym, czy dany fragment kodu zostanie wykonany.
Poniżej przedstawiam przykład użycia operatora porównania bezpośrednio w instrukcjach warunkowych.
Private Sub CommandButton1_Click()On Error GoTo problem Dim Dzielna, Dzielnik, Iloraz Dzielna = Range("B2").Value Dzielnik = Range("D2").Value If Dzielnik <> 0 Then 'Operator użyty bezpośrednio w instrukcji. Iloraz = Dzielna / Dzielnik Range("F2").Value = Iloraz Else MsgBox "Dzielenie przez zero, wprowadź poprawną wartość" End IfExit Subproblem: MsgBox "Wystąpił błąd w programie. " & Err.Description & ", wprowadź poprawne wartości"End Sub
Jest to przykład praktycznie identyczny jak wyżej, różnica polega na sposobie wykorzystania operatora <> (nierówność), operator ten umieszczony jest bezpośrednio w instrukcji warunkowej.
Aby wykonać przykłady, umieść odpowiedni kod w procedurze zdarzenia Click Przycisku polecenia. Przykładowe kroki znajdziesz między innymi na stronie Operatory arytmetyczne. Następnie wprowadź wartości do komórek arkusza B2 i D2 arkusza i kliknij na przycisk.
· Boolean - typ danych przyjmujący tylko dwie wartości: True (-1) lub False (0). Zmienne typu Boolean są przechowywane jako liczby 16-bitowe (2-bajtowe).
· False - słowo kluczowe False (Fałsz) jest to stała wbudowana i ma wartość 0.
· Null - wartość wskazująca, że dana zmienna nie zawiera żadnych poprawnych danych. Wartość ta jest wynikiem jawnego przypisania wartości Null do danej zmiennej lub wynikiem dowolnej operacji przeprowadzonej pomiędzy wyrażeniami zawierającymi wartość Null.
· True - słowo kluczowe True (Prawda) jest to stała wbudowana i ma wartość -1.
bolo882