Aritmetikai operátorok vba. Operátorok és beépített funkciók VBA Vba maradék mod

VBA operátorok: aritmetika, logikai, összehasonlítások, hozzárendelések

Operátor a VBA kód legkisebb végrehajtható egysége. Egy utasítás deklarálhat vagy definiálhat egy változót, beállíthat egy VBA-fordító beállítást, vagy végrehajthat valamilyen műveletet egy programban.

A VBA-ban csak 7 aritmetikai operátor van: összeadás (+), kivonás (-), szorzás (*), osztás (/) és még három:

  • hatványozás (^), például 2^3 = 8 ;
  • egész osztás (\). Az első számot elosztja a másodikkal, eldobja (kerekítés nélkül) a tört részt. Például, 5\2 = 2 ;
  • modulo divízió (Mod). Az első számot elosztja a másodikkal, és csak az osztás maradékát adja vissza. Például, 5 2. mód = 1.

A hozzárendelés operátora a VBA-ban az egyenlőségjel. Ezt így írhatod:

Legyen nVar = 10

vagy még egyszerűbben:

nVar = 10

A második esetben ne keverjük össze az egyenlőségjelet az egyenlőség operátorral.

Kifejezés

nVar = 10

azt jelenti, hogy az nVar értéke 10, és ha a sor így néz ki:

Ha (nVar = 10)

akkor ez azt jelenti, hogy "ha az nVar értéke 10".

Ha egy objektumot hozzá kell rendelni egy változóhoz, ez más módon történik.

Csak 8 összehasonlító operátor van a VBA-ban:

  • egyenlőség (=), például Ha (nVar = 10);
  • nagyobb és kisebb, mint (> és<), например, Ha (nVar > 10);
  • nagyobb vagy egyenlő, és kisebb vagy egyenlő, mint (>= és<=), например, Ha (nVar >= 10);
  • nem egyenlő (<>), Például If(nVar<>10) ;
  • tárgyak összehasonlítása (Is). Meghatározza, hogy az objektumváltozók ugyanarra az objektumra vonatkoznak-e vagy különbözőekre, pl. If(obj1 az obj2);
  • hasonlóság (Tetszik). Összehasonlít egy karakterlánc-objektumot egy mintával, és meghatározza, hogy a minta egyezik-e.

Az összehasonlító operátorok mindig igaz vagy hamis értéket adnak vissza – igaz, ha az állítás igaz, és hamis, ha hamis.

Egy kicsit a karakterláncértékek összehasonlításáról:

  • A karakterláncértékek összehasonlításakor a kis- és nagybetűket figyelembe veszik;
  • a karakterlánc értékek szóközeit is figyelembe veszik;
  • ha összehasonlítja a szöveges karakterláncokat több/kevesebb, mint alapértelmezés szerint, egyszerűen összehasonlítják bináris kódok karakterek – amelyek többé-kevésbé. Ha az ábécé sorrendjét kell használnia, használhatja a parancsot

Lehetőség Szöveg összehasonlítása

Egy kicsit bővebben a Like operátorról. Az általános szintaxisa így néz ki

Kifejezés1 Mint a Kifejezés2

Ebben az esetben a Kifejezés1 bármely VBA szövegkifejezés, a Kifejezés2 pedig a Like operátornak átadott sablon. Ebben a mintában speciális helyettesítő karaktereket használhat (lásd a 3.1. táblázatot)

Táblázat 3.1 Helyettesítő karakterek a LIKE operátorhoz

Nagyon gyakran több feltétel ellenőrzésekor logikai operátorokat használnak:

  • ÉS - logikai ÉS, mindkét feltételnek igaznak kell lennie;
  • VAGY - logikai VAGY, legalább egy feltételnek igaznak kell lennie;
  • NOT – logikai negáció, IGAZ értéket ad vissza, ha a feltétel hamis;
  • Az XOR logikus kivétel. Egy E1 XOR kifejezésben az E2 IGAZ értéket ad vissza, ha csak E1 = IGAZ vagy csak E2 = IGAZ, egyébként FALSE;
  • EQV - két kifejezés ekvivalenciája, IGAZ értéket ad vissza, ha azonos értékkel rendelkeznek;
  • IMP – implikáció, FALSE értéket ad vissza, ha E1 = IGAZ és E2 = HAMIS, egyébként IGAZ.

Emlékeztetni kell az ÉS, VAGY, NEM, más logikai operátorok ritkán használatosak.

Szinte minden VBA program használ összefűzési operátorokat. VBA-ban kettő van belőlük - + vagy &. Mindig ajánlott használni, mert:

  • a & használatakor a numerikus értékek automatikusan karakterláncértékekké konvertálódnak - nem áll fenn a hiba veszélye;
  • Ha a + operátort használja, ha egy karakterlánc értéket ad egy Null típusú értékhez, akkor Null lesz.

