Aritmetické operátory vba. Aritmetické operace ve VBA: sčítání, odčítání, násobení, dělení a umocňování Mýtus o zbytku dělení

Podívejme se blíže na to, jak VBA provádí aritmetické operace, jako je sčítání, odčítání, násobení, dělení a umocňování, a také speciální operace, jako je celočíselné dělení a dělení modulo. Níže uvedená tabulka ukazuje operační znaky používané při psaní aritmetických výrazů VBA.

Výraz je hodnota nebo skupina hodnot vyjadřující jednu hodnotu. Výsledkem výrazu je jedna hodnota určitého datového typu. Operační znaky (označení) se používají k ovládání konkrétních hodnot ve výrazech. K přiřazení výsledku výrazu k proměnné se používá operátor přiřazení (=), který ukládá jakoukoli hodnotu reprezentovanou výrazem napravo od operátoru přiřazení do paměťového místa, na které odkazuje proměnná nalevo od tohoto operátoru.

Ve všech níže uvedených operacích musí být oba operandy číselné výrazy nebo řetězce, které VBA dokáže převést na číslo.

Přidání

Znaménko (+) se používá k provedení operace sčítání. Termíny musí být číselné výrazy, řetězce, které VBA dokáže převést na čísla, nebo data, se kterými je také možná aritmetika.

Sub Slozhenie () "Příklad aritmetického výrazu se znaménkem" + "Dim A1, A2, A3 As Integer" deklarace proměnných A1 = 1 "přiřazení hodnoty 1 proměnné A1 A2 = 2" přiřazení hodnoty 2 proměnné A2 A3 = A1 + A2 "přiřazení výsledku přidání proměnné A3 MsgBox A3 "výstup A3 v dialogovém okně End Sub

Datový typ výsledku sčítacího výrazu je obvykle až na výjimky stejný jako nejpřesnější typ v daném výrazu. Všechny výjimky z tohoto pravidla jsou jasně uvedeny v příkladech.

Odčítání

Znaménko (-) se používá k provedení operace odčítání a také k označení záporných čísel (pokud je umístěno před proměnnou nebo výraz, znamená totéž jako násobení -1). Znaménko mínus, které je umístěno před číslem, které označuje, že číslo je záporné, se nazývá unární mínus.

VBA se řídí stejnými pravidly pro určení datového typu výsledku odčítání výrazu jako pro výrazy, které používají znaménko operace sčítání, ale existují dvě další pravidla.

Pravidlo 1. Pokud je jeden z operandů v odečítacím výrazu typu Datum, pak výsledek výrazu bude také typu Datum.

Pravidlo 2. Pokud jsou oba operandy v odečítacím výrazu typu Datum, pak bude výsledek výrazu typu Double.

Sub Vychitanie () "Příklad aritmetického výrazu se znaménkem" - "Dim D1, D2 As Date" deklarace proměnné D1 = Nyní "přiřazení hodnoty" dnešní datum proměnná D1 D2 = Now-5 "přiřazení hodnoty data proměnné D2 MsgBox TypeName (D2), vbOKOnly," Now-5 "MsgBox TypeName (D1-D2), vbOKOnly," D1-D2 "End Sub

Násobení

Znaménko (*) se používá k provedení operace násobení, výsledkem této operace je součin operandů. VBA používá stejná pravidla pro určení datového typu výsledku násobícího výrazu jako pro výrazy, které používají sčítání. Ve výrazech pro násobení jsou všechny proměnné Variant obsahující hodnoty Date převedeny na číselné hodnoty.

"Příklad aritmetických výrazů se znaménkem" * "4 * 10" vynásobte 4 x 10 MyVar * 2 "vynásobte MyVar 2 MyVar * OtherVar" vynásobte MyVar hodnotou OtherVar

Divize

Znaménko (/) se používá k provedení operace dělení, toto znaménko se nazývá znaménko dělení reálných čísel. Ve výrazech dělení je jeden operand dělen druhým a kvocient je výsledkem dělení.

"Příklad aritmetických výrazů se znaménkem" / "10/4" dělení 10 4 MyVar / 2 "dělení MyVar 2 MyVar / OtherVar" dělení MyVar podle OtherVar

Pokud se jakýkoli operand ve výrazu dělení vyhodnotí jako Null, pak se výraz vyhodnotí také jako Null. Datový typ ve výrazech skutečného dělení je obvykle Double, ale existuje výjimka.

