Při psaní kódu VBA v Excelu se na 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 podrobně podíváme na každou skupinu operátorů.

Matematické operátory

Hlavní matematické operátory 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í, ve kterém se příkazy VBA provádějí, jak si přejete.

Řetězcové operátory

Základní operátor řetězce v 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 návratu booleovský typ Boolean(Pravda nebo lež). Hlavní operátory porovnání VBA Excelu 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ž). Hlavní 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 webu 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íže jsou uvedeny některé z nejčastěji používaných:

Funkce Akce
břišní svaly Vrátí absolutní hodnotu daného čísla.
  • Abs (-20) vrátí hodnotu 20;
  • abs (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.
DateAdd Přidá k danému datu zadaný časový interval. Syntaxe funkce:

DateAdd( časový úsek , číslo , datum )

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

Argument časový úsek 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 datu 01.01.2015 a vrátí datum 09.09.2015.
DateDiff Vypočítá počet zadaných časových intervalů mezi dvěma daný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 v daném datu.

Příklad: den („29/01/2015“) vrátí číslo 29.

Hodina Vrátí celé číslo odpovídající počtu hodin v daném čase.

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

InStr Jako argumenty bere celé číslo a dva řetězce. Vrátí polohu výskytu druhého řetězce v rámci prvního, přičemž hledání začíná na pozici dané celým číslem.
  • InStr(1, “Zde je hledané slovo”, “slovo”) vrátí číslo 13.
  • InStr(14, “Zde je hledané slovo a zde je další hledané slovo”, “slovo”) vrátí číslo 38.

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

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

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

Isdate se vrací Skutečný pokud je daná hodnota datum, popř Nepravdivé– pokud datum není.
  • IsDate(“01/01/2015”) se vrací Skutečný;
  • IsDate(100) se vrací Nepravdivé.
IsError se vrací 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 nebyla předána žádná hodnota pro daný argument procedury.
IsNumeric se vrací Skutečný pokud lze zadanou hodnotu považovat za číslo, jinak vrací Nepravdivé.
Vlevo, odjet Vrátí zadaný počet znaků od začátku daného řetězce. Syntaxe funkce je taková:

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

kde čára- tohle je originální řetězec, a délka je počet znaků, které se mají vrátit, počítáno od začátku řetězce.

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

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

Měsíc Vrátí celé číslo odpovídající měsíci daného data.

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

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

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

kde čára je původní řetězec Start- pozici začátku řetězce, který má být extrahován, délka je počet znaků, které mají být extrahovány.

  • Mid("abvgDeZicleMn", 4, 5) vrátí řetězec "kde";
  • Mid("abvgDeZicleMn", 10; 2) vrátí řetězec "cl".
Minuta Vrátí celé číslo odpovídající počtu minut v daném čase. Příklad: Minuta("22:45:15") vrátí hodnotu 45.
Nyní Vrátí aktuální systémové datum a čas.
Že jo Vrátí zadaný počet znaků od konce daného řetězce. Syntaxe funkce:

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

Kde čára je původní řetězec a délka je počet znaků k extrakci, počítáno od konce daného řetězce.

  • Right("abvgDeZicleMn", 4) vrátí řetězec "clmn";
  • Right("abvgDeZicleMn", 1) vrátí řetězec "n".
Druhý Vrátí celé číslo odpovídající počtu sekund v daném čase.

Příklad: Druhý („22:45:15“) vrátí hodnotu 15.

sqr Vrátí druhou odmocninu z číselné hodnoty předané v argumentu.
  • Sqr(4) vrátí 2;
  • Čtverec (16) vrátí hodnotu 4.
Čas Vrátí aktuální systémový čas.
Ubound Vrátí horní index zadané dimenze pole.

Poznámka: Pro vícerozměrná pole jako volitelný argument můžete určit, který index dimenze se má vrátit. Pokud není zadáno, výchozí 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é.

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

varname = výraz

varname- jakákoli proměnná VBA

výraz- jakýkoli výraz VBA

Při provádění příkazu přiřazení VBA nejprve vyhodnotí výraz napravo od příkazu 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 levá i pravá část operace obsahují stejnou proměnnou. V tomto případě se nejprve výsledek vyhodnocení výrazu na pravé straně přiřazovacího operátoru umístí do mezipamětové buňky a poté se tento výsledek přiřadí proměnné na levé straně.

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

Je třeba mít na paměti:

· Libovolnou číselnou proměnnou (nebo výraz) můžete přiřadit jakékoli jiné proměnné číselného typu (nebo proměnné typu 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 proměnná typu String přiděleno typ proměnné Varianta obsahující číslo, VBA toto číslo automaticky převede na řetězec.

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

Operátor sčítání provede 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, VBA jej převede na Long;

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

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

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

Je třeba říci, že je třeba 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í znaménko minus (toto je znaménko minus, které je umístěno před číslem, aby indikovalo, že se jedná o záporné číslo). Vložení unárního mínusu 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á k 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:

· Jsou-li 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 pro 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í obvyklé aritmetické dělení svých operandů.

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

Oba operandy ve výrazu dělení s plovoucí desetinnou čá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 operace dělení s plovoucí desetinnou čárkou je Double, kromě:

Oba operandy ve výrazu dělení jsou typu Integer nebo Single - výsledek Single;

Pokud výsledek výrazu nepřesahuje rozsah hodnot pro typ Single.

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

Celočíselné dělení se od dělení s pohyblivou řádovou čárkou liší tím, že jeho 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 (stejný typ jako výsledek dělení celých čísel).

VBA zahodí (ale nezaokrouhlí!) jakýkoli zlomkový zbytek výsledku celočíselného dělení. 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 je výsledek dělení také Null.

Modulo Division (Mod)

Dělení modulo, jak to bylo, 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

Zbývající 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 umocnění může být záporné číslo 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, bude výsledek umocňování také Null.

Shrňme si výše uvedené:

LOGICKÉ OPERÁTORY VBA

Jako operand pro logický operátor můžete použít jakýkoli platný výraz, který má logický výsledek a také číslo, které lze převést na logickou hodnotu.

Výsledkem logické operace je hodnota typu Boolean (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í.

Výsledek této operace je True, pouze když jsou oba operandy True, jinak False.

pravdivostní tabulka

Operátor AND lze použít na více operandech:

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

Bez ohledu na počet operandů je výsledkem logické A operace bude mít hodnotu True, pouze pokud se všechny operandy výrazu vyhodnotí jako True. V každém jiném případě bude výsledek False. Všimněte si, že operandy jsou uzavřeny v závorkách. VBA nejprve vyhodnotí hodnotu každého operandu v závorkách 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.

pravdivostní tabulka

Operátor OR lze použít na více operandech:

(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ě bude výsledek False.

Operátory AND a OR lze kombinovat:

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

Booleovský operátor NOT

SYNTAX:

NE Operand

NE Operátor vystupuje logická negace.

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

pravdivostní tabulka

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

Provede se operátor XOR logická výjimka.

Výsledek této operace je True, pokud operandy mají různé významy, jinak - Nepravda.

pravdivostní tabulka

((5<7) AND (4>3)) NEBO NE (5=6) Výsledek XOR (5=5) je nepravdivý

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.

pravdivostní tabulka

((5<7) AND (4>3)) NEBO NE (5=6) EQV (5=5) bude mít za následek hodnotu True.

Porovnávací operátory

Obvykle se srovnávací operace používají v cyklických příkazech k nějakému rozhodnutí o dalším průběhu 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í určitého typu a tyto typy nejsou kompatibilní, VBA vydá chybu nesouladu typu.

Pokud jeden nebo oba operandy ve výrazu porovnání jsou proměnné typu Variant, VBA se pokusí převést typ Variant 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 pouze 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, zahodí (ne zaokrouhlí) zlomková čá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

nebo ještě jednodušší:

nvar = 10

Ve druhém případě nezaměňujte znaménko rovná se s operátorem rovná se.

Výraz

nvar = 10

znamená "nastav proměnnou nVar na 10" a pokud řádek vypadá takto:

If (nVar = 10)

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

Pokud potřebujete přiřadit objekt k proměnné, pak se to dělá 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, If(nVar<>10) ;
  • srovnání objektů (Is). Určuje, zda proměnné objektu odkazují na stejný objekt nebo na různé, např. If(obj1 je obj2);
  • podobnost (Like). Porovná objekt typu řetězec se vzorem a určí, zda se vzor shoduje.

Porovnávací operátory vždy vrátí true nebo false - true, pokud je tvrzení pravdivé, a false, 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;
  • jsou také brány v úvahu mezery v hodnotách řetězce;
  • při porovnávání textové řetězce více/méně se standardně porovnávají jednoduše binární kódy postavy - co více či méně. Pokud potřebujete použít pořadí podle abecedy, můžete použít příkaz

Možnost Porovnat text

Ještě něco málo 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á je předána 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 testování 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 mají 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ěř každý program VBA používá 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 + se přidáním hodnoty řetězce k hodnotě typu Null získá Null.

MsgBox "Zpráva uživateli" & vUserName

Pořadí, ve kterém jsou operátory aplikovány, lze ovládat pomocí závorek.

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 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, která vyjadřuje jednu hodnotu. Výsledkem výrazu je jedna hodnota určitého datového typu. Znaky (označení) operací se používají k ovládání určitý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í v paměťovém místě, 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, která lze také použít pro aritmetiku.

Sub Slozhenie() "Příklad aritmetického výrazu se znaménkem "+" Dim A1, A2, A3 As Integer "deklarování 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řidat proměnnou 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 několik výjimek 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 a 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í znaménko mínus.

K určení datového typu výsledku odčítání výrazu se VBA řídí stejnými pravidly jako pro výrazy, které používají znaménko operátoru 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řadit hodnotu 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ů. K určení datového typu výsledku výrazu násobení používá jazyk VBA stejná pravidla jako pro výrazy, které používají sčítání. Ve výrazech 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ásobit 4 10 MyVar*2 "vynásobit MyVar 2 MyVar*OtherVar "vynásobit MyVar pomocí 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í se jeden operand dělí druhým a výsledkem dělení je podíl.

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

Pokud se některý operand ve výrazu dělení vyhodnotí jako Null, pak je výsledek výrazu také 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í

Znaménko (\) 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ělte 10 4; vrátí hodnotu 2 MyVar\2 "dělení MyVar 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í hodnotu 0; 5.1 Mod 3 "vrací hodnotu 2; 6 Mod MyVar "pokud MyVar obsahuje 3, vrací 0

Srozumitelné vysvětlení tohoto matematická operace daný na jednom z fór programátorů. Budu odtamtud citovat: "představte si, že je tam plný kanystr 50l a plechovka 3l. A z kanystru začnete nabírat vodu plechovkou (můžete nakreslit pouze plnou plechovku). 48l nabíráno, zbývají 2l .." 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ý odpovídá výsledku výrazu.

Umocňování

Znaménko (^) se používá k provedení operace umocňování čísla nebo výrazu. Exponent udává, kolikrát se má číslo nebo výraz vynásobit sám sebou.

"Ukázkový aritmetický výraz se znaménkem "^" 3 ^ 3" je stejný jako 3*3*3, vrátí hodnotu 27


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

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

Operátor 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 operátoru přiřazení byla používána v raných programovacích jazycích Basic. Druhá možnost se používá v moderní verzi VBA.


Při provádění příkazu přiřazení VBA nejprve vyhodnotí výraz napravo od příkazu 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 levá i pravá část operace obsahují stejnou proměnnou. V tomto případě se nejprve výsledek vyhodnocení výrazu na pravé straně přiřazovacího operátoru umístí do mezipamětové buňky a poté se tento výsledek přiřadí proměnné na levé straně.

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

Je třeba mít na paměti:

  • Libovolnou číselnou proměnnou (nebo výraz) můžete přiřadit jakékoli jiné proměnné číselného typu (nebo proměnné typu 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;
  • Když je proměnné String přiřazena varianta obsahující číslo, jazyk VBA automaticky převede číslo na řetězec.

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

Operátor sčítání provede 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 je Double;
  • Přidání typu Datum k jakémukoli jinému datovému typu bude mít vždy za následek 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, VBA jej převede na Double;
  • Pokud je některý operand ve výrazu sčítání Null, pak je výsledek výrazu sčítání také Null.

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

Je třeba říci, že je třeba 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í znaménko minus (toto je znaménko minus, které je umístěno před číslem, aby indikovalo, že se jedná o záporné číslo). Vložení unárního mínusu 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á k 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 pro 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í obvyklé aritmetické dělení svých operandů.

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

Oba operandy ve výrazu dělení s plovoucí desetinnou čá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 operace dělení s plovoucí desetinnou čárkou je Double, kromě:

  • Oba operandy ve výrazu dělení jsou typu Integer nebo Single - výsledek Single;
  • Pokud výsledek výrazu nepřesahuje rozsah hodnot pro typ Single.

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

Celočíselné dělení se od dělení s pohyblivou řádovou čárkou liší tím, že jeho 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 (stejný typ jako výsledek dělení celých čísel).

VBA zahodí (ale nezaokrouhlí!) jakýkoli zlomkový zbytek výsledku celočíselného dělení. 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 je výsledek dělení také Null.

Modulo Division (Mod)

Dělení modulo, jak to bylo, 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

Zbývající 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 umocnění může být záporné číslo 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, bude výsledek umocňování také Null.


Shrňme si výše uvedené.