MsgBox "Üzenet a felhasználónak" & vUserName

Az operátorok használatának sorrendje zárójelekkel szabályozható.

Amikor VBA-kódot ír Excelben, minden lépésben egy sor beépített operátort használ. Ezeket az operátorokat matematikai, karakterlánc, összehasonlító és logikai operátorokra osztják. Ezután részletesen megvizsgáljuk az egyes operátorcsoportokat.

Matematikai operátorok

Az alapvető VBA matematikai operátorok az alábbi táblázatban találhatók.

A táblázat jobb oldali oszlopában zárójelek hiányában látható az alapértelmezett operátor elsőbbség. Ha egy kifejezéshez zárójeleket ad, tetszés szerint módosíthatja a VBA utasítások végrehajtási sorrendjét.

String operátorok

Az Excel VBA fő karakterlánc-operátora az összefűzési operátor & (összeolvad):

Összehasonlító operátorok

Az összehasonlító operátorok két szám vagy karakterlánc összehasonlítására szolgálnak, és egy logikai értéket adnak vissza, mint pl Boolean(Igaz vagy hamis). A fő Excel VBA összehasonlító operátorok listája ebben a táblázatban található:

Logikai operátorok

A logikai operátorok, az összehasonlító operátorokhoz hasonlóan, egy típusú logikai értéket adnak vissza Boolean(Igaz vagy hamis). Az alapvető Excel VBA logikai operátorok az alábbi táblázatban találhatók:

A fenti táblázat nem sorolja fel a VBA-ban elérhető összes Boole-operátort. Teljes lista logikai operátorok a Visual Basic Developer Centerben találhatók.

Beépített funkciók

A VBA-ban számos beépített funkció érhető el, amelyek kódíráskor használhatók. Az alábbiakban felsorolunk néhányat a leggyakrabban használtak közül:

Funkció Akció
Abs Egy adott szám abszolút értékét adja vissza.
  • Hasizület (-20) 20 értéket ad vissza;
  • Abs (20) 20 értéket ad vissza.
Chr A paraméter számértékének megfelelő ANSI karaktert adja vissza.
  • Chr(10) sortörést ad vissza;
  • Chr(97) karaktert ad vissza a.
Dátum Az aktuális rendszerdátumot adja vissza.
Hozzáadás dátuma Adott időintervallumot ad egy adott dátumhoz. Függvény szintaxis:

Hozzáadás dátuma( intervallum , szám , dátum )

Hol az érvelés intervallum meghatározza az adotthoz hozzáadott időintervallum típusát dátum az érvelésben meghatározott összegben szám .

Érv intervallum a következő értékek egyikét veheti fel:

  • Hozzáadás dátuma("d", 32, "2015.01.01.") 32 napot ad a 2015.01.01. dátumhoz, így a 2015.02.02. dátumot adja vissza.
  • Hozzáadás dátuma("ww", 36, "2015.01.01.") 36 hetet ad a 2015. 01. 01-i dátumhoz, és a 2015. 09. 09. dátumot adja vissza.
DateDiff Kiszámítja a megadott időintervallumok számát két adott dátum között.
  • DateDiff("d", "01/01/2015", "02/02/2015") kiszámolja a 2015.01.01. és 2015.02.02. közötti napok számát, 32-es eredményt ad vissza.
  • DateDiff("ww", "01/01/2015", "03/03/2016") kiszámítja a 2015. 01. 01. és 2016. 03. 03. dátum közötti hetek számát, és a 61-es eredményt adja vissza.
Nap A hónap napjának megfelelő egész számot ad vissza az adott dátumban.

Példa: nap („2015.01.29.”) a 29-es számot adja vissza.

Óra Egy egész számot ad eredményül, amely megfelel az adott időpontban töltött órák számának.

Példa: Óra ("22:45:00") visszaadja a 22-es számot.

InStr Egy egész számot és két karakterláncot vesz fel argumentumként. A második karakterlánc előfordulásának pozícióját adja vissza az elsőben, a keresést az egész szám által megadott pozíciótól kezdve.
  • InStr(1, „Itt a szó, amit keres”, „szó”) visszaadja a 13-as számot.
  • InStr(14, "Itt a keresett szó, és itt van egy másik keresőszó", "szó") a 38-as számot adja vissza.

Jegyzet: A szám argumentum nem adható meg, ebben az esetben a keresés a függvény második argumentumában megadott karakterlánc első karakterétől indul.

Int A megadott szám egész részét adja vissza.

Példa: Int(5,79) visszaadja az 5-ös eredményt.