Pokud jsou oba operandy ve výrazu dělení typu Integer nebo Single, pak je výsledek výrazu dělení typu Single. Pokud výsledek překročí rozsah pro Single, pak jej VBA převede na Double.

Celočíselné dělení

Znak (\) se používá k provedení operace dělení celého čísla, ve které je výsledkem dělení vždy celé číslo bez zlomkové části. VBA nezaokrouhluje podíl celočíselného dělení, ale jednoduše jej zkrátí na celé číslo, přičemž zlomkovou část zahodí.

Datový typ výsledku celočíselného dělení je buď Integer nebo Long. VBA používá nejmenší datový typ, který odpovídá výsledku výrazu.

"Příklad aritmetických výrazů se znaménkem" \ "10 \ 4" dělení 10 na 4; vrátí hodnotu 2 MyVar \ 2 "dělení MyVar by 2 MyVar \ OtherVar" dělení MyVar by OtherVar

Modulo rozdělení

Znak (Mod) se používá k provedení operace modulo. Při dělení modulo vrací výraz pouze zbytek dělení jako celé číslo.

"Příklad aritmetických výrazů se znaménkem" Mod "8 Mod 2" vrací 0; 5.1 Mod 3 "vrací 2; 6 Mod MyVar", pokud MyVar obsahuje 3, vrací 0

Je uvedeno snadno srozumitelné vysvětlení této matematické operace na jednom z fór programátorů... Budu odtamtud citovat: "Představte si, že existuje plný kanystr o objemu 50 litrů a plechovka o objemu 3 litry. A vy začnete nabírat vodu z kanystru (můžete sbírat pouze plnou plechovku). Já jsem nabral 48 litrů, tam zbývají 2 litry. Toto je zbytek z dělení 50 na 3 modulo." Jinými slovy, 50 Mod 3 vrátí 2.

Datový typ výsledku výrazu modulo je Integer nebo Long. VBA používá nejmenší typ, který je vhodný pro výsledek výrazu.

Umocňování

Znak ^ se používá k umocnění čísla nebo výrazu. Exponent udává, kolikrát musí být číslo nebo výraz vynásobeno samo sebou.

"Příklad aritmetického výrazu se znaménkem" ^ "3 ^ 3" je stejný jako 3 * 3 * 3, vrátí 27


Při psaní kódu VBA v Excelu se v každém kroku používá sada vestavěných operátorů. Tyto operátory se dělí na matematické, řetězcové, porovnávací a logické operátory. Dále se blíže podíváme na jednotlivé skupiny operátorů.

Matematické operátory

Základní matematické operátory ve VBA jsou uvedeny v tabulce níže.

Pravý sloupec tabulky ukazuje výchozí prioritu operátorů bez závorek. Přidáním závorek k výrazu můžete změnit pořadí provádění příkazů VBA podle potřeby.

Řetězcové operátory

Operátor hlavního řetězce v aplikaci Excel VBA je operátor zřetězení & (spojit):

Porovnávací operátory

Porovnávací operátory se používají k porovnání dvou čísel nebo řetězců a vrací booleovskou hodnotu jako Boolean(Pravda nebo lež). Hlavní porovnávací operátory Excel VBA jsou uvedeny v této tabulce:

Logické operátory

Logické operátory, stejně jako operátory porovnání, vracejí booleovskou hodnotu typu Boolean(Pravda nebo lež). Základní logické operátory Excel VBA jsou uvedeny v tabulce níže:

Výše uvedená tabulka neuvádí všechny logické operátory dostupné ve VBA. Úplný seznam logické operátory lze nalézt na Visual Basic Developer Center.

Vestavěné funkce

Ve VBA je k dispozici mnoho vestavěných funkcí, které lze použít při psaní kódu. Některé z nejpoužívanějších jsou uvedeny níže:

Funkce Akce
Břišní svaly Vrátí absolutní hodnotu zadaného čísla.
  • Břišní svaly (-20) vrátí hodnotu 20;
  • břišní svaly (20) vrátí hodnotu 20.
Chr Vrátí znak ANSI odpovídající číselné hodnotě parametru.
  • Chr (10) vrátí konec řádku;
  • Chr (97) vrátí znak A.
datum Vrátí aktuální systémové datum.
DatumPřidat Přidá zadaný časový interval k zadanému datu. Syntaxe funkce:

