1. Rodzaje operatorów w Excel VBA
W naszych skryptach używać będziemy zarówno wyrażeń arytmetycznych, jak i stosować wyrażenia logiczne. W tym celu posłużą nam operatory w Excel VBA możemy podzielić na 3 grupy:
- arytmetyczne
- logiczne
- porównania.
2. Operatory VBA: arytmetyczne
Operatory arytmetyczne służą jak sama ich nazwa wskazuje do realizacji działań matematycznych. Tworząc procedurę zawierającą działania matematyczne konieczne może być także użycie nawiasów. Zapisujemy je standardowy sposób: „()”.
| Operator | Nazwa | Przykład |
| + | Dodawanie | Dim DblResult As Double DblResult = 9 + 7 MsgBox DblResult |
| – | Odejmowanie | Dim DblResult As Double DblResult = 9 - 7 MsgBox DblResult |
| * | Mnożenie | Dim DblResult As Double DblResult = 9 * 7 MsgBox DblResult |
| / | Dzielenie | Dim DblResult As Double DblResult = 9 / 7 MsgBox DblResult |
| \ | Dzielenie bez reszty | Dim DblResult As Double DblResult = 9 \ 7 MsgBox DblResult |
| ^ | Potęgowanie | Dim DblResult As Double DblResult = 9 ^ 7 MsgBox DblResult |
| mod | Modulo (reszta z dzielenia) | Dim DblResult As Double DblResult = 9 mod 7 MsgBox DblResult |
| + oraz & | Dodawanie ciągów znaków | Dim DblResult As Double DblResult = "wyraz_1" & "wyraz_2" MsgBox DblResult |
Jak widzimy operator „+” może służyć także do łączenia ze sobą ciągów znaków. W tym samym celu możemy skorzystać także operatora: „&”, którego przykład opisany jest poniżej.
Sub SumOperators()
MsgBox "wyraz_1 " & "wyraz_2"
MsgBox "wyraz_1 " + "wyraz_2"
End Sub
Jeśli chcielibyśmy wykorzystać operatory mniejszości i większości w odniesieniu do liter, procedura zwróci wartość prawda, bądź fałsz w zależności od tego, które miejsce dana litera zajmuje alfabecie.
Sub LogOperators() MsgBox "A" < "B" 'zwróci wartość True MsgBox "A" = "B" 'zwróci wartość False End Sub
3. Operatory VBA: porównania
Operatory porównania służą nam do porównywania wybranych danych. Ich opis oraz przykład zastosowania zamieszczam poniżej. Stosując poniższą konstrukcję, wynikiem za każdym razem będzie wartość True lub False.
| Operator | Nazwa | Przykład |
| = | Równe | MsgBox 100 = 200 |
| <> | Nierówne | MsgBox 100 <> 200 |
| >= | Większe niż | MsgBox 100 >= 200 |
| <= | Mniejsze niż | MsgBox 100 <= 200 |
| > | Większe | MsgBox 100 > 200 |
| < | Mniejsze | MsgBox 100 < 200 |
4. Operatory VBA: logiczne
Podstawą dobrego skryptu jest prawidłowo zapisana logika. Do jej zapisania używać będziemy operatorów logicznych.
| Operator | Nazwa | Przykład |
| And | Koniunkcja | MsgBox (1 = 1) And (2 <> 3) 'zwróci wartość True |
| Or | Alternatywa | MsgBox (1 = 1) Or (2 = 3) 'zwróci wartość True |
| Xor | Alternatywa z jednym wyborem. Zwraca wartość false, tylko gdy więcej niż jeden z warunków jest prawdziwy | MsgBox (1 = 1) Xor (2 <> 3) 'zwróci wartość False |
| Not | Negacja | MsgBox Not (0 = 1) 'zwróci wartość true |
5. Zadania (Wynik możesz zapisać w komentarzu)
5.1. Zapisz dowolne działanie wykorzystując jednocześnie wszystkie operatory arytmetyczne. Wynikiem działania powinna być liczba 100.
6 komentarzy “Operatory w Excel VBA”
proszę:
Sub program()
MsgBox 32 / 2 * 6 – 10 + 14
End Sub
=(1/1+1-1)*100
Sub LogOperators()
Dim dupa As Double
dupa = 1 ^ 2 * 2 / 2 \ 1 Mod 1 + 2 – 1 & „00”
Range(„A1”) = dupa
End Sub
Sub Zad5_1()
Dim DblResult As Double
DblResult = ((((10 – 6) * 11 / 1) \ 8) ^ 2) * (9 Mod 5)
MsgBox „Wynik działania= ” & DblResult
End Sub
Sub cwicz()
MsgBox ((2 ^ 2 – 2 + 68) / 2 + 15 * 2) + 35
End Sub
Sub OperatoryArytmetyczne()
Dim wyraz As String
wyraz = 0
MsgBox (((8 – 6) ^ 4) \ 3) * (((7 + 2) / 5) Mod 4) & wyraz
End Sub