Isdate Visszatér Igaz ha a megadott érték dátum, ill Hamis– ha nem randevúról van szó.
  • IsDate (“2015.01.01.”) visszatér Igaz;
  • IsDate(100) visszatér Hamis.
IsError Visszatér Igaz, ha a megadott érték hiba, ill Hamis– ha nem hiba.
Hiányzik Az opcionális eljárásargumentum neve argumentumként kerül átadásra a függvénynek. Hiányzik visszatér Igaz, ha nem adunk át értéket a kérdéses eljárási argumentumhoz.
IsNumeric Visszatér Igaz ha a megadott érték számnak tekinthető, egyébként visszaadja Hamis.
Balra A megadott számú karaktert adja vissza az átadott karakterlánc elejétől. A függvény szintaxisa a következő:

balra( vonal , hossz )

Ahol vonal az eredeti karakterlánc, és hossz– a visszaadott karakterek száma, a sor elejétől számítva.

  • Bal (“abvgdezziklmn”, 4) az „abvg” karakterláncot adja vissza;
  • Bal (“abvgdezziklmn”, 1) az "a" karakterláncot adja vissza.
Len Egy karakterláncban lévő karakterek számát adja vissza.

Példa: Len ("abvgdezh") a 7-es számot adja vissza.

Hónap A megadott dátum hónapjának megfelelő egész számot ad vissza.

Példa: Hónap („2015.01.29.”) 1-es értéket ad vissza.

Középső Adott számú karaktert ad vissza az átadott karakterlánc közepétől. Függvény szintaxis:

Középső( vonal , indul , hossz )

Ahol vonal az eredeti karakterlánc, indul– a kivont karakterlánc kezdetének pozíciója, hossz– a kinyerendő karakterek száma.

  • Közép ("abvgdezziklmn", 4, 5) a „hol” karakterláncot adja vissza;
  • Közép ("abvgdezziklmn", 10, 2) a „cl” karakterláncot adja vissza.
Perc A megadott idő perceinek megfelelő egész számot ad vissza: perc („22:45:15”) 45 értéket ad vissza.
Jelenleg Az aktuális rendszerdátumot és -időt adja vissza.
Jobbra A megadott számú karaktert adja vissza az átadott karakterlánc végétől. Függvény szintaxis:

Jobbra( vonal , hossz )

Ahol vonal az eredeti karakterlánc, és hossz– ennyi karaktert kell kinyerni, az adott karakterlánc végétől számítva.

  • Jobb ("abvgdezziklmn", 4) a „clmn” karakterláncot adja vissza;
  • Jobb ("abvgdezziklmn", 1) az "n" karakterláncot adja vissza.
Második A megadott idő másodperceinek megfelelő egész számot ad vissza.

Példa: Második („22:45:15”) 15 értéket ad vissza.

Sqr Az argumentumként átadott numerikus érték négyzetgyökét adja vissza.
  • négyzet (4) 2-es értéket ad vissza;
  • négyzet (16) a 4-es értéket adja vissza.
Idő Az aktuális rendszeridőt adja vissza.
Ubound A megadott tömb dimenziójának felső indexét adja vissza.

Jegyzet: Mert többdimenziós tömbök egy opcionális argumentum megadhatja, hogy melyik dimenzió indexét kell visszaadni. Ha nincs megadva, az alapértelmezett érték 1.

Nézzük meg közelebbről, hogy a VBA hogyan hajtja végre az olyan számtani műveleteket, mint az összeadás, kivonás, szorzás, osztás és hatványozás, valamint olyan speciális műveleteket, mint az egész osztás és a modulo osztás. Az alábbi táblázat az aritmetikai VBA-kifejezések írásakor használt műveleti jeleket mutatja be.

A kifejezés egy érték vagy értékek csoportja, amely egyetlen értéket fejez ki. Egy kifejezés eredménye egy adott adattípus egyetlen értéke. A műveleti jelek (jelölések) a kifejezésekben meghatározott értékek kezelésére szolgálnak. Egy kifejezés eredményének változóhoz való hozzárendeléséhez használja a hozzárendelési operátort (=), amely a hozzárendelési operátortól jobbra lévő kifejezés által képviselt értéket tárolja a memóriahelyen, amelyre az operátor bal oldalán lévő változó hivatkozik.

Az alábbi műveletekben mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyet a VBA számmá tud konvertálni.

Kiegészítés

A (+) jel az összeadási művelet végrehajtására szolgál. A kifejezéseknek numerikus kifejezéseknek, karakterláncoknak kell lenniük, amelyeket a VBA számokká alakíthat, vagy dátumoknak, amelyek számtani célokra is használhatók.