DatumPřidat ( interval , číslo , datum )

Kde je argument interval definuje typ časového intervalu přidaného k danému datum ve výši uvedené v argumentu číslo .

Argument interval může nabývat jedné z následujících hodnot:

  • DateAdd („d“, 32, „01/01/2015“) přidá 32 dní k datu 01.01.2015 a vrátí tak datum 02.02.2015.
  • DateAdd („ww“, 36, „01/01/2015“) přidá 36 týdnů k 1. 1. 2015 a vrací se 9. 9. 2015.
DateDiff Vypočítá počet zadaných časových intervalů mezi dvěma zadanými daty.
  • DateDiff („d“, „01/01/2015“, „02/02/2015“) vypočítá počet dní mezi 01.01.2015 a 02.02.2015, vrátí 32.
  • DateDiff („ww“, „01/01/2015“, „03/03/2016“) vypočítá počet týdnů mezi 01.01.2015 a 03.03.2016, vrátí 61.
Den Vrátí celé číslo odpovídající dni v měsíci k zadanému datu.

Příklad: Den („29/01/2015“) vrací číslo 29.

Hodina Vrátí celé číslo představující počet hodin v daném čase.

Příklad: Hodina (“22:45:00”) vrátí číslo 22.

InStr Přijímá celé číslo a dva řetězce jako argumenty. Vrátí polohu výskytu druhého řetězce v rámci prvního, přičemž hledání začíná na pozici určené celým číslem.
  • InStr (1, "Toto je slovo, které hledáte", "slovo") vrátí číslo 13.
  • InStr (14, „Zde je hledané slovo a zde je další hledané slovo“, „slovo“) vrací 38.

Poznámka: Argument číslo nemusí být zadán, v takovém případě hledání začíná prvním znakem řetězce zadaného v argumentu druhé funkce.

Int Vrátí celočíselnou část zadaného čísla.

Příklad: Int (5,79) vrátí výsledek 5.

Isdate Návraty Skutečný pokud je daná hodnota datum, popř Nepravdivé- pokud není datum.
  • IsDate (“01/01/2015”) se vrací Skutečný;
  • IsDate (100) se vrací Nepravdivé.
IsError Návraty Skutečný pokud je daná hodnota chybou, popř Nepravdivé- pokud to není chyba.
Chybí Název volitelného argumentu procedury je předán jako argument funkci. Chybí se vrací Skutečný pokud není předána žádná hodnota pro daný argument procedury.
IsNumeric Návraty Skutečný pokud lze zadanou hodnotu považovat za číslo, jinak vrátí Nepravdivé.
Vlevo, odjet Vrátí zadaný počet znaků od začátku předávaného řetězce. Syntaxe funkce je následující:

Vlevo, odjet ( čára , délka )

kde čára Je původní řetězec a délka- počet vrácených znaků, počítáno od začátku řádku.

  • Vlevo ("abvgdezhziklmn", 4) vrátí řetězec "abcg";
  • Vlevo ("abvgdezhziklmn", 1) vrátí řetězec "a".
Len Vrátí počet znaků v řetězci.

Příklad: Len ("abvgdezh") vrátí číslo 7.

Měsíc Vrátí celé číslo odpovídající měsíci k danému datu.

Příklad: Měsíc („29/01/2015“) vrátí hodnotu 1.

Střední Vrátí zadaný počet znaků ze středu předávaného řetězce. Syntaxe funkce:

střední ( čára , Start , délka )

kde čára Je původní řetězec, Start- pozice začátku extrahovaného řetězce, délka- počet znaků, které mají být extrahovány.

  • Střední ("abvgdezhziklmn", 4, 5) vrátí řetězec "ddjz";
  • Střední ("abvgdezhziklmn", 10, 2) vrátí řetězec "cl".
Minuta Vrátí celé číslo představující počet minut v zadaném čase. Příklad: Minuta („22:45:15“) vrací 45.
Nyní Vrátí aktuální systémové datum a čas.
Že jo Vrátí zadaný počet znaků od konce předaného řetězce. Syntaxe funkce:

Že jo ( čára , délka )

Kde čára Je původní řetězec a délka Je počet znaků, které se mají extrahovat z konce daného řetězce.

  • Vpravo ("abvgdezhziklmn", 4) vrátí řetězec "klmn";
  • Vpravo ("abvgdezhziklmn", 1) vrátí řetězec "n".
