Operátori VBA excel. Logické operátory VBA
Jazyk VBA bol navrhnutý tak, aby sa dal pomerne ľahko a rýchlo naučiť a potom používať na dennej báze. Jazyk VBA je užitočný pre profesionálnych programátorov aj bežných používateľov na automatizáciu každodennej rutinnej práce. Nech už je váš cieľ akýkoľvek: zjednodušiť si každodennú prácu alebo zvýšiť produktivitu, jazyk VBA je určite najlepším jazykom na tieto účely, pretože je navrhnutý špeciálne na prácu s aplikáciami balíka Microsoft Office.
Znalosť operátorov je nevyhnutným základom pre učenie sa akejkoľvek témy vo VBA, t.j. Než sa začnete učiť jazyk, mali by ste venovať dostatok času operátorom a funkciám.
Operátori VBA
- AppActivate title, počkajte- Aktivuje otvorenú aplikáciu podľa názvu alebo identifikátora úlohy špecifikovaného argumentom title
- Pípni- zvukový signál
- Volajte, argumentátor- Volanie procedúry s názvom name. (Pretože kľúčové slovo Call je voliteľné a procedúru môžete volať iba pomocou jej názvu, tento príkaz sa pri programovaní vo VBA používa zriedkavo)
- Cesta ChDir- Nahradí aktuálny priečinok priečinkom určeným argumentom cesty
- Zatvorte zoznam čísel súborov- Zmení aktuálnu jednotku na jednotku určenú argumentom jednotky
- Const CONSTNAME- Deklaruje premennú s názvom CONSTNAME ako konštantu
- Dátum = dátum- Zmení systémový dátum na dátum určený argumentom dátumu
- Deklarovať meno- Deklaruje procedúru z dynamicky prepojovanej knižnice (DLL)
- Rozsah písmen DefBool– Operátor na úrovni modulu, ktorý nastavuje booleovský údaj ako predvolený typ údajov pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange (napríklad DefBool A-F)
- Rozsah písmen DefByte- Nastaví Byte ako predvolený dátový typ pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- Rozsah písmen DefCur- Nastaví Menu ako predvolený typ údajov pre všetky premenné, ktoré začínajú písmenami určenými rozsahom písmen
- Rozsah písmen DefDate- Nastaví dátum ako predvolený typ údajov pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- Rozsah písmen DefDbl- Nastaví Double ako predvolený typ údajov pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- Definitívny rozsah písmen- Nastaví Integer ako predvolený dátový typ pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- DefLng rozsah písmen- Nastaví Long ako predvolený typ údajov pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- Rozsah písmen DefObj- Nastaví Object ako predvolený dátový typ pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- Rozsah písmen DefSng- Nastaví Single ako predvolený typ údajov pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- Rozsah písmen DefStr- Nastaví String ako predvolený dátový typ pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- Rozsah písmen DefVar- Nastaví typ Variant ako predvolený typ údajov pre všetky premenné, ktoré začínajú písmenami určenými argumentom letterrange
- DeleteStting názov aplikácie, sekcie, kľúč- Odstráni sekciu alebo kľúč z registra Windows
- Dim varname- Deklarujte premennú s názvom varname
- Urobiť: Slučka- Prechádza cez viacero príkazov, kým logická podmienka nie je True
- Ukončiť kľúčové slovo- Ukončí procedúru, funkciu alebo riadiacu štruktúru
- Názov Enum- Operátor na úrovni modulu, ktorý deklaruje premennú vymenovaného typu
- Vymazať zoznam polí- Vymaže pamäť z dynamicky prideleného poľa alebo znovu inicializuje pole s pevnou veľkosťou
- Chyba číslo chyby- Simuluje chybu nastavením objektu Err na číslo chyby
- Event procedurename (arglist)- Operátor môže byť prítomný iba v module triedy. Deklaruje udalosť definovanú používateľom
- Ukončiť kľúčové slovo- Výstup z procedúry, funkcie alebo riadiacej štruktúry
- Zdroj FileCopy, cieľ- Skopíruje zdrojový súbor do cieľového priečinka (môžete zmeniť názov zdrojového súboru)
- Pre každý:Ďalší- Prejdite cez každého člena zbierky
- Pre: Ďalej- Opakujte niekoľko príkazov, kým počítadlo slučky nedosiahne špecifikovanú hodnotu
- Funkcia- Deklaruje procedúru vlastnej funkcie
- Získajte #filenumber, varname- Číta do premennej zo súboru I/O otvoreného príkazom Open
- GoSub: Návrat- Vstúpi a opustí podprogram popísaný v postupe. (Používanie tohto vyhlásenia sa neodporúča, pretože vytvorenie samostatného postupu uľahčí pochopenie kódu)
- Linka Prejsť na- Prenesie kontrolu na riadok kódu, na ktorý ukazuje štítok riadku
- If:Then:Else- Spustí jeden z dvoch kusov kódu na základe výsledku logického testu
- Imlements InterfaceName, Class- Definuje názov rozhrania alebo triedy, ktorá bude implementovaná v module triedy
- Zadajte #číslo súboru, varlist- Číta zo súboru I/O do premenných
- Zabiť názov cesty- Odstráni cestu k súboru z disku
- Nech varname = výraz- Nastaví premennú varname na výraz. Kľúčové slovo Let je voliteľné a takmer sa nepoužíva
- Riadkový vstup #číslo súboru, var- Prečíta jeden riadok z I/O súboru a uloží ho do reťazcovej premennej
- Naložiť- Načíta formulár do pamäte, ale nezobrazuje ho na obrazovke
- Zamknúť #číslo súboru, rozsah záznamu- Riadi prístup k I/O súboru
- LSet stringvar = string- Umiestni reťazec, počnúc znakom úplne vľavo, do premennej typu String. V tomto prípade sa veľkosť premennej nemení
- LSet var1 = var2- Skopíruje premennú jedného typu definovaného používateľom do premennej iného, ale kompatibilného typu definovaného používateľom
- Stred- Nahradí určený počet znakov v reťazcovej premennej znakmi z iného reťazca
- MidB- Nahrádza znaky v reťazcovej premennej bajt po byte znakmi z iného reťazca
- Cesta MkDir- Vytvorí priečinok s názvom cesta
- Pomenujte starú cestu ako novú- Zmení názov súboru alebo priečinka
- Pri chybe- Nastavuje spôsob spracovania chýb
- On:GoSub, On:GoTo- Prenesie kontrolu na daný reťazec na základe výsledku výrazu
- Otvoriť názov cesty, :- Otvorí súbor pre I/O
- Možnosť Základ 0|1- Nastaví (na úrovni modulu) pre polia predvolenú dolnú hranicu (číslo prvého prvku)
- Možnosť Porovnať text|Binárne- Definuje (na úrovni modulu) predvolený režim porovnávania reťazcov
- Možnosť Explicitná- Núti programátora explicitne deklarovať premenné. Zadajte tento príkaz na úrovni modulu
- Možnosť Súkromné- Označuje, že modul je zatvorený a nedá sa k nemu dostať z procedúr umiestnených v iných moduloch. Zadajte operátora na úrovni modulu
- Vytlačiť #číslo súboru- Zapisuje do I/O súboru
- Súkromná premenná- Deklaruje, že premenná varname bude súkromná a môže byť použitá iba v module, v ktorom je deklarovaná. Zadajte operátora na úrovni modulu
- Property Get- Deklaruje majetkovú procedúru, ktorá bude akceptovať hodnoty tejto vlastnosti
- Prenájom nehnuteľnosti- Priraďuje hodnotu vlastnosti v procedúre vlastníctva
- Sada vlastností- Nastaví odkaz na objekt v procedúre vlastnosti
- Verejná premenná- Poskytuje prístup k premennej varname pre všetky procedúry obsiahnuté v module
- Zadajte #filenumber,varname- Zapisuje dáta z premennej varname do I/O súboru
- Názov udalosti RaiseEvent, argumenty- Vyvolá udalosť s názvom eventname
- Randomizujte číslo- Inicializuje generátor náhodných čísel. Preskočte argument číslo, aby ste ho zakaždým inicializovali iným zdrojom
- ReDim varname- Znovu pridelí pamäť pre dynamické pole
- Rem komentár- Povie VBA, že text za vyhlásením je komentár. Namiesto tohto operátora sa často používa symbol apostrofu
- Resetovať- Zatvorí všetky I/O súbory, ktoré boli predtým otvorené príkazom Open
- Pokračovať- Po výskyte chyby obnoví vykonávanie programu od riadku, kde sa vyskytla chyba
- Cesta RmDir- Vymaže priečinok
- RSet stringvar = string- Zapíše reťazec do premennej reťazca, pričom znaky zarovná doprava
- Názov aplikácie SaveSetting,:- Vytvára alebo ukladá nastavenia v registri Windows
- Hľadaj #číslo súboru, pozíciu- Nastaví aktuálnu pozíciu v I/O súbore
- Vyberte položku Prípad- Vykoná skupinu príkazov na základe hodnoty výrazu
- Reťazec SendKeys, počkajte- Prenáša stlačenia kláves špecifikované reťazcom do aktívnej aplikácie, ako keby boli zadané z klávesnice
- Nastavte objectvar = objekt- Priradí objekt objektu k objektovej premennej s názvom objectvar
- SetAttr cesta, attr- Nastaví atribúty prístupu určené argumentom attr (napríklad vbReadOnly) pre súbor určený argumentom názvu cesty
- Statická premenná- Deklaruje (na úrovni modulu), že premenná varname si zachová svoju hodnotu, kým sa vykoná kód modulu
- Stop- Prepne VBA do režimu pozastavenia
- Sub- Vyhlasuje postup
- Čas = čas- Nastaví systémový čas na argument času
- Zadajte názov premennej- Deklaruje vlastný typ údajov. (Používa sa len na úrovni modulu)
- Vyložiť- Odstráni formulár z pamäte
- Odomknite #číslo súboru, rozsah záznamu- Odstráni prístupové atribúty pre I/O súbor
- Kým: Wend- Prechádza cez skupinu príkazov, kým logická podmienka nie je pravdivá
- Width #filenumber, width- Nastaví šírku čiary pre I/O súbor
- With: End With- Vykoná skupinu príkazov pre daný objekt
- Napíšte #číslo súboru- Zapisuje dáta do I/O súboru
znamenie | názov | Popis |
---|---|---|
= | Rovná sa | Vráti hodnotu True, ak sú ľavý a pravý operand rovnaké. Upozorňujeme, že ide o preťaženie operátora priradenia. |
<> | Nerovná sa | Ak ľavý a pravý operand nie sú rovnaké, vráti hodnotu True. |
> | Lepšie ako | Vráti hodnotu True, ak je ľavý operand väčší ako pravý operand. |
< | Menej ako | Vráti hodnotu True, ak je ľavý operand menší ako pravý operand. |
>= | Viac alebo rovnaké | Vráti hodnotu True, ak je ľavý operand väčší alebo rovný pravému operandu. |
<= | Menej alebo rovnaké | Vráti hodnotu True, ak je ľavý operand menší alebo rovný pravému operandu. |
Je | Referenčný kapitál | Vráti hodnotu True, ak je ľavý odkaz na objekt rovnaký ako odkaz na pravý objekt. Dá sa použiť aj s Nothing (odkaz na nulový objekt) na oboch stranách. Poznámka. Operátor Is sa pred vykonaním porovnania pokúsi prinútiť oba operandy k objektu. Ak je niektorá strana primitívneho typu alebo Variant, ktorý neobsahuje objekt (buď neobjektový podtyp alebo vtEmpty) porovnanie, bude mať za následok runtime chybu 424 - "Vyžaduje sa objekt". Ak niektorý operand patrí inému rozhranie rovnaký objekt, porovnanie vráti True . Ak potrebujete skontrolovať spravodlivosť oboch inštancií, potom A rozhranie, ObjPtr(vľavo) = ObjPtr(vpravo) použite ObjPtr(vľavo) = ObjPtr(vpravo) . |
Poznámky
Syntax VBA umožňuje „reťazenie“ porovnávacích operátorov, ale vo všeobecnosti by sa týmto konštruktom malo vyhnúť. Porovnanie sa vždy vykonáva zľava doprava iba na 2 operandoch naraz a výsledkom každého porovnania je logická hodnota. Napríklad výraz...
A = 2: b = 1: c = 0 expr = a > b > c
V niektorých kontextoch sa dá čítať ako testovanie, či b je medzi a a c. Vo VBA sa to hodnotí takto:
A = 2: b = 1: c = 0 výraz = a > b > c výraz = (2 > 1) > 0 výraz = Pravda > 0 výraz = -1 > 0 "CInt(pravda) = -1 výraz = nepravda
Akýkoľvek operátor porovnávania iný ako Is použitý s objektom ako operandom bude vykonávať na návratovej hodnote predvoleného člena objektu Object. Ak objekt nemá predvolený člen, porovnanie bude mať za následok chybu behu 438 - "Objekt nepodporuje svoju vlastnosť alebo metódu."
Ak objekt nie je inicializovaný, porovnanie bude mať za následok runtime chybu 91 - "Object variable or With block variable locked."
Ak sa literál Nič použije s iným operátorom porovnávania ako Is, bude to mať za následok chybu kompilácie – „Nezákonné použitie objektu“.
Ak je predvolený objekt Object iný Objekt, VBA bude neustále volať predvolený prvok každej nasledujúcej návratovej hodnoty, kým sa nevráti primitívny typ alebo kým sa nevyvolá chyba. Predpokladajme napríklad, že SomeClass má predvolený člen Value , čo je inštancia ChildClass s členom ChildValue ChildValue . Porovnanie...
Sada x = New SomeClass Debug.Print x > 42
Bude hodnotené ako:
Sada x = New SomeClass Debug.Print x.Value.ChildValue > 42
Ak je jeden z operandov číselný a ďalší operand je String alebo Variant podtypu String, vykoná sa číselné porovnanie. V tomto prípade, ak sa reťazec nedá namapovať na číslo, výsledkom porovnania bude chyba behu 13 – „Nesúlad typu“.
Ak oboje operandy sú String alebo Variant podtypu String, porovnanie reťazcov sa vykoná na základe porovnávacieho parametra parametrov kódového modulu. Tieto porovnania sa robia na základe jednotlivých znakov. poznač si to symbolické znázornenie Reťazec obsahujúci číslo nie je to isté ako párovanie číselných hodnôt:
Public Sub Example() Dim left As Variant Dim right As Variant left = "42" right = "5" Debug.Print left > right "Prints False Debug.Print Val(left) > Val(right) "Prints True End Sub
Z tohto dôvodu sa pred vykonaním porovnávania numerickej nerovnosti uistite, že premenné typu String alebo Variant sa odovzdávajú číslam.
Ak je jedným z operandov dátum, potom sa vykoná číselné porovnanie na podkladovom dvojitom, ak je druhý operand číselný alebo ho možno previesť na číselný typ.
Ak je druhým operandom Reťazec alebo Variant podtypu Reťazca, ktorý možno pretypovať na Dátum pomocou aktuálneho miestneho nastavenia, Reťazec sa pretypuje na Dátum . Ak sa nedá použiť na Dátum v aktuálnom jazyku, výsledkom porovnania bude chyba spustenia 13 – „Nesúlad typu“.
Pri porovnávaní hodnôt Double alebo Single a Booleans by ste mali byť opatrní. Na rozdiel od iných číselných typov nemožno nenulové hodnoty považovať za pravdivé kvôli správaniu VBA pri podpore typu porovnávacích údajov pomocou čísla s pohyblivou rádovou čiarkou v Double:
Public Sub Example() Dim Test As Double Test = 42 Debug.Print CBool(Test) "Prints True" je povýšené na Double - Test nie je prenesený na Boolean Debug.Print Test = True "Prints False "S explicitným pretypovaním: Debug.Print CBool(Test) = True "Vytlačí True Debug.Print CDbl(-1) = CDbl(True) "Vytlačí True End Sub
Všetky aritmetické operátory, porovnávacie operátory, logické operátory a operátory zreťazenia sú tu podrobne popísané. Snažil som sa zhromaždiť všetko, čo potrebujete vedieť o týchto operátoroch. Každé vyhlásenie je vybavené príkladom. Popisy som preložil zo štandardného Help"a VB5.
Aritmetické operátory
operátor ^ (umocnenie)
Tento operátor sa používa na zvýšenie čísla na mocninu.
Syntax:
výsledok = číslo^stupňa
Možnosti:
výsledok
číslo
stupňa- požadovaný; akýkoľvek číselný výraz
Poznámky:
číslo môže byť negatívny iba vtedy stupňa- celé číslo. Ak sa v jednom výraze použije niekoľko operátorov ^, výpočet prebieha zľava doprava. Typ výsledku je zvyčajne Double. Ak však resp stupňa, alebo číslo- Tak teda nulový výraz výsledok tiež Null.
Príklad:
Dim MyValue
MojaHodnota = 2^2" Vráti 4.
MojaHodnota = 2^3^3" Vráti sa
512 (2^3=8, 8^3=512)
MojaHodnota = (-5)^3" Vráti sa
-125.
Poraďte:
Ak potrebujete zvýšiť číslo na konštantnú mocninu, potom je lepšie použiť niekoľko operátorov - násobenia, ako jeden - zvýšenie na mocninu, posúďte sami, prešiel cyklus miliónov prechodov s výpočtom výrazu:
test1 = 2^8" 893 ms
test1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 "130 ms!
operátor * (násobenie)
Používa sa na násobenie dvoch čísel.
Syntax:
výsledok = číslo 1* číslo2
Možnosti:
výsledok- požadovaný; ľubovoľná číselná premenná
číslo 1- Nevyhnutne; akýkoľvek číselný výraz
číslo2- Nevyhnutne; akýkoľvek číselný výraz
Poznámky:
Dátový typ výsledku je zvyčajne rovnaký ako najpresnejší typ dvoch čísel. Poradie presnosti od najvyššej po najnižšiu je bajt, celé číslo, dlhé, jednoduché, meny, dvojité, desatinné. Pravda, existujú výnimky:
- Ak sa vynásobí Single a Long, výsledkom je Double
- Ak typ údajov výsledok- Long Single alebo Date, ktorý neobsahuje výsledok samotného výrazu, potom sa výsledok prevedie na Variant obsahujúci Double.
Ak číslo 1 alebo číslo2
Poradie presnosti pri násobení sa líši od poradia sčítania a odčítania.
Príklad:
Dim MyValue
MojaHodnota = 2 * 2 " Vráti 4.
MojaHodnota = 459,35 * MojaHodnota " Návratnosť 495,35 * 4
operátor / (oddelenie)
Používa sa na rozdelenie dvoch čísel a získanie výsledku s pohyblivou rádovou čiarkou.
Syntax:
výsledok = číslo 1 / číslo2
Možnosti:
výsledok- požadovaný; ľubovoľná číselná premenná
číslo 1- Nevyhnutne; akýkoľvek číselný výraz
číslo2- Nevyhnutne; akýkoľvek číselný výraz
Poznámky:
Výsledok zvyčajne typu Double. Pravda, existujú výnimky:
- Ak sú oba výrazy typu Byte, Integer, Single, výsledkom je Single. Ak sa však rozmery výrazu nezmestia do rozsahu Single, nastane chyba.
- Ak sú oba výrazy typu Variant obsahujúce Byte, Integer alebo Single, výsledkom je Single Variant. Ak sa však rozmery výrazu nezmestia do Single Variant, tak Double Variant.
- Ak je jedno z čísel typu Desatinné, výsledok je Desatinné.
Ak číslo 1 alebo číslo2- Null, potom sa to interpretuje jednoducho ako obyčajná 0.
Príklady:
Dim MyValue
MojaHodnota = 10/4"
!} Vráti sa
2.5.
MojaHodnota = 10 / 3 " Vráti sa
3.333333.
operátor \ (celočíselné delenie)
Používa sa na rozdelenie dvoch čísel a získanie celočíselného výsledku.
Syntax:
výsledok = číslo 1 \ číslo2
Možnosti:
výsledok- požadovaný; ľubovoľná číselná premenná
číslo 1- Nevyhnutne; akýkoľvek číselný výraz
číslo2- Nevyhnutne; akýkoľvek číselný výraz
Poznámky:
Pred takýmto delením sa výrazy zaokrúhlia na výrazy Byte, Integer alebo Long. Typ údajov výsledku je zvyčajne Byte, Bytový variant, Celé číslo, Celočíselný variant, Dlhý alebo Dlhý variant. Akákoľvek zlomková časť je odrezaná.
Ak je však niektorý z výrazov Null, potom je výsledok Null. Akýkoľvek výraz obsahujúci Empty sa interpretuje ako 0.
Príklady:
Dim MyValue
MojaHodnota = 11\4" Vráti sa
2.
MojaHodnota = 9\3" Vráti sa
3.
MojaHodnota = 100\3" Vráti sa
33.
Mod operátor (zvyšok divízie)
Používa sa na rozdelenie dvoch čísel a získanie zvyšku ich delenia.
Syntax:
výsledok = číslo 1 Mod číslo2
Možnosti:
výsledok- požadovaný; ľubovoľná číselná premenná
číslo 1- Nevyhnutne; akýkoľvek číselný výraz
číslo2- Nevyhnutne; akýkoľvek číselný výraz
Poznámky:
Pri delení sa čísla s pravou bodkou zaokrúhľujú. Napríklad výsledok nasledujúceho výrazu je 5:
A = 19 Mod 6.7
Čo sa tu deje? Najprv sa číslo 6,7 zaokrúhli na 7. Potom dôjde k deleniu, dostaneme 2,7.... Zvyšok delenia = 5. (2 * 7 = 14, 19 - 14 = 5).
Výsledok je zvyčajne typu Byte, Byte variant, Integer, Integer variant, Long alebo Variant obsahujúci Long.
Ak má niektorý z výrazov hodnotu Null, potom je výsledok Null. Akýkoľvek výraz obsahujúci Empty sa interpretuje ako 0.
Príklady:
Dim MyResult
Môj výsledok = 10 Mod 5" Vráti sa
0.
Môj výsledok = 10 Mod 3" Vráti sa
1.
Môj výsledok = 12 Mod 4,3" Vráti sa
0.
Môj výsledok = 12,6 Mod 5" Vráti sa
3.
operátor + (dodatok)
Používa sa na sčítanie dvoch čísel.
Syntax:
výsledok = výraz1+výraz2
Možnosti:
výsledok- požadovaný; ľubovoľná číselná premenná
výraz1
výraz2- Nevyhnutne; akýkoľvek výraz
Poznámky:
Keď použijete operátor +, nemôžete určiť, či dôjde k pridaniu alebo zreťazeniu reťazcov. Na zreťazenie použite operátor &, aby ste sa vyhli nejasnostiam a kód bol čitateľnejší.
Ak jeden z výrazov nie je variant, platia nasledujúce pravidlá:
- Ak sú oba výrazy číselného typu (Byte, Boolean, Integer, Long, Single, Double, Date, Currency alebo Decimal), potom sa pridajú.
- Ak sú oba reťazcové výrazy zreťazené.
- Ak je jeden z výrazov číselného typu a druhý je ľubovoľná hodnota Variant vrátane hodnoty Null, dôjde k sčítaniu.
- Ak je jedným z výrazov reťazec a druhým je ľubovoľná hodnota Variant, dôjde k zreťazeniu.
- Ak jeden z výrazov obsahuje hodnotu Empty, vráti sa druhý nezmenený výraz.
- Ak je jeden z výrazov číselného typu a druhý je reťazec, objaví sa chyba typu nesúlad.
- Ak je akýkoľvek výraz Null, potom je výsledok tiež Null.
Ak sú oba výrazy Variant, potom platia nasledujúce pravidlá:
- Ak sú oba výrazy čísla, potom sa sčítajú.
- Ak sú oba výrazy reťazce, potom sú zreťazené.
- Ak je jeden z výrazov číslo a druhý reťazec, dôjde k sčítaniu.
Pre bežné sčítanie je dátový typ výsledku zvyčajne rovnaký ako najpresnejší typ z dvoch čísel. Poradie presnosti je Byte, Integer, Long, Single, Double, Currency a Decimal. Existujú výnimky:
- Ak sa pridá Single a Long, výsledkom je Double
- Ak sa výraz typu Dátum pridá k akýmkoľvek iným výrazom, výsledkom bude Dátum.
Ak je jeden alebo oba výrazy Null, potom je výsledok tiež Null. Ak oba výrazy obsahujú hodnotu Empty, výsledkom je celé číslo. Ak existuje iba jeden, potom sa ako výsledok vráti nezmenený druhý výraz.
Príklady:
Dim Moje číslo, Var1, Var2
MojeČíslo = 2 + 2 " Vráti sa
4.
MojeČíslo = 4257,04 + 98112 " Vráti sa
102369.04.
Var1 = "34"
Var2 = 6 "Inicializujte zmiešané premenné
MojeČíslo = Var1 + Var2 " Vráti sa
40.
Var1 = "34"
Var2 = "6" "Inicializujte premenné pomocou reťazcov
MojeČíslo = Var1 + Var2 " Vráti sa"346" (vyskytlo sa
„spájanie, nie sčítanie!).
Poraďte:
Operátor sčítania (+) je možné použiť na pridávanie dátumov, t.j. Premenné typu dátumu:
Tlmiť d Ako Dátum
d = DateSerial(2002, 8, 15) " inicializácia dátumu 15.08.2002
d = d + 15 " teraz d obsahuje dátum 30.08.2002
„t. j. pridali sme 15 dní
operátor - (odčítanie, zmena znamienka)
Používa sa na nájdenie rozdielu medzi dvoma číslami, alebo tiež na zmenu znamienka výrazu.
Syntax:
výsledok = výraz1- výraz2
-výraz
Možnosti:
výsledok- požadovaný; ľubovoľná číselná premenná
výraz- Nevyhnutne; akýkoľvek výraz
výraz1- Nevyhnutne; akýkoľvek výraz
výraz2- Nevyhnutne; akýkoľvek výraz
Poznámky:
V prvej syntaxi je operátor "-" potrebný na nájdenie rozdielu medzi dvoma číslami. V druhej syntaxi sa "-" používa na zmenu znamienka výrazov.
Dátový typ výsledku je zvyčajne rovnaký ako najpresnejší typ dvoch čísel. Poradie presnosti je Byte, Integer, Long, Single, Double, Currency a Decimal. Existujú výnimky:
- Ak sú do odčítania zahrnuté typy Single a Long, výsledkom je Double
- Ak odčítanie používa výraz typu Dátum,
výsledkom je potom dátum. - Odčítaním dvoch dátumov dostaneme výsledok Double.
Ak je jeden alebo oba výrazy Null, potom je výsledok tiež Null. Ak je jeden z výrazov prázdny, potom sa interpretuje ako 0.
Poradie presnosti sčítania a odčítania sa líši od poradia používaného pri násobení.
Príklady:
Dim MyResult
Môj výsledok = 4 - 2 " Vráti sa
2.
Môj výsledok = 459,35 – 334,90 " Vráti sa
124.45.
Poraďte:
Podobne ako operátor sčítania, aj operátor odčítania možno použiť na výpočet rozdielu (v dňoch) medzi dvoma dátumami:
Stlmiť d1 Ako Dátum
Dim d2 As Date
Dim razn As Long
d1 = DateSerial(1983, 10, 14)
d2 = DateSerial(2002, 8, 15)
razn = d2 - d1 " rozdiel v dňoch (6880).
Porovnávacie operátory
Používa sa na porovnanie určitých výrazov. Majú 3 syntaxe:
Syntax:
výsledok = výraz1 operátor porovnávania výraz2
výsledok = objekt1 Je objekt2
výsledok = riadok Páči sa mi to vzorka
Možnosti:
výsledok požadovaný; akúkoľvek číselnú premennú
výraz Nevyhnutne; akékoľvek vyjadrené
operátor porovnávania požadovaný; akýkoľvek operátor porovnávania
objekt požadovaný; názov akéhokoľvek objektu
riadok požadovaný; ľubovoľný reťazcový výraz.
vzorka požadovaný; akýkoľvek reťazcový výraz alebo rozsah písmen a číslic
Poznámky:
Nasledujúca tabuľka obsahuje zoznam porovnávacích operátorov a podmienok, ktoré určujú výsledok výrazu (pravda alebo nepravda).
Operátor |
Pravda, ak |
Nepravdivé, ak |
Null if |
< (меньше чем) | výraz1 < výraz2 |
výraz1 >= výraz2 |
jeden |
<= (меньше или равно) | výraz1 <= výraz2 |
výraz1 > výraz2 |
|
> (viac ako) | výraz1 > výraz2 |
výraz1 <= výraz2 |
|
>= (väčšie alebo rovné) | výraz1 >= výraz2 |
výraz1 < výraz2 |
|
= (rovná sa) | výraz1 = výraz2 |
výraz1 <> výraz2 |
|
<>(nerovná sa) | výraz1 <> výraz2 |
výraz1 = výraz2 |
Operátory Is a Like vykonávajú špecifické funkcie a ich porovnávacia tabuľka sa líši od tej, ktorá je zobrazená (pozrieme sa na ne nižšie).
Keď sa porovnávajú dva výrazy, nie je vždy možné určiť, či sa budú porovnávať čísla alebo reťazce. Nasledujúci text ukazuje, ako sa vypočíta výsledok, ak sú oba výrazy iného typu ako Variant:
- Ak sú oba výrazy čísla (Byte, Boolean, Integer, Long, Single, Double, Date, Currency alebo Decimal), potom sa čísla porovnajú.
- Ak sú oba výrazy reťazce, dôjde k porovnaniu reťazcov. (menší riadok je ten, ktorého prvé a nasledujúce písmená majú menší ascii kód).
- Ak je jeden z výrazov číslo a druhý variant, ktorý možno interpretovať ako číslo, potom sa čísla porovnajú.
- Ak je jedným z výrazov číslo a druhým variantom je reťazec, ktorý nemožno interpretovať ako číslo, dôjde k chybe (Nesúlad typu).
- Ak je jedným z výrazov reťazec a druhým je ľubovoľná hodnota Variant (dokonca aj hodnota Null), dôjde k porovnaniu reťazcov.
- Ak je jeden z výrazov Prázdny a druhý číslo, potom dôjde k porovnaniu čísel, kde Prázdne sa považuje za 0.
- Ak je jeden z výrazov prázdny a druhý reťazec, dôjde k porovnaniu reťazcov, kde sa s výrazom Empty zaobchádza ako s prázdnym reťazcom "".
Ak sú prvý výraz aj druhý typu Variant, potom sa výrazy porovnávajú podľa typov údajov, ktoré Variant obsahuje:
- Ak oba výrazy Variant obsahujú čísla, potom sa čísla porovnajú.
- Ak oba výrazy Variant obsahujú reťazce, reťazce sa porovnajú.
- Ak jeden z výrazov Variant obsahuje číslo a druhý reťazec, potom je číselný výraz menší ako reťazcový.
- Ak je jeden z výrazov Variant Prázdny a druhý číslo, potom sa Prázdny považuje za 0.
- Ak je jeden z výrazov Variant Prázdny a druhý reťazec, potom sa Prázdny považuje za prázdny reťazec "".
- Ak sú oba výrazy prázdne, potom sa považujú za rovnaké.
Keď sa premenná Single porovná s premennou Double, premenná Double sa zaokrúhli na presnosť premennej Single.
Ak sa mena porovná s jednou alebo dvojitou, potom sa jedna alebo dvojitá prevedie na menu. Podobne pri porovnávaní desatinných miest s jednoduchým alebo dvojitým, potom sa jednoduché alebo dvojité prevedie na desatinné. V prípade meny sa môže stratiť akákoľvek zlomková časť menšia ako 0,0001. Pre desatinné číslo je táto hodnota 1E-28, inak sa môže vyskytnúť chyba. Keď sa teda zlomková časť stratí, výrazy možno interpretovať ako rovnaké, hoci v skutočnosti sa jeden od druhého bude líšiť. (aj keď v malom množstve).
Príklady:
Dim MyResult, Var1, Var2
Môj výsledok = (45< 35) "
Vráti sa Nepravdivé.
Môj výsledok = (45 = 45) " Vráti sa Pravda.
Môj výsledok = (4<> 3) "
Vráti sa Pravda.
Môj výsledok = ("5" > "4") " Vráti sa Pravda.
Var1 = "5": Var2 = 4 "vo VB môžete použiť dvojbodku,
“ na samostatné vyhlásenia.
Môj výsledok = (Premenná1 > Premenná2) " Vráti sa Pravda.
Var1 = 5: Var2 = Prázdny
Môj výsledok = (Premenná1 > Premenná2) " Vráti sa Pravda.
Var1 = 0: Var2 = Prázdny
MyResult = (Var1 = Var2) " Vráti sa Pravda.
porovnávací operátor Is
Tento operátor sa používa na porovnávanie objektových premenných.
Syntax tohto operátora je uvedená vyššie.
Poznámky:
Ak objekt1 a objekt1 odkazujú na ten istý objekt, výsledok je True, ak nie, potom False. Dve premenné môžu odkazovať na ten istý objekt viac ako jedným spôsobom. V nasledujúcom príklade A odkazuje na rovnaký objekt ako B:
Set A = B
Nasledujúci príklad umožňuje, aby premenné A a B odkazovali na rovnaký objekt - C:
Nastavte A = C
Nastavte B=C
Príklady:
Dim MyObject, YourObject, ThisObject, _
OtherObject, ThatObject, MyCheck
Nastavte YourObject = MyObject "vytvorte odkazy na objekty
Set ThisObject = MyObject
Nastavte ThatObject = OtherObject
MyCheck = YourObject Is ThisObject " Vráti hodnotu True.
MyCheck = ThatObject Is ThisObject " Vráti hodnotu False.
"Predpokladáme, že MyObject<>OtherObject
MyCheck = MyObject Is ThatObject " Vráti hodnotu False.
Operátor porovnávania reťazcov - Like
Operátor porovnávania reťazcov Like sa používa na porovnávanie reťazcov.
Syntax tohto operátora už bola diskutovaná vyššie.
komentár:
Tento operátor možno použiť na testovanie reťazca oproti maske vzoru. Toto je veľmi výkonný operátor, takmer analogický s regulárnymi výrazmi v Perle.
Takže tento operátor funguje nasledovne. Ak sa reťazec zhoduje s maskou, výsledok je True. Ak nie - nepravda. Ak je jeden z výrazov Null, výsledok je tiež Null.
Správanie operátora Like závisí od predvoleného typu porovnávania reťazcov. (Operátor možnosť Porovnať).
Ak je typ nastavený na Binary (t.j. binárne porovnanie), tak sa reťazce porovnávajú podľa ich Ascii kódov (v rôznych kódovaniach sa líšia). Zvyčajne sa používa nasledujúca postupnosť:
A< B < E < Z < a < b < e < z < А < К < Я < а < к < я
Ak je typ nastavený na Text (porovnanie textu). S týmto porovnaním sa postupnosť líši od predchádzajúcej, tu sú veľké a malé písmená rovnaké:
(A=a)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)
Najdôležitejšou funkciou operátora Like je kontrola, či reťazec patrí maske. V maske je možné použiť nasledujúce špeciálne zložky. postavy:
Akákoľvek jedna postava
* Žiadny alebo viac znakov
# Ľubovoľné číslo (0–9).
Každá jedna postava, ktorá spadá do charlistu
[!charlist] Akýkoľvek jednotlivý znak, ktorý nie je zahrnutý v zozname znakov
Tu je rýchla poznámka. Na kontrolu identity reťazca na maske obsahujúcej špeciálne. symboly (t. j. skontrolujte napríklad, či reťazec obsahuje symboly [,?,#,],*), potom ich musíte uzavrieť do hranatých zátvoriek. Nemôžete len tak vložiť samostatnú zátvorku [ alebo ].
Pri zadávaní zoznamu znakov môžete použiť pomlčku (–). Napríklad, ak chcete zadať postupnosť od A do Z, musíte použiť masku. Všetko v zátvorkách nesmie obsahovať žiadne oddeľovače (medzery, čiarky a pod.), inak sa zaradia aj do postupnosti.
Pri kontrole pomocou masky existujú ďalšie dôležité pravidlá:
- Znak (!) na začiatku zoznamu symbolov znamená, že musíte vyhľadať symboly, ktoré nie sú zahrnuté v tomto zozname. Ak potrebujete nájsť samotný znak!, musíte vložiť zátvorky [!].
- (–) sa používa na určenie rozsahu znakov.
- Keď je zadaný rozsah znakov, musí sa zvyšovať v kódoch ASCII. Tie. správna maska, alebo nie.
- Sekvencia sa interpretuje ako prázdny reťazec "".
Príklady:
Dim MyCheck
MyCheck = "aBBBa" Ako "a*a" " Vráti hodnotu True.
MyCheck = "F" Like "" " Vráti hodnotu True.
MyCheck = "F" Ako "[!A-Z]" " Vráti hodnotu False.
MyCheck = "a2a" Ako "a#a" " Vráti hodnotu True.
MyCheck = "aM5b" Ako "a#[!c-e]" " Vráti hodnotu True.
MyCheck = "BAT123khg" ako "B?T*" " Vráti hodnotu True.
MyCheck = "CAT123khg" ako "B?T*" " Vráti hodnotu False.
myString = "312T-87GD-8922"
Ak myString Ako „###-##-####“ Potom...
Operátory zreťazenia reťazcov
V skutočnosti na zreťazenie reťazcov vo Visual Basicu môžete použiť iba 2 operátory. Toto sú & a +. Operátor + je popísaný vyššie. Poďme hovoriť o operátorovi &.
operátor zreťazenia reťazcov - &
Používa sa na zreťazenie dvoch výrazov.
Syntax:
výsledok = výraz1 & výraz2
výsledok požadovaný; Ľubovoľná premenná typu reťazec alebo variant
výraz1 Nevyhnutne; Akýkoľvek výraz
výraz2 Nevyhnutne; Akýkoľvek výraz
Poznámky:
Ak výraz nie je reťazec, potom sa skonvertuje na variant reťazca. Výsledný dátový typ je String, iba ak sú oba výrazy typu String. V opačnom prípade je výsledkom String Variant. Ak sú oba výrazy Null, potom je výsledok tiež Null. Ak však iba jeden z výrazov obsahuje hodnotu Null, potom sa interpretuje ako prázdny reťazec "". Prázdne sa tiež interpretuje ako prázdny reťazec "".
Príklady:
Dim MyStr
MyStr = "Ahoj" & "Svet"
"
Vráti sa reťazec „Ahoj svet“.
MyStr = "Skontrolovať" & 123 & "Skontrolovať"
" Vráti reťazec "CHECK 123 CHECK".
Logické operátory
Toto je najzaujímavejšia skupina operátorov. Pri programovaní musíte poznať ich fungovanie a aplikáciu (a to nielen vo Visual Basicu).
Vo Visual Basicu je ich 6. Pozrime sa podrobne na každého operátora.
A operátor
Používa sa na vykonanie logického násobenia cez dva výrazy.
Syntax:
výsledok = výraz1 A výraz2
výsledok
výraz1 Nevyhnutne; Akýkoľvek výraz
výraz2 Nevyhnutne; Akýkoľvek výraz
Poznámky:
Nasledujúca tabuľka ukazuje, ako funguje operátor And:
Ak výraz1 = |
a výraz2 = |
Potom výsledok = |
Pravda | Pravda | Pravda |
Pravda | Nepravdivé | Nepravdivé |
Pravda | Nulový | Nulový |
Nepravdivé | Pravda | Nepravdivé |
Nepravdivé | Nepravdivé | Nepravdivé |
Nepravdivé | Nulový | Nepravdivé |
Nulový | Pravda | Nulový |
Nulový | Nepravdivé | Nepravdivé |
Nulový | Nulový | Nulový |
Operátor And sa používa aj na testovanie bitov čísla. Pre bity funguje operátor And nasledovne (pri pohľade zľava doprava)
0 0 0
0 1 0
1 0 0
1 1 1
Príklady:
Dim A, B, C, D, MyCheck
MyCheck = A > B a B > C " Vráti sa Pravda.
MyCheck = B > A a B > C " Vráti sa Nepravdivé.
MyCheck = A > B a B > D " Vráti sa Nulový.
MyCheck = A a B" Vráti sa8 (bitové porovnanie).
Pozrime sa na posledný príklad podrobnejšie. Číslo 10 je znázornené ako bity nasledovne (ako tetráda, t.j. 4 bity):
A číslo 8 je takéto:
V dôsledku operátora And podľa vyššie uvedenej tabuľky dostaneme:
Tie. 8. Prečo sme to urobili? Urobili sme to, aby sme skontrolovali, či je nastavený štvrtý bit čísla A? Po prijatí B sme overili, že tento bit je nastavený.
Alebo operátor
Používa sa na vykonanie logického sčítania dvoch výrazov.
Syntax:
výsledok = výraz1 Alebo výraz2
výsledok požadovaný; Akákoľvek numerická (vrátane booleovskej) premennej
výraz1 Nevyhnutne; Akýkoľvek výraz
výraz2 Nevyhnutne; Akýkoľvek výraz
Poznámky:
Nasledujúca tabuľka ukazuje, ako funguje operátor Or:
Ak výraz1 = |
a výraz2 = |
Potom výsledok = |
Pravda | Pravda | Pravda |
Pravda | Nepravdivé | Pravda |
Pravda | Nulový | Pravda |
Nepravdivé | Pravda | Pravda |
Nepravdivé | Nepravdivé | Nepravdivé |
Nepravdivé | Nulový | Nulový |
Nulový | Pravda | Pravda |
Nulový | Nepravdivé | Nulový |
Nulový | Nulový | Nulový |
Operátor Or sa používa na nastavenie konkrétnych bitov čísla. Pre bity funguje operátor Or nasledovne (pri pohľade zľava doprava)
0 0 0
0 1 1
1 0 1
1 1 1
Výsledok je vyznačený tučným písmom.
Príklady:
Dim A, B, C, D, MyCheck
MyCheck = A > B alebo B > C " Vráti sa Pravda.
MyCheck = B > A alebo B > C " Vráti sa Pravda.
MyCheck = A > B alebo B > D " Vráti sa Pravda.
MyCheck = B > D alebo B > A " Vráti sa Nulový.
MyCheck=A alebo 5" Vráti sa
15:
Pozrime sa na posledný príklad podrobnejšie. Číslo 10 je znázornené ako bity nasledovne (ako tetráda, t.j. 4 bity):
A číslo 5:
V dôsledku fungovania operátora Or podľa vyššie uvedenej tabuľky dostaneme:
Tie. 15. Ako vidíte, operátor Or je veľmi jednoduchý a pohodlný na použitie nielen v porovnávacích výrazoch, ale aj na nastavenie určitých bitov čísla.
Operátor Xor
Používa sa na vykonanie logickej negácie dvoch výrazov.
Syntax:
výsledok = výraz1 Xor výraz2
výsledok požadovaný; Akákoľvek numerická (vrátane booleovskej) premennej
výraz1 Nevyhnutne; Akýkoľvek výraz
výraz2 Nevyhnutne; Akýkoľvek výraz
Poznámky:
Nasledujúca tabuľka ukazuje, ako funguje operátor Xor:
Operátor Xor sa používa na invertovanie určitých bitov čísla. Pre bity funguje operátor Xor nasledovne (pri pohľade zľava doprava)
0 0 0
0 1 1
1 0 1
1 1 0
Výsledok je vyznačený tučným písmom. Xor sa od Or líši len tým, že keď sú obidva bity jedničky, Xor produkuje 0. Zaujímavou vlastnosťou operátora Xor je, že pri použití dvakrát produkuje rovnaké číslo. Toto sa často používa v kryptografii.
Príklady:
Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = A > B X alebo B > C " Vráti sa Nepravdivé.
MyCheck = B > A Xor B > C " Vráti sa Pravda.
MyCheck = B > A Xor C > B " Vráti sa Nepravdivé.
MyCheck = B > D Xalebo A > B " Vráti sa Nulový.
MyCheck = A Xor B " Vráti sa
2
Zaujímavým príkladom použitia operátora Xor je výmena hodnôt dvoch číselných premenných:
Dim a As Long, b As Long
a = 4
b = 7
a = a Xor b
b = a X alebo b
a = a Xor b
Teraz premenná a obsahuje hodnotu premennej b a naopak.
Nie operátor
Používa sa na vykonanie logickej inverzie dvoch výrazov.
Syntax:
výsledok= Nie výraz
výsledok požadovaný; Akákoľvek numerická (vrátane booleovskej) premennej
výraz Nevyhnutne; Akýkoľvek výraz
Poznámky:
Nasledujúca tabuľka ukazuje, ako funguje operátor Not:
Operátor Not invertuje všetky bity výrazov. Pre bity funguje operátor Not nasledovne (pri pohľade zľava doprava):
0 1
1 0
Výsledok je vyznačený tučným písmom.
Príklady:
Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = Nie (A > B) " Vráti sa Nepravdivé.
MyCheck = Nie (B > A)" Vráti sa Pravda.
MyCheck = Nie (C > D) " Vráti sa Nulový.
MyCheck = Not A " Vráti sa-11 (všetky bity sú invertované)
Pozrime sa bližšie na posledný príklad. Číslo 10 je reprezentované nasledujúcimi bitmi (ako bajt, t.j. 8 bitov):
Po invertovaní všetkých bitov dostaneme:
A toto je -11.
operátor Eqv
Používa sa na vykonanie logickej ekvivalencie medzi dvoma výrazmi.
Syntax:
výsledok = výraz1 Eqv výraz2
výsledok požadovaný; Akákoľvek numerická (vrátane booleovskej) premennej
výraz1 Nevyhnutne; Akýkoľvek výraz
výraz2 Nevyhnutne; Akýkoľvek výraz
Poznámky:
Nasledujúca tabuľka ukazuje, ako funguje operátor Eqv:
Pre bity funguje operátor Eqv nasledovne (pri pohľade zľava doprava)
0 0 1
0 1 0
1 0 0
1 1 1
Príklady:
Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = A > B Eqv B > C " Vráti sa Pravda.
MyCheck = B > A Eqv B > C " Vráti sa Nepravdivé.
MyCheck = A > B Eqv B > D " Vráti sa Nulový.
MyCheck = A Eqv B " Vráti sa
-3
Operátor Imp
Používa sa na vykonanie logickej implikácie dvoch výrazov.
Syntax:
výsledok = výraz1 Imp výraz2
výsledok požadovaný; Akákoľvek numerická (vrátane booleovskej) premennej
výraz1 Nevyhnutne; Akýkoľvek výraz
výraz2 Nevyhnutne; Akýkoľvek výraz
Poznámky:
Nasledujúca tabuľka ukazuje, ako funguje operátor Imp:
Ak výraz1 = |
a výraz2 = |
Potom výsledok = |
Pravda | Pravda | Pravda |
Pravda | Nepravdivé | Nepravdivé |
Pravda | Nulový | Nulový |
Nepravdivé | Pravda | Pravda |
Nepravdivé | Nepravdivé | Pravda |
Nepravdivé | Nulový | Pravda |
Nulový | Pravda | Pravda |
Nulový | Nepravdivé | Nulový |
Nulový | Nulový | Nulový |
Pre bity funguje operátor Imp nasledovne (pri pohľade zľava doprava)
0 0 1
0 1 1
1 0 0
1 1 1
Príklady:
Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = A > B Imp B > C " Vráti sa Pravda.
MyCheck = A > B Imp C > B " Vráti sa Nepravdivé.
MyCheck = B > A Imp C > B " Vráti sa Pravda.
MyCheck = B > A Imp C > D " Vráti sa Pravda.
MyCheck = C > D Imp B > A " Vráti sa Nulový.
MyCheck = B Imp A " Návraty -1
Jazykové pokyny (alebo operátori)– sú to programové jednotky, ktoré vykonávajú nejaké akcie alebo popisujú dáta.
Príkaz obsahuje jedno alebo viac kľúčových slov a prípadne parametrov. Niekoľko príkazov nachádzajúcich sa na rovnakom riadku programu je od seba oddelených dvojbodkou. Ak je príkaz príliš dlhý, môžete ho rozdeliť na viacero riadkov pomocou podčiarkovníka _.
O P erátorúlohy
Operátor priradenia sa používa na priradenie novej hodnoty premennej počas vykonávania programu. Znak priradenia "=".
Napríklad, operátor:
x = Sqr(5 + Tan(1,8)^2)
priradí premennej x hodnotu výrazu . Ako výsledok výpočtu výrazu napísaného na pravej strane dostaneme reálne číslo. Hodnota, ktorá bude priradená premennej x, však závisí od toho, ako bol typ tejto premennej deklarovaný. Ak je teda premenná x typu Single, bude jej priradený výsledok 4.834464, ak je to Double, potom 4.83446368725481 a ak je to celé číslo, tak 5.
Typ údajov premennej x musí byť kompatibilný s typom údajov tohto výrazu. Okrem implicitnej konverzie z jedného typu na druhý počas priraďovania poskytuje Visual Basic možnosť konvertovať typy pomocou funkcií. Napríklad funkcia CDbl konvertuje dáta na typ Double, CInt– na typ Integer, Clng- na dlhý typ, CSng– na typ Single, CStr– napísať reťazec atď.
Funkcie CInt a Clng zaokrúhlia výsledok. Navyše, ak je zlomková časť čísla 0,5, zaokrúhľuje sa na najbližšie párne číslo.
Operátor pridelenia umožňuje nielen priradiť hodnotu premennej, ale aj nastaviť hodnoty vlastností objektov VBA. Napríklad operátor
Riadky("1:1").Písmo. Tučné = pravda
Zvýrazní písmo v prvom riadku pracovného hárka.
LINE BREAK
Kombinácia<Пробел> + <Знак подчеркивания>na konci riadku zabezpečuje, že nasledujúci riadok je pokračovaním predchádzajúceho. Zároveň si musíme uvedomiť, že:
§ Konštanty reťazca nemôžete zlomiť obalením
§ Nie je povolených viac ako sedem pokračovaní tej istej línie
§ Samotný riadok nemôže obsahovať viac ako 1024 znakov
Príklad.
Nesprávny prevod Správny prevod
Line = "Visual Basic for _ Line = "Visual Basic" _
Aplikácie" a "pre aplikácie"
KOMENTÁRE
Text nasledujúci za symbolom (") v programe až do konca riadku je kompilátorom ignorovaný a ide o komentár. Komentáre sa používajú na pridávanie vysvetlení a popisov k programu. Komentáre sú užitočné pri ladení programu: umožňujú dočasne vypnúť programové riadky počas ladenia.
Podmienené operátor
Podmienený príkaz vykoná určité inštrukcie (príkazy) v závislosti od hodnoty výrazu podmienky. Bloková schéma na kontrolu stavu vyzerá takto:
Ryža. 1. Rozvetvenie môže byť neúplné (táto štruktúra sa nazýva aj bypass).
Ryža. 2. Podmienený príkaz má dve formy syntaxe: riadkovú a blokovú.
Forma s malými písmenami
Ak stave Potom [ operator_if_true]
Algoritmus uvedený na obr. 1, v tvare malých písmen sa bude písať ako
Ak stave Potom operator_if_true Inak operator_if_false
Obrázok 2 zodpovedá záznamu
Ak stave Potom operator_if_true
Obrázok 3 zodpovedá záznamu
Ak stave Potom Else operator_if_false
Blokový formulár
Ak podmienka-1 Potom
[operator_if podmienka–1_true]
[operator_if_all_conditions_false]]
Podmienky uvedené v častiach If a ElseIf sú relačné výrazy alebo logické výrazy. Keď je splnená jedna z podmienok, vykonajú sa príkazy za príslušným kľúčovým slovom Then a zostávajúce príkazy sa ignorujú (to znamená, že sa nevykonajú žiadne ďalšie testy a kontrola sa prenesie na príkaz nasledujúci za End If). Ak nie je splnená žiadna z logických podmienok, potom operator_if_all_previous_conditions_false, alebo, ak je táto časť vynechaná, riadenie sa prenesie na riadok programu nasledujúci za podmieneným príkazom.
Bloková forma príkazu If je vhodnejšia, ak:
Keď je podmienka splnená alebo nie je splnená, vykoná sa niekoľko príkazov (v tomto prípade možno použiť aj riadkový formulár, ale riadok bude príliš dlhý a program menej prehľadný);
Postupne sa kontroluje niekoľko podmienok a keď je splnená ďalšia podmienka, je nevhodné kontrolovať nasledujúce podmienky (preto sa používa kľúčové slovo ElseIf).
Príklad
Spoločnosť poskytuje veľkoobchodným odberateľom zľavy.
Na základe známeho objemu objednávky je potrebné určiť jej cenu.
Na výpočet ceny objednávky používame funkciu:
Verejná funkcia Order_Cost (množstvo ako dlhé) ako dvojnásobok
Ak Množstvo<= 999 Then
Objednávka_cena = množstvo * 5
Iné množstvo<= 1999 Then
Objednávka_cena = množstvo * 4.8
Objednávka_cost = množstvo * 4,75
V tomto prípade bolo možné použiť malý tvar operátora IF:
Verejná funkcia Order_Cost1 (množstvo ako dlhé) ako dvojnásobok
Ak Množstvo<= 999 Then Стоимость_заказа1 = Количество * 5
Ak Množstvo >= 1000 a Množstvo<= 1999 Then Стоимость_ заказа1 = Количество * 4.8
Ak Množstvo >= 2000, potom Objednávka_Cena1 = Množstvo * 4,75
Ak nezohľadníme nevýhody, že rady sú dlhé a pri akomkoľvek objeme objednávky sa všetky kontroly vykonávajú postupne (prvá procedúra funguje rýchlejšie pri malých objemoch objednávok), potom je program napísaný správne a možno ešte prehľadnejší.
Je však možné uviesť príklady, kedy ak je splnená (alebo nesplnená) jedna z podmienok, ostatné jednoducho nemožno skontrolovať.
Napríklad, niektoré operátory sa musia vykonať, keď sú podmienky splnené spoločne: http://po-teme.com.ua/images/adIIIin/image014_e652e49476c6f0eb9cf40b68cc090828.gif" alt="" width="56" height="27 src="> Ak pre kontroly použite operátor
Ak x>0 a y ak je x záporné, pri volaní funkcie sqr sa vyskytne chyba (koreň je záporné číslo). Tejto chybe sa dá vyhnúť použitím dizajnu Ak x > 0 Potom Ak y< Sqr(x) Then Ak v poslednej forme záznamu existuje kľúčové slovo Else, potom sa vzťahuje na posledný príkaz If. Operátor výberu Vyberte položku Prípad výraz [inštrukcie_inak]] Parameter výrazu je ľubovoľný číselný alebo reťazcový výraz. Namiesto vyhodnotenia logickej podmienky sa hodnota výrazu porovnáva s každou z hodnôt špecifikovaných parametrom zoznam_výrazov-n. Hodnoty na porovnanie zahrnuté v zoznam_výrazov-n, možno špecifikovať v tvare: – hodnoty; – rozsah hodnôt vo formulári pôvodná hodnota Komu konečná_hodnota; – porovnávacie výrazy v tvare Is hodnotu operátora porovnávania; – zoznam ktoréhokoľvek z uvedených typov výrazov (oddeľovač – čiarka). Inštrukcia môže obsahovať ľubovoľný počet blokov Case. Ak nie je splnená žiadna z podmienok, vykonajú sa príkazy v bloku Case Else. Napríklad, ak je podmienka skóre nad tri, potom túto podmienku možno zapísať: Prípad 4, 5 alebo Prípad je >3 alebo Prípad >= 4 alebo Prípad 4 až 5. Poznámka. Nemusíte zadávať kľúčové slovo Is, pridá sa automaticky. Príklad Uvedený príklad so zvýhodnenou cenou s použitím konštrukcie Select Case je možné riešiť nasledovne: Verejná funkcia Order_Cost2 (množstvo ako dlhé) ako dvojnásobok Vyberte Množstvo prípadu Objednávka_cost2 = Množstvo * 5 Prípad 1000 až 1999 Objednávka_cost2 = Množstvo * 4.8 Prípad je >= 2000 Objednávka_cost2 = množstvo * 4,75 Typicky sa porovnávacie operácie používajú v slučkových operátoroch, aby urobili určité rozhodnutie o ďalšom priebehu operácií. Výsledkom akejkoľvek porovnávacej operácie je boolovská hodnota: True, False. Ak oba operandy v porovnávacom výraze majú rovnaký typ údajov, VBA vykoná jednoduché porovnanie pre tento typ. Ak oba operandy v porovnávacom výraze majú špecifické typy a typy nie sú kompatibilné, VBA vydá chybu nesúladu typu. Ak jeden alebo oba operandy v porovnávacom výraze sú premenné typu Variant, VBA sa pokúsi skonvertovať typ Variant na nejaký kompatibilný typ. Pri porovnávaní reťazcov s relačnými operátormi VBA porovnáva každý reťazec zľava doprava znak po znaku. Vo VBA sa jeden reťazec rovná druhému iba vtedy, keď oba reťazce obsahujú presne rovnaké znaky v presne rovnakom poradí a oba reťazce majú rovnakú dĺžku. Napríklad reťazce "abcd" "abcd" "abcd" sa navzájom nerovnajú, pretože VBA pri porovnávaní reťazcov neignoruje úvodné ani koncové medzery. Pri porovnávaní reťazcov s premenlivou dĺžkou by ste mali byť opatrní. Na ukladanie textu počítač používa schému, v ktorej má každý zobrazený znak jedinečné číslo. Všetky písmená abecedy majú svoje jedinečné čísla. Veľké písmená majú zvyčajne nižšie čísla ako malé písmená. Zavolá sa číslo zodpovedajúce konkrétnemu písmenu alebo symbolu znakový kód. Pri vykonávaní binárneho porovnania informácií o reťazci používa VBA binárny ekvivalent čísla pre každý znak. Táto porovnávacia metóda sa nazýva binárne alebo binárne a je predvolenou porovnávacou metódou. Pretože veľké písmená majú nižšie binárne čísla, veľké písmená sú zoradené podľa abecedy pred malými písmenami. Preto počas binárneho porovnávania reťazcov bude reťazec "ABV" menší ako reťazec "abc". Pri textovom porovnávaní reťazcov VBA nepoužíva binárny ekvivalent znakov a „nerozlišuje“ veľké a malé písmená. Pri porovnaní textu sa reťazec „abc“ rovná reťazcu „ABC“. Ak chcete vybrať metódu porovnávania reťazcov, použite direktívu Option Compare Možnosť Porovnať Táto smernica musí byť v oblasti deklarácie modulu. Pripojenie jedného reťazca k druhému sa nazýva zreťazenie reťazcov. Spájanie reťazcov sa bežne používa na vytváranie reťazcov z rôznych zdrojov v procedúre na vytvorenie správy na zobrazenie. VBA má dva operátory na zreťazenie reťazcov. Operátor (&) vo VBA sa používa iba na zreťazenie reťazcov. Syntax Operand_1 & Operand_2 [& Operand_3..] Operand_N je akýkoľvek platný reťazec alebo číselný výraz (ktorý sa konvertuje na reťazec). Typ údajov výsledku zreťazenia reťazcov je String. Ak je operand vo výraze zreťazenia reťazcov prázdny alebo Null, VBA interpretuje tento operand ako reťazec s nulovou dĺžkou (reťazec, ktorý neobsahuje žiadne znaky). Poznámka! Symbol (&) operácie zreťazenia musí byť oddelený medzerou od názvu premennej, pretože V opačnom prípade môže VBA interpretovať znak ako dlhý znak definície typu. Na zreťazenie reťazcov môžete použiť aj operátor (+). Tento operátor má rovnakú syntax a požiadavky ako operátor (&). Pochopte však, že vo VBA je hlavným účelom operátora (+) aritmetické sčítanie. Preto, aby sa predišlo nejednoznačnosti pri čítaní programového kódu, dôrazne sa odporúča použiť na zreťazenie reťazcov operátor (&). Mnohé výrazy v programovom kóde sú zložité (zložené), t.j. pozostávajú z dvoch alebo viacerých výrazov. VBA sa pri vyhodnocovaní zložitých výrazov riadi týmito pravidlami:Porovnanie reťazcov
Porovnanie binárnych a textových reťazcov
Reťazenie reťazcov
Operátor zreťazenia (&)
Operátor sčítania v zreťazení reťazcov
Operačné priority
Operátor