Sub Slozhenie() "Példa egy "+" jelű aritmetikai kifejezésre Dim A1, A2, A3 As Integer "változók deklarálása A1=1 "1 érték hozzárendelése A1 változóhoz A2=2 "2 érték hozzárendelése A2 változóhoz A3=A1 +A2 "hozzárendelése az A3 változó hozzáadásának eredményéhez MsgBox A3 "az A3 kimenete az End Sub párbeszédablakban

Az összeadási kifejezés eredményének adattípusa általában megegyezik a kifejezés legpontosabb típusával, néhány kivételtől eltekintve. E szabály alóli összes kivételt egyértelműen bemutatjuk a példákban.

Kivonás

A (-) jel a kivonási művelet végrehajtására, valamint a negatív számok jelölésére szolgál (ha változó vagy kifejezés elé helyezzük, és ugyanazt jelenti, mint a -1-gyel való szorzás). A szám elé elhelyezett mínuszjelet, amely azt jelzi, hogy a szám negatív, unáris mínuszjelnek nevezzük.

A kivonási kifejezés eredményének adattípusának meghatározásához a VBA ugyanazokat a szabályokat követi, mint az összeadás operátort használó kifejezések esetében, de van még két további szabály.

1. szabály: Ha egy kivonási kifejezésben az egyik operandus Date típusú, akkor a kifejezés eredménye Date típusú lesz.

2. szabály: Ha egy kivonási kifejezésben mindkét operandus Date típusú, akkor a kifejezés eredménye Double típusú lesz.

Sub Vychitanie() "Példa egy "-" jelű aritmetikai kifejezésre Dim D1, D2 As Date "változók deklarálása D1=Most "érték hozzárendelése aktuális dátum változó D1 D2=Now-5 "dátumérték hozzárendelése a D2 változóhoz MsgBox TypeName(D2), vbOKOnly, "Now-5" MsgBox TypeName(D1-D2), vbOKOnly, "D1-D2" End Sub

Szorzás

A (*) jel szorzási művelet végrehajtására szolgál, ennek a műveletnek az eredménye az operandusok szorzata. A szorzási kifejezés eredményének adattípusának meghatározásához a VBA ugyanazokat a szabályokat használja, mint az összeadást használó kifejezéseknél. A szorzási kifejezésekben az összes dátumértéket tartalmazó Variant változót számértékké alakítja a rendszer.

"Példa "*" előjelű aritmetikai kifejezésekre 4*10 "szorozva 4-et 10-el MyVar*2 "szorozva a MyVar-t 2-vel MyVar*OtherVar-ral "szorozva a MyVar-t az OtherVar-al

Osztály

Az előjel (/) az osztási művelet végrehajtására szolgál, ezt a jelet nevezzük valós számok osztásjelének. Az osztási kifejezésekben az egyik operandust elosztjuk a másikkal, és az osztás eredménye a hányados.

"Példa aritmetikai kifejezésekre "/" jellel 10/4 "osztva 10-et 4-gyel MyVar/2 "osztva a SajátVarat 2-vel MyVar/OtherVar "osztva a MyVar-t az OtherVarral

Ha egy osztási kifejezésben bármely operandus Null, akkor a kifejezés eredménye is Null. A valós számosztásos kifejezésekben az adattípus általában Double, de van kivétel.

Egy osztási kifejezésben, ha mindkét operandus egész vagy egyes típusú, akkor az osztási kifejezés eredménye Single típusú. Ha az eredmény túlcsordítja a Single típusú tartományt, akkor a VBA Double típusúvá alakítja.

Egész osztás

A (\) jel egy egész osztási művelet végrehajtására szolgál, amelyben az osztás eredménye mindig egy egész szám, tört rész nélkül. A VBA nem kerekíti az egész osztás hányadosát, hanem egyszerűen egész számra csonkolja, elvetve a tört részt.

Az egész osztási kifejezés eredményének adattípusa egész vagy hosszú. A VBA a kifejezés eredményének megfelelő legkisebb adattípust használja.

"Példa a "\" 10\4 "jelű, 10-et 4-gyel osztó aritmetikai kifejezésekre; visszaadja a 2 MyVar\2 értéket "osztva a MyVar 2-vel MyVar\OtherVar" a MyVar elosztva az OtherVar értékkel

Modulo divízió

A (Mod) jel a modulo osztás végrehajtására szolgál. A modulo felosztásánál a kifejezés csak az osztás maradékát adja vissza egész számként.

"Példa előjeles aritmetikai kifejezésekre "Mod" 8 Mod 2 "értéke 0; 5.1 Mod 3 "2-t ad vissza; 6 Mod MyVar "ha a MyVar 3-at tartalmaz, 0-t ad vissza