Druhý Vrátí celé číslo představující počet sekund v daném čase.

Příklad: Druhý („22:45:15“) vrací 15.

Sqr Návraty Odmocninačíselná hodnota předaná v argumentu.
  • Sqr (4) vrátí hodnotu 2;
  • Sqr (16) vrátí hodnotu 4.
Čas Vrátí aktuální systémový čas.
Ubound Vrátí horní index dimenze zadaného pole.

Poznámka: U vícerozměrných polí můžete jako volitelný argument zadat index, který rozměr má být vrácen. Pokud není zadáno, výchozí hodnota je 1.

Operátor přiřazení (=)

Operátor přiřazení se používá k přiřazení výsledku výrazu k proměnné.

Operace přiřazení má dvě syntaktické formy:

varname = výraz

varname- jakákoli proměnná VBA

výraz- jakýkoli výraz VBA

Když spustíte operátor přiřazení, jazyk VBA nejprve vyhodnotí výraz napravo od operátoru přiřazení a poté uloží výsledek výrazu do proměnné, jejíž název je nalevo od znaménka rovná se.

X = 5 + 7; Y = X + 5; Z = X - Y; A = B; I = I + 1

Začínající uživatelé někdy nechápou význam poslední operace přiřazení, kdy je stejná proměnná v levé i pravé části operace. V tomto případě se nejprve výsledek vyhodnocení výrazu na pravé straně přiřazovacího operátoru umístí do mezipaměti a poté se tento výsledek přiřadí proměnné na levé straně.

Pokud například v operátoru přiřazení A = A +5 obsahovala proměnná A před operací přiřazení hodnotu 7, pak po operaci bude obsahovat hodnotu 12 (7 + 5).

Pamatovat:

· Libovolnou číselnou proměnnou (nebo výraz) můžete přiřadit jakékoli jiné číselné proměnné (nebo proměnné Variant);

· Pokud zadané proměnné přiřadíte číselný výraz s nižší přesností (například Double - Long), VBA zaokrouhlí hodnotu výrazu tak, aby odpovídala přesnosti proměnné, která nabývá nové hodnoty;

· Pokud přiřadíte proměnnou String k variantě obsahující číslo, VBA toto číslo automaticky převede na řetězec.

Operátor přidání (+)

Operátor sčítání provádí jednoduché sčítání. Oba operandy musí být číselné výrazy nebo řetězce, které VBA dokáže převést na číslo. Operátor sčítání lze také použít k provádění aritmetických operací s daty Date.

Datový typ výsledku sčítacího výrazu je obvykle stejný jako nejpřesnější typ v tomto výrazu. Existují však výjimky:

· Výsledkem přidání typu Single a Long bude Double;

· Výsledkem přidání typu Datum k jakémukoli jinému datovému typu bude vždy Datum;

· Pokud výsledek překročí rozsah typu Integer, pak jej VBA převede na Long;

· Pokud výsledek překročí typy Long, Single, Date, pak jej VBA převede na Double;

· Pokud je jakýkoli operand ve výrazu sčítání Null, pak bude výsledek výrazu sčítání také Null.

Připomeňme si pořadí zvyšující se přesnosti pro číselné datové typy: Byte, Integer, Long, Single, Double, Currency.

Je třeba říci, že musíte jasně pochopit, jak VBA převádí datové typy jako výsledek aritmetických operací. To v budoucnu pomůže vyhnout se mnoha „zbytečným“ chybám při psaní kódu.

Operátor odčítání (-)

Operátor odčítání dělá dvě věci: používá se k odečítání jednoho čísla od druhého; označuje unární minus (toto je znaménko minus, které je umístěno před číslem, aby indikovalo, že se jedná o záporné číslo). Umístění unárního znaménka mínus před proměnnou nebo výraz je stejné jako vynásobení tohoto čísla číslem -1.

Oba operandy ve výrazu odčítání musí být číselné proměnné (výrazy) nebo řetězcové výrazy, které VBA dokáže převést na číslo. Pro práci s daty můžete použít operátor odečítání.

VBA používá pro určení datového typu výsledku výrazu odčítání stejná pravidla jako pro výrazy, které používají operátor sčítání. Je tu však dodatek:

· Pokud jsou oba operandy ve výrazu typu Datum, pak bude výsledek výrazu typu Double.

Operátor násobení (*)