Ennek a matematikai műveletnek egy könnyen érthető magyarázata található az egyik programozói fórumon. Idézek onnan: „képzeld el, hogy van egy teli 50L-es kanna és egy kannával kezded kikanalazni a vizet (egy teli kannát tudod csak kikanalazni, 2 liter marad). Ez az 50 3-mal való osztásának maradéka. Más szavakkal, az 50 Mod 3 2-t ad vissza.

A modulo osztás kifejezés eredményének adattípusa egész vagy hosszú. A VBA a legkisebb típust használja, amely alkalmas a kifejezés eredményére.

Hatványozás

A jel (^) egy szám vagy kifejezés hatványozási műveletének végrehajtására szolgál. A kitevő megmutatja, hogy egy számot vagy kifejezést hányszor kell megszorozni önmagával.

"Példa a "^" 3 ^ 3 jelű aritmetikai kifejezésre "ugyanaz, mint 3*3*3, 27 értéket ad vissza


Hozzárendelési operátor (=)

A hozzárendelési operátor egy kifejezés eredményének változóhoz való hozzárendelésére szolgál.

A hozzárendelés operátorának két szintaktikai formája van:

varname = kifejezés

varname- bármely VBA változó

kifejezés- bármilyen VBA kifejezés

Amikor végrehajt egy hozzárendelési utasítást, a VBA először kiértékeli a hozzárendelési utasítástól jobbra lévő kifejezést, majd eltárolja a kifejezés eredményét abban a változóban, amelynek neve az egyenlőségjeltől balra található.

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

A kezdő felhasználók néha nem értik az utolsó hozzárendelési művelet jelentését, amikor a művelet bal és jobb része is ugyanazt a változót tartalmazza. Ebben az esetben a hozzárendelési operátor jobb oldalán lévő kifejezés kiértékelésének eredménye először egy közbenső memóriahelyre kerül, majd ezt az eredményt a bal oldalon lévő változóhoz rendeljük.

Például, ha az A = A +5 hozzárendelési operátorban az A változó a hozzárendelési művelet előtt 7 értéket tartalmazott, akkor a művelet után a 12 (7+5) értéket fogja tartalmazni.

Amire érdemes emlékezni:

· Bármilyen numerikus változót (vagy kifejezést) hozzárendelhet bármely más numerikus változóhoz (vagy Variant típushoz);

· Ha egy beírt változóhoz kevésbé pontos numerikus kifejezést rendel (például Double - Long), a VBA kerekíti a kifejezés értékét, hogy megfeleljen az új értéket fogadó változó pontosságának;

· Ha egy számot tartalmazó Variant típusú változóhoz egy String típusú változó van hozzárendelve, a VBA automatikusan karakterláncsá alakítja a számot.

Operátor hozzáadása (+)

Az összeadás operátor egyszerű összeadást hajt végre. Mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyeket a VBA számmá tud konvertálni. Az összeadás operátor a dátum adatokkal kapcsolatos aritmetikai műveletek végrehajtására is használható.

Az összeadási kifejezés eredményének adattípusa általában megegyezik a kifejezés legpontosabb típusával. De vannak kivételek:

· A Single és Long típusok hozzáadásának eredménye Dupla lesz;

· A Dátum típus bármely más adattípushoz való hozzáadásának eredménye mindig Dátum lesz;

· Ha az eredmény meghaladja az Integer típusú tartományt, akkor a VBA Long-ra konvertálja;

· Ha az eredmény meghaladja a Long, Single, Date típusokat, akkor a VBA Double-re konvertálja;

· Ha egy összeadási kifejezés bármely operandusa Null, akkor az összeadási kifejezés eredménye is Null lesz.

Emlékezzünk vissza a numerikus adattípusok pontosságának növelésének sorrendjére: Byte, Integer, Long, Single, Double, Currency.

Azt kell mondani, hogy világosan meg kell értenie, hogy a VBA hogyan konvertálja az adattípusokat az aritmetikai műveletek eredményeként. Ez segít a jövőben elkerülni sok „felesleges” hibát a kódírás során.

Kivonás operátor (-)

A kivonás operátor két dolgot csinál: egy szám kivonására szolgál a másikból; az unáris mínusz rövidítése (ez egy mínuszjel, amely egy szám elé kerül, jelezve, hogy az negatív szám). Egy unáris mínusz elhelyezése egy változó vagy kifejezés elé ugyanaz, mintha ezt a számot megszoroznánk -1-gyel.

A kivonási kifejezésben mindkét operandusnak numerikus változónak (kifejezésnek) vagy karakterlánc-kifejezésnek kell lennie, amelyeket a VBA számmá tud konvertálni. Használhatja a kivonás operátort a dátumok kezelésére.

A VBA ugyanazokat a szabályokat használja a kivonási kifejezés eredményének adattípusának meghatározására, mint az összeadás operátort használó kifejezéseknél. De van egy kiegészítés:

· Ha egy kifejezésben mindkét operandus Date típusú, akkor a kifejezés eredménye Double típusú lesz.

Szorzási operátor (*)

A szorzási operátor két számot szoroz - a szorzási kifejezés eredménye a két operandus szorzata. A szorzókifejezésben szereplő mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyeket a VBA számmá tud konvertálni.

A VBA ugyanazokat a szabályokat követi a szorzási kifejezés eredményének adattípusának meghatározására, mint az összeadás operátort használó kifejezésekre. A szorzási kifejezésekben az összes dátumértéket tartalmazó Variant változót számértékké alakítja a rendszer.

Osztálykezelő (/)

A lebegőpontos osztás operátora szokásos aritmetikai osztást hajt végre operandusai között.

Az osztási kifejezésekben az első operandust elosztjuk a második operandusszal – az osztás eredménye a hányados.

A lebegőpontos osztási kifejezésben mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyet a VBA számmá tud konvertálni.

Ha egy osztáskifejezésben legalább egy operandus Null típusú, akkor az osztás eredménye is Null lesz.

A lebegőpontos osztási művelet adattípusa Dupla, kivéve:

Az osztáskifejezés mindkét operandusa egész vagy egyszeres típusú – az eredmény Single;

Ha a kifejezés eredménye nem túllépi az Single típusú értéktartományt.

Egész osztás (\)

Az egész számok osztása abban különbözik a lebegőpontos osztástól, hogy az eredménye mindig egy egész szám, törtrész nélkül.

Az egész osztásos kifejezésben mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyeket a VBA számmá tud konvertálni.

Az egész osztási művelet végrehajtása előtt a VBA minden operandust egy egész számra vagy hosszú típusúra kerekít (ugyanaz a típus, mint az egész osztás eredménye).

A VBA elveti (de nem kerekít!) egy egész osztási kifejezés eredményének tört maradékát. Például a 22\5 és 24\5 kifejezések eredménye ugyanaz = 4.

Ha egy egész osztás kifejezésben legalább egy operandus Null típusú, akkor az osztás eredménye is Null lesz.

Modulo részleg (Mod)

A modulo osztás kiegészíti az egész osztást. Modulo osztásnál a kifejezés csak az osztási művelet maradékát adja vissza egész számként.

22 5. mód = 2

24 5. mód = 4

25 5. mód = 0

A modulo osztás többi tulajdonsága megegyezik az egész osztáséval.

Hatványozás (^)

A hatványozás operátora egy számot hatványra emel.

5 ^ 3 =125

A hatványozási kifejezés mindkét operátorának numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyeket a VBA számokká alakíthat.

A hatványozási operátortól balra lévő operandus csak akkor lehet negatív szám, ha a jobb oldali operandus egész szám.

A kifejezés eredménye Double típusú.

Ha egy kifejezésben legalább egy operandus Null típusú, akkor a hatványozás eredménye is Null lesz.

Foglaljuk össze a fentieket:

VBA LOGIKAI KEZELŐK

A logikai operátor operandusa bármely érvényes kifejezés lehet, amely logikai eredménnyel rendelkezik, valamint egy logikai értékké konvertálható szám.

Egy logikai művelet eredménye egy logikai típusú érték (vagy Null, ha legalább az egyik operandus nulla).

Logikai operátorÉS

SZINTAXIS:

Operandus_1 ÉS Operandus_2

Az ÉS operátor végrehajtja logikai kötőszó.

A művelet eredménye csak akkor igaz, ha mindkét operandus igaz, egyébként pedig hamis.

Igazság táblázat

Az ÉS operátor több operandushoz is használható:

(5<7) AND (4>3) ÉS (5=6) az eredmény hamis lesz

Az operandusok számától függetlenül a logikai ÉS művelet eredménye csak akkor lesz igaz, ha a kifejezés összes operandusa igaz értékre van kiértékelve. Minden más esetben az eredmény hamis lesz. Vegye figyelembe, hogy az operandusok zárójelben vannak. A VBA először kiértékeli az egyes operandusok értékét a zárójelben, majd a teljes kifejezést.

Logikai operátor VAGY

SZINTAXIS:

Operandus_1 VAGY Operandus_2

A VAGY operátor igen logikai diszjunkció.

A művelet eredménye igaz, ha legalább az egyik operandus igaz, egyébként pedig hamis.

Igazság táblázat

Az OR operátor több operandushoz is használható:

(5<7) OR (4>3) VAGY (5=6) az eredmény igaz lesz