Operátor násobení násobí dvě čísla – výsledkem násobení je součin dvou operandů. Oba operandy ve výrazu násobení musí být číselné výrazy nebo řetězce, které VBA dokáže převést na číslo.

VBA se řídí stejnými pravidly pro určení datového typu výsledku výrazu násobení jako pro výrazy, které používají operátor sčítání. Ve výrazech násobení jsou všechny proměnné Variant, které obsahují hodnoty Date, převedeny na číselné hodnoty.

Operátor divize (/)

Operátor dělení s pohyblivou řádovou čárkou provádí na svých operandech normální aritmetické dělení.

Ve výrazech dělení se první operand dělí druhým operandem - podíl je výsledkem dělení.

Oba operandy ve výrazu dělení s pohyblivou řádovou čárkou musí být číselné výrazy nebo řetězce, které VBA dokáže převést na číslo.

Pokud je alespoň jeden operand ve výrazu dělení typu Null, pak bude výsledek dělení také Null.

Datový typ dělení s pohyblivou řádovou čárkou je Double, kromě:

Oba operandy ve výrazu dělení jsou typu Integer nebo Single, což vede k Single;

Pokud výsledek výrazu nepřeteče rozsah hodnot pro typ Single.

Celočíselné dělení (\)

Celočíselné dělení se od dělení s plovoucí desetinnou čárkou liší tím, že výsledkem je vždy celé číslo bez zlomkové části.

Oba operandy ve výrazu s celočíselným dělením musí být číselné výrazy nebo řetězce, které VBA dokáže převést na číslo.

Před provedením operace dělení celých čísel VBA zaokrouhlí každý operand na číslo typu Integer nebo Long (výsledek dělení celého čísla je stejného typu).

VBA zahodí (ale nezaokrouhlí!) Jakýkoli zlomkový zbytek výrazu dělení celého čísla. Například výrazy 22/5 a 24/5 budou mít stejný výsledek = 4.

Pokud je alespoň jeden operand ve výrazu celočíselného dělení typu Null, pak bude výsledek dělení také Null.

Modulo divize (Mod)

Modulo dělení jakoby doplňuje celočíselné dělení. Při dělení modulo vrací výraz pouze zbytek operace dělení jako celé číslo.

22 Mod 5 = 2

24 Mod 5 = 4

25 Mod 5 = 0

Ostatní vlastnosti modulového dělení jsou shodné s celočíselným dělením.

Umocnění (^)

Operátor umocnění zvýší číslo na mocninu.

5 ^ 3 =125

Oba operátory ve výrazu umocňování musí být číselné výrazy nebo řetězce, které VBA dokáže převést na čísla.

Operand nalevo od operátoru umocňování může být záporný pouze v případě, že operand napravo je celé číslo.

Výsledek výrazu je typu Double.

Pokud je alespoň jeden operand ve výrazu typu Null, pak bude výsledek umocňování také Null.

Abychom shrnuli výše uvedené:

LOGICKÉ OPERÁTORY VBA

Jakýkoli platný výraz s logickým výsledkem lze použít jako operand pro logický operátor a také jako číslo, které lze převést na logickou hodnotu.

Výsledkem logické operace je booleovská hodnota (nebo Null, pokud je alespoň jeden z operandů Null).

Logický operátor AND

SYNTAX:

Operand_1 A Operand_2

Provede se operátor AND logické spojení.

Tato operace se vyhodnotí jako True pouze tehdy, když jsou oba operandy True, jinak False.

Tabulka pravdy

Operátor AND lze použít pro více operandů:

(5<7) AND (4>3) AND (5 = 6) výsledek bude False

Bez ohledu na počet operandů má výsledek logické operace AND hodnotu True, pouze pokud jsou všechny operandy výrazu True. V opačném případě je výsledek False. Všimněte si, že operandy jsou uzavřeny v závorkách. VBA nejprve vyhodnotí hodnotu každého operandu uvnitř závorek a poté celý výraz.

Logický operátor OR

SYNTAX:

Operand_1 NEBO Operand_2

Provede se operátor OR logická disjunkce.

Výsledek této operace je True, pokud je alespoň jeden z operandů True, jinak False.

Tabulka pravdy

Operátor OR lze použít pro více operandů:

(5<7) OR (4>3) NEBO (5 = 6) výsledek bude True