Az operandusok számától függetlenül a logikai VAGY művelet eredménye mindig igaz lesz, ha a kifejezés legalább egyik operandusa igaz. Ellenkező esetben az eredmény hamis lesz.

Az ÉS és VAGY operátorok kombinálhatók:

((5<7) AND (4>3)) VAGY (5=6) az eredmény igaz lesz

Logikai operátor NEM

SZINTAXIS:

NEM operandus

A NOT operátor igen logikai tagadás.

A NOT operátor csak egy operandust használ.

Igazság táblázat

Az ÉS VAGY NEM operátorok kombinálhatók:

((5<7) AND (4>3)) VAGY NEM (5=6) az eredmény igaz lesz

XOR logikai operátor

SZINTAXIS:

Operandus_1 XOR Operandus_2

Az XOR operátor igen logikai kivétel.

Ennek a műveletnek az eredménye True, ha az operandusok eltérő értékekkel rendelkeznek, egyébként pedig False.

Igazság táblázat

((5<7) AND (4>3)) VAGY NEM (5=6) XOR (5=5) az eredmény hamis lesz

Logikai operátor EQV

SZINTAXIS:

Operandus_1 EQV Operandus_2

Az EQV operátor az operátor logikai egyenértékűség.

A művelet eredménye igaz, ha az operandusok értéke megegyezik, ellenkező esetben False.

Igazság táblázat

((5<7) AND (4>3)) VAGY NEM (5=6) EQV (5=5) az eredmény igaz lesz.

Összehasonlító operátorok

Általában az összehasonlító műveleteket hurkolt operátorokban használják, hogy döntést hozzanak a műveletek további menetéről.

Minden összehasonlítási művelet eredménye egy logikai érték: igaz, hamis.

Ha egy összehasonlítási kifejezésben mindkét operandus azonos adattípussal rendelkezik, a VBA egyszerű összehasonlítást hajt végre az adott típushoz.

Ha egy összehasonlítási kifejezésben mindkét operandusnak van meghatározott típusa, és a típusok nem kompatibilisek, a VBA típushibát ad ki.

Ha egy összehasonlítási kifejezésben az egyik vagy mindkét operandus Variant típusú változó, a VBA megpróbálja átalakítani a Variant típust valamilyen kompatibilis típusra.

Hozzárendelési operátor (=)

A hozzárendelési operátor egy kifejezés eredményének változóhoz való hozzárendelésére szolgál.

A hozzárendelés operátorának két szintaktikai formája van:

1 Legyen varname = kifejezés
2 varname = kifejezés


varname- bármely VBA változó

kifejezés- bármilyen VBA kifejezés


A hozzárendelési operátor első változatát a korai Basic programozási nyelvekben használták. A második lehetőség a VBA modern verziójában használatos.


Amikor végrehajt egy hozzárendelési utasítást, a VBA először kiértékeli a hozzárendelési utasítástól jobbra lévő kifejezést, majd eltárolja a kifejezés eredményét abban a változóban, amelynek neve az egyenlőségjeltől balra található.


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


A kezdő felhasználók néha nem értik az utolsó hozzárendelési művelet jelentését, amikor a művelet bal és jobb része is ugyanazt a változót tartalmazza. Ebben az esetben a hozzárendelési operátor jobb oldalán lévő kifejezés kiértékelésének eredménye először egy közbenső memóriahelyre kerül, majd ezt az eredményt a bal oldalon lévő változóhoz rendeljük.

Például, ha az A = A +5 hozzárendelési operátorban az A változó a hozzárendelési művelet előtt 7 értéket tartalmazott, akkor a művelet után a 12 (7+5) értéket fogja tartalmazni.

Amire érdemes emlékezni:

  • Bármilyen numerikus változót (vagy kifejezést) hozzárendelhet bármely másik numerikus változóhoz (vagy Változathoz);
  • Ha egy beírt változóhoz kevésbé pontos numerikus kifejezést rendel (például Double - Long), a VBA kerekíti a kifejezés értékét, hogy megfeleljen az új értéket fogadó változó pontosságának;
  • Ha egy karakterlánc-változó hozzá van rendelve egy számot tartalmazó Variant változóhoz, a VBA automatikusan karakterláncsá alakítja a számot.

Operátor hozzáadása (+)

Az összeadás operátor egyszerű összeadást hajt végre. Mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyeket a VBA számmá tud konvertálni. Az összeadás operátor a dátum adatokkal kapcsolatos aritmetikai műveletek végrehajtására is használható.