Bez ohledu na počet operandů bude výsledek logické operace OR vždy True, pokud je alespoň jeden z operandů výrazu vyhodnocen jako True. V opačném případě je výsledek False.

Operátory AND a OR lze kombinovat:

((5<7) AND (4>3)) NEBO (5 = 6) bude výsledek True

Logický operátor NOT

SYNTAX:

NE Operand

Operátor NOT ano logická negace.

Operátor NOT používá pouze jeden operand.

Tabulka pravdy

Operátory AND OR NOT lze kombinovat:

((5<7) AND (4>3)) NEBO NE (5 = 6) výsledek bude True

Logický operátor XOR

SYNTAX:

Operand_1 XOR Operand_2

Operátor XOR ano logické vyloučení.

Výsledek této operace je True, pokud mají operandy různé hodnoty, v opačném případě False.

Tabulka pravdy

((5<7) AND (4>3)) NEBO NE (5 = 6) XOR (5 = 5) výsledek bude False

Logický operátor EQV

SYNTAX:

Operand_1 EQV Operand_2

Operátor EQV je provozovatel logická ekvivalence.

Výsledek této operace je True, pokud mají operandy stejnou hodnotu, jinak False.

Tabulka pravdy

((5<7) AND (4>3)) NEBO NE (5 = 6) EQV (5 = 5) výsledek bude True.

Porovnávací operátory

Porovnávací operace se obvykle používají v cyklických příkazech k nějakému rozhodnutí o dalším postupu operací.

Výsledkem jakékoli operace porovnání je logická hodnota: True, False.

Pokud jsou oba operandy ve výrazu porovnání stejného datového typu, VBA provede jednoduché porovnání tohoto typu.

Pokud jsou oba operandy ve výrazu porovnání specifických typů a typy nejsou kompatibilní, VBA vydá chybu nesouladu typu.

Pokud jsou jeden nebo oba operandy ve výrazu porovnání Variant, VBA se pokusí převést variantu na nějaký kompatibilní typ.

Operátory VBA: Aritmetika, Boolean, Porovnání, Přiřazení

Operátor je nejmenší jednotka kódu VBA, kterou lze spustit. Příkaz může deklarovat nebo definovat proměnnou, nastavit volbu kompilátoru VBA nebo provést nějakou akci v programu.

Ve VBA je 7 aritmetických operátorů. Čtyři standardní: sčítání (+), odčítání (-), násobení (*), dělení (/) a tři další:

  • například umocňování (^). 2^3 = 8 ;
  • celočíselné dělení (\). Vydělí první číslo druhým a zahodí (nezaokrouhlí) zlomkovou část. Například, 5\2 = 2 ;
  • dělení modulo (Mod). Vydělí první číslo druhým a vrátí pouze zbytek dělení. Například, 5 Mod 2 = 1.

Operátor přiřazení ve VBA je rovnítko. Dá se to napsat takto:

Nechť nVar = 10

a může to být ještě jednodušší:

nVar = 10

V druhém případě nezaměňujte rovnítko s operátorem rovná se.

Výraz

nVar = 10

znamená "přiřadit hodnotu 10 proměnné nVar", a pokud řádek vypadá takto:

If (nVar = 10)

znamená to "pokud je hodnota proměnné nVar 10".

Pokud je třeba objekt přiřadit k proměnné, lze to provést jinými způsoby.

Ve VBA je pouze 8 operátorů porovnání:

  • rovnost (=), např. If (nVar = 10);
  • větší než a menší než (> a<), например, If (nVar> 10);
  • větší nebo rovno a menší nebo rovno (> = a<=), например, If (nVar> = 10);
  • nerovná se (<>), Například, Pokud (nVar<>10) ;
  • srovnání objektů (Is). Určuje, zda objektové proměnné odkazují na stejný objekt nebo na různé, např. If (obj1 je obj2);
  • podobnost (Like). Porovná objekt řetězce se vzorem a určí, zda se vzor shoduje.

Porovnávací operátory vždy vrátí true nebo false - true, pokud je výrok pravdivý, a nepravdivý, pokud je nepravdivý.

Něco málo o porovnání hodnot řetězců:

  • při porovnávání hodnot řetězců se rozlišují velká a malá písmena;
  • počítají se také mezery v hodnotách řetězce;
  • při porovnávání textových řetězců za více / méně ve výchozím nastavení se jednoduše porovnávají binární kódy postav – kterých je více či méně. Pokud potřebujete použít pořadí, které jde v abecedě, můžete použít příkaz

Možnost Porovnat text

Trochu podrobněji o operátoru Like. Jeho obecná syntaxe vypadá takto

Výraz1 Jako Výraz2

V tomto případě je Expression1 libovolný textový výraz VBA a Expression2 je šablona, ​​která se předává operátoru Like. V tomto vzoru můžete použít speciální zástupné znaky (viz Tabulka 3.1)

Tab. 3.1 Zástupné znaky pro operátor LIKE

Velmi často se při kontrole několika podmínek používají logické operátory:

  • AND - logické AND, obě podmínky musí být pravdivé;
  • OR - logické NEBO, alespoň jedna z podmínek musí být pravdivá;
  • NOT - logická negace, vrátí TRUE, pokud je podmínka nepravdivá;
  • XOR je logická výjimka. Ve výrazu E1 XOR vrátí E2 hodnotu TRUE, pokud pouze E1 = TRUE nebo pouze E2 = TRUE, jinak FALSE;
  • EQV - Ekvivalence dvou výrazů, vrátí TRUE, pokud ano stejnou hodnotu;
  • IMP - implikace, vrátí NEPRAVDA, pokud E1 = PRAVDA a E2 = NEPRAVDA, jinak - PRAVDA.

Musíte si pamatovat na AND, OR, NOT, jiné logické operátory se používají zřídka.

Téměř v jakémkoli program VBA používají se operátory zřetězení. Ve VBA jsou dvě - + nebo &. Doporučuje se vždy používat a protože:

  • při použití & se provádí automatický převod číselných hodnot na řetězce - nehrozí omyl;
  • při použití operátoru + přidáním hodnoty řetězce k hodnotě Null získáte hodnotu Null.

MsgBox "Zpráva uživateli" & vUserName

Pořadí, ve kterém se operátory používají, lze ovládat pomocí závorek.

Operátor přiřazení (=)

Operátor přiřazení se používá k přiřazení výsledku výrazu k proměnné.

Operace přiřazení má dvě syntaktické formy:

1 Nechť varname = výraz
2 varname = výraz


varname- jakákoli proměnná VBA

výraz- jakýkoli výraz VBA


První verze operace přiřazení byla použita v raných jazycích. Základní programování... Druhá možnost se používá v moderní verzi VBA.


Když spustíte operátor přiřazení, jazyk VBA nejprve vyhodnotí výraz napravo od operátoru přiřazení a poté uloží výsledek výrazu do proměnné, jejíž název je nalevo od znaménka rovná se.


X = 5 + 7; Y = X + 5; Z = X - Y; A = B; I = I + 1


Začínající uživatelé někdy nechápou význam poslední operace přiřazení, kdy je stejná proměnná v levé i pravé části operace. V tomto případě se nejprve výsledek vyhodnocení výrazu na pravé straně přiřazovacího operátoru umístí do mezipaměti a poté se tento výsledek přiřadí proměnné na levé straně.

Pokud například v operátoru přiřazení A = A +5 obsahovala proměnná A před operací přiřazení hodnotu 7, pak po operaci bude obsahovat hodnotu 12 (7 + 5).

Pamatovat:

  • Libovolné číselné proměnné (nebo výrazu) můžete přiřadit jakékoli jiné číselné proměnné (nebo proměnné Variant);
  • Pokud zadané proměnné přiřadíte číselný výraz s nižší přesností (například Double - Long), VBA zaokrouhlí hodnotu výrazu tak, aby odpovídala přesnosti proměnné, která nabývá nové hodnoty;
  • Pokud přiřadíte proměnnou String k variantě obsahující číslo, VBA toto číslo automaticky převede na řetězec.

Operátor přidání (+)

Operátor sčítání provádí jednoduché sčítání. Oba operandy musí být číselné výrazy nebo řetězce, které VBA dokáže převést na číslo. Operátor sčítání lze také použít k provádění aritmetických operací s daty Date.


Datový typ výsledku sčítacího výrazu je obvykle stejný jako nejpřesnější typ v tomto výrazu. Existují však výjimky:

  • Přidáním Single a Long bude výsledkem Double;
  • Přidání data k jakémukoli jinému datovému typu vždy povede k datu;
  • Pokud výsledek překročí rozsah Integer, VBA jej převede na Long;
  • Pokud výsledek překročí typy Long, Single, Date, pak jej VBA převede na Double;
  • Pokud je jakýkoli operand ve výrazu sčítání Null, pak bude výsledek výrazu sčítání také Null.