Az összeadási kifejezés eredményének adattípusa általában megegyezik a kifejezés legpontosabb típusával. De vannak kivételek:

  • A Single és Long hozzáadásának eredménye a Double;
  • Ha Dátum típust ad hozzá bármely más adattípushoz, az mindig Dátumot eredményez;
  • Ha az eredmény meghaladja az Integer típusú tartományt, akkor a VBA Long-ra konvertálja;
  • Ha az eredmény meghaladja a Long, Single, Date típusokat, akkor a VBA Double-re konvertálja;
  • Ha egy összeadási kifejezés bármely operandusa Null, akkor az összeadási kifejezés eredménye is Null lesz.

Emlékezzünk vissza a numerikus adattípusok pontosságának növelésének sorrendjére: Byte, Integer, Long, Single, Double, Currency.

Azt kell mondani, hogy világosan meg kell értenie, hogy a VBA hogyan konvertálja az adattípusokat az aritmetikai műveletek eredményeként. Ez segít a jövőben elkerülni sok „felesleges” hibát a kódírás során.

Kivonás operátor (-)

A kivonás operátor két dolgot csinál: egy szám kivonására szolgál a másikból; az unáris mínusz rövidítése (ez egy mínuszjel, amely egy szám elé kerül, jelezve, hogy az negatív szám). Egy unáris mínusz elhelyezése egy változó vagy kifejezés elé ugyanaz, mintha ezt a számot megszoroznánk -1-gyel.


A kivonási kifejezésben mindkét operandusnak numerikus változónak (kifejezésnek) vagy karakterlánc-kifejezésnek kell lennie, amelyeket a VBA számmá tud konvertálni. Használhatja a kivonás operátort a dátumok kezelésére.

A VBA ugyanazokat a szabályokat használja a kivonási kifejezés eredményének adattípusának meghatározására, mint az összeadás operátort használó kifejezéseknél. De van egy kiegészítés:
Ha egy kifejezésben mindkét operandus Date típusú, akkor a kifejezés eredménye Double típusú lesz.

Szorzási operátor (*)

A szorzási operátor két számot szoroz - a szorzási kifejezés eredménye a két operandus szorzata. A szorzókifejezésben szereplő mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyeket a VBA számmá tud konvertálni.

A VBA ugyanazokat a szabályokat követi a szorzási kifejezés eredményének adattípusának meghatározására, mint az összeadás operátort használó kifejezésekre. A szorzási kifejezésekben az összes dátumértéket tartalmazó Variant változót számértékké alakítja a rendszer.

Osztálykezelő (/)

A lebegőpontos osztás operátora szokásos aritmetikai osztást hajt végre operandusai között.

Az osztási kifejezésekben az első operandust elosztjuk a második operandusszal – az osztás eredménye a hányados.

A lebegőpontos osztási kifejezésben mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyet a VBA számmá tud konvertálni.

Ha egy osztáskifejezésben legalább egy operandus Null típusú, akkor az osztás eredménye is Null lesz.

A lebegőpontos osztási művelet adattípusa Dupla, kivéve:

  • Az osztáskifejezés mindkét operandusa egész vagy egyszeres típusú – az eredmény Single;
  • Ha a kifejezés eredménye nem túllépi az Single típusú értéktartományt.

Egész osztás (\)

Az egész számok osztása abban különbözik a lebegőpontos osztástól, hogy az eredménye mindig egy egész szám, törtrész nélkül.

Az egész osztásos kifejezésben mindkét operandusnak numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyeket a VBA számmá tud konvertálni.

Az egész osztási művelet végrehajtása előtt a VBA minden operandust egy egész számra vagy hosszú típusúra kerekít (ugyanaz a típus, mint az egész osztás eredménye).

A VBA elveti (de nem kerekít!) egy egész osztási kifejezés eredményének tört maradékát. Például a 22\5 és 24\5 kifejezések eredménye ugyanaz = 4.

Ha egy egész osztás kifejezésben legalább egy operandus Null típusú, akkor az osztás eredménye is Null lesz.

Modulo részleg (Mod)

A modulo osztás kiegészíti az egész osztást. Modulo osztásnál a kifejezés csak az osztási művelet maradékát adja vissza egész számként.
22 5. mód = 2
24 5. mód = 4
25 5. mód = 0

A modulo osztás többi tulajdonsága megegyezik az egész osztáséval.

Hatványozás (^)

A hatványozás operátora egy számot hatványra emel.



A hatványozási kifejezés mindkét operátorának numerikus kifejezésnek vagy karakterláncnak kell lennie, amelyeket a VBA számokká alakíthat.

A hatványozási operátortól balra lévő operandus csak akkor lehet negatív szám, ha a jobb oldali operandus egész szám.

A kifejezés eredménye Double típusú.

Ha egy kifejezésben legalább egy operandus Null típusú, akkor a hatványozás eredménye is Null lesz.


Foglaljuk össze a fentieket.

Utasítás