Připomeňme si pořadí zvyšující se přesnosti pro číselné datové typy: Byte, Integer, Long, Single, Double, Currency.

Je třeba říci, že musíte jasně pochopit, jak VBA převádí datové typy jako výsledek aritmetických operací. To v budoucnu pomůže vyhnout se mnoha „zbytečným“ chybám při psaní kódu.

Operátor odčítání (-)

Operátor odčítání dělá dvě věci: používá se k odečítání jednoho čísla od druhého; označuje unární minus (toto je znaménko minus, které je umístěno před číslem, aby indikovalo, že se jedná o záporné číslo). Umístění unárního znaménka mínus před proměnnou nebo výraz je stejné jako vynásobení tohoto čísla číslem -1.


Oba operandy ve výrazu odčítání musí být číselné proměnné (výrazy) nebo řetězcové výrazy, které VBA dokáže převést na číslo. Pro práci s daty můžete použít operátor odečítání.

VBA používá pro určení datového typu výsledku výrazu odčítání stejná pravidla jako pro výrazy, které používají operátor sčítání. Je tu však dodatek:
Pokud jsou oba operandy ve výrazu typu Datum, pak bude výsledek výrazu typu Double.

Operátor násobení (*)

Operátor násobení násobí dvě čísla – výsledkem násobení je součin dvou operandů. Oba operandy ve výrazu násobení musí být číselné výrazy nebo řetězce, které VBA dokáže převést na číslo.

VBA se řídí stejnými pravidly pro určení datového typu výsledku výrazu násobení jako pro výrazy, které používají operátor sčítání. Ve výrazech násobení jsou všechny proměnné Variant, které obsahují hodnoty Date, převedeny na číselné hodnoty.

Operátor divize (/)

Operátor dělení s pohyblivou řádovou čárkou provádí na svých operandech normální aritmetické dělení.

Ve výrazech dělení se první operand dělí druhým operandem - podíl je výsledkem dělení.

Oba operandy ve výrazu dělení s pohyblivou řádovou čárkou musí být číselné výrazy nebo řetězce, které VBA dokáže převést na číslo.

Pokud je alespoň jeden operand ve výrazu dělení typu Null, pak bude výsledek dělení také Null.

Datový typ dělení s pohyblivou řádovou čárkou je Double, kromě:

  • Oba operandy ve výrazu dělení jsou typu Integer nebo Single, což vede k Single;
  • Pokud výsledek výrazu nepřeteče rozsah hodnot pro typ Single.

Celočíselné dělení (\)

Celočíselné dělení se od dělení s plovoucí desetinnou čárkou liší tím, že výsledkem je vždy celé číslo bez zlomkové části.

Oba operandy ve výrazu s celočíselným dělením musí být číselné výrazy nebo řetězce, které VBA dokáže převést na číslo.

Před provedením operace dělení celých čísel VBA zaokrouhlí každý operand na číslo typu Integer nebo Long (výsledek dělení celého čísla je stejného typu).

VBA zahodí (ale nezaokrouhlí!) Jakýkoli zlomkový zbytek výrazu dělení celého čísla. Například výrazy 22/5 a 24/5 budou mít stejný výsledek = 4.

Pokud je alespoň jeden operand ve výrazu celočíselného dělení typu Null, pak bude výsledek dělení také Null.

Modulo divize (Mod)

Modulo dělení jakoby doplňuje celočíselné dělení. Při dělení modulo vrací výraz pouze zbytek operace dělení jako celé číslo.
22 Mod 5 = 2
24 Mod 5 = 4
25 Mod 5 = 0

Ostatní vlastnosti modulového dělení jsou shodné s celočíselným dělením.

Umocnění (^)

Operátor umocnění zvýší číslo na mocninu.



Oba operátory ve výrazu umocňování musí být číselné výrazy nebo řetězce, které VBA dokáže převést na čísla.

Operand nalevo od operátoru umocňování může být záporný pouze v případě, že operand napravo je celé číslo.

Výsledek výrazu je typu Double.

Pokud je alespoň jeden operand ve výrazu typu Null, pak bude výsledek umocňování také Null.


Shrňme si výše uvedené.