Vba logično oz. Operatorji VBA in vgrajene funkcije. Nepravilen prenos Pravilen prenos
Ime parametra | Pomen |
Tema članka: | Operatorji VBA |
Rubrika (tematska kategorija) | Programiranje |
VBA je operaterski jezik. To pomeni, da njeni programi (postopki ali funkcije) predstavljajo zaporedja stavkov.
V jeziku VBA lahko razlikujemo naslednje skupine operaterji:
1. deklarativni operatorji, namenjeni opisovanju objektov, s katerimi program deluje (vrste spremenljivk, konstant in nizov itd.),
2. izjave o komentarjih,
3. operatorji za dodeljevanje in spreminjanje vrednosti objektov,
4. operatorji, ki nadzorujejo potek izračunov (pogojni, ciklični, prehodni).
IN ta tečaj Obravnavani bodo osnovni operatorji, nekateri, na primer ciklični, bodo predstavljeni v treh vrstah, vendar naj učenci obvladajo le enega, kot najbolj razumljivega za uporabo.
Operater komentarja
Komentarji ne vplivajo na izvajanje programa, vendar so potrebni za razumevanje algoritma. Ker se programi večkrat posodabljajo, je ključnega pomena uporaba komentarjev, ki vam pomagajo zapomniti algoritem in ga pravilno spremeniti.
Vsaka vrstica besedila programa se lahko konča s komentarjem. Komentar v VBA se začne z apostrofom (") in vključuje poljubno besedilo na desni strani vrstice.
npr.
Teža= teža+z "Vrednost povečanja teže=teža*cena "Nova cena
Operator dodelitve
Operatorji dodelitve so glavno sredstvo za spreminjanje stanja programa (vrednosti spremenljivk). Je konstrukcija, ki povezuje znak = med spremenljivko (leva stran) in izrazom (desna stran). Izraz je sestavljen iz operandov (imena spremenljivk, konstant, imen standardnih funkcij) in simbolov operacij (aritmetične, logične, nizovne, primerjalne). Pomen tega operatorja je, da je levi strani dodeljena vrednost desne strani.
Kontrolne izjave
Niz kontrolnih stavkov VBA ustreza strukturiran jezik programiranje. IN ta komplet vključeno pogojni stavki in stavki zanke, ki vam omogoča zanesljivo in učinkovito organizacijo procesa izračuna.
Pogojni stavek If Then Else End If
To je pogosto uporabljen operator za nadzor izračuna v programskih jezikih, ki vam omogoča izbiro in izvajanje dejanj na podlagi resničnosti določenega pogoja.
Operatorji VBA - pojem in vrste. Razvrstitev in značilnosti kategorije "Operatorji VBA" 2017, 2018.
Ta kategorija Številčnice v TRIZ-u je predstavljena kot »načelo št. 34, zavrženje in regeneracija delov: a) Del predmeta, ki je izpolnil svoj namen ali je postal nepotreben, je treba zavreči (raztopiti, izhlapeti itd.) ali spremeniti. neposredno med delom. b) ... .
riž. 12.1 Postavljeni objekti na obrazcu 6. Z aktiviranjem vsakega objekta posebej na obrazcu nastavimo njegovo lastnost v oknu lastnosti (Lastnosti, slika 12.2). Tako je ustvarjen vmesnik (slika 12.3). riž. 12.3. Projektni vmesnik (z... .
Sestavljeni operator. Strukturni operatorji Operator klica postopkov Operator brezpogojnega skoka Operator brezpogojnega skoka omogoča spreminjanje vrstnega reda izvajanja... .
Včasih se pri reševanju problemov pojavi situacija, ko lahko operatorji v vejah vsebujejo druge pogojne operatorje. Ti se imenujejo sestavljeni operatorji. Še več, število vlaganj ali, kot tudi pravijo, stopnje vlaganj je lahko... .
Visual basic For Application (VBA) je kombinacija enega najpreprostejših programskih jezikov in vseh računalniških zmogljivosti Excelove preglednice. Z uporabo VBA lahko preprosto in hitro ustvarite različne aplikacije, tudi če niste strokovnjak na tem področju...
Kratke teoretične informacije
1. Sintaksa in semantika programskega jezika VBA
Sintaksa programskega jezika je niz pravil, ki opisujejo kombinacije abecednih znakov, ki veljajo za pravilno strukturiran program (dokument) ali njegov fragment.
Osnovna sintaktična načela tega jezika so naslednja:
- VBA ne razlikuje med velikimi in malimi črkami;
- če želite kodo komentirati do konca vrstice, uporabite enojni narekovaj(") ali ukaz REM;
- vrednosti znakov morajo biti v dvojnih narekovajih (");
- največja dolžina katerega koli imena v VBA (spremenljivke, konstante, procedure) je 255 znakov;
- začetek novega izpiska - prenos na nova vrstica(podpičje, kot v C, Java, JavaScript, se za to ne uporablja);
- omejitve glede največja dolžina ni vrstice (čeprav je v urejevalniku samo 308 znakov v vrstici). Več stavkov v isti vrstici je ločenih z dvopičjem:
MsgBox "Check 1" : MsgBox "Check 2" - Za lažje branje lahko več fizičnih vrstic združite v eno logično s presledkom in podčrtajem za njim:
MsgBox "Sporočilo uporabniku" _
&vUporabniškoIme
Semantika jezika je pomenski pomen besed. V programiranju - začetni semantični pomen operatorjev, osnovne jezikovne konstrukcije itd.
Operater je najmanjša enota kode VBA, ki jo je mogoče izvesti. Stavek lahko deklarira ali definira spremenljivko, nastavi možnost prevajalnika VBA ali izvede neko dejanje v programu.
Aritmetika V VBA je samo 7 operaterjev.
Štirje standardni: seštevanje (+), odštevanje (−), množenje (*), deljenje (/) in še trije:
- potenciranje (^). Na primer, 2^3 = 8;
- celoštevilsko deljenje (\). Prvo število deli z drugim, pri čemer zavrže (brez zaokroževanja) ulomek. Na primer, 5\2 = 2;
- deljenje po modulu (Mod). Deli prvo število z drugim in vrne le preostanek deljenega dela. Na primer, 5 Mod 2 = 1.
Operator dodelitve v VBA je znak enačaja. Lahko zapišete takole:
Naj bo nVar = 10
ali še preprosteje:
nVar = 10
Tukaj ne zamenjujte znaka enačaja z operatorjem enačaja. Zadnji izraz pomeni "nastavi vrednost nVar na 10" in če je vrstica videti takole: If (nVar = 10) , potem pomeni "če je vrednost nVar 10".
Operatorji primerjave v VBA jih je samo 8:
- enakost (=). Na primer Če (nVar = 10);
- večji od (>) in manjši od (10);
- večje ali enako (>=) in manjše ali enako (= 10);
- ni enako (). Na primer, If(nVar10);
- primerjava predmetov (I). Določa, ali se spremenljivke objekta nanašajo na isti objekt ali na različne. Na primer Če (obj1 je obj2);
- podobnost (Like). Primerja objekt niza z vzorcem in ugotovi, ali se vzorec ujema.
Operatorji primerjave se vedno vrnejo Prav(če trditev drži) oz False(če je trditev napačna).
Zelo pogosto pri preverjanju več pogojev uporabljajo logični operatorji:
- In - logični IN Oba pogoja morata biti resnična;
- Ali - logični ALI. Vsaj eden od pogojev mora biti izpolnjen;
- Ne – logična negacija. Vrne True, če je pogoj napačen;
- Xor je logična izjema. V izrazu E1 Xor E2 vrne True, če je samo E1 = True ali samo E2 = True, sicer False;
- Eqv - enakovrednost dveh izrazov, vrne True, če imata enako vrednost;
- Imp - implikacija, E1 Imp E2 vrne False, če E1 = True in E2 = False, drugače True.
Morate se spomniti približno In, Ali, Ne, se drugi logični operatorji redko uporabljajo.
Spremenljivke- To so vsebniki za shranjevanje spremenljivih podatkov. Skoraj noben program ne more brez njih. Za poenostavitev lahko spremenljivko primerjamo s številko v garderobi – garderobi daš nekaj podatkov, v odgovor pa dobiš številko. Ko te podatke ponovno potrebujete, "predstavite številko" in jo prejmete.
Vsaka spremenljivka ima ime. Spremenljivka je dostopna po imenu. Pravila za izbiro imen v VBA so enaka za številne elemente (spremenljivke, konstante, funkcije, procedure itd.):
- ime se mora začeti s črko;
- ne sme vsebovati presledkov ali ločil (izjema je podčrtaj);
- največja dolžina - 255 znakov;
- mora biti edinstven v trenutnem obsegu
- rezerviranih besed (tistih, ki so v oknu urejevalnika kode označene z modro) ni mogoče uporabiti.
Pri izdelavi programov VBA je priporočljivo določiti pravila, po katerih bodo objekti poimenovani – konvencija poimenovanja. Najpogosteje uporabljen je tako imenovani madžarski sporazum (v čast enemu od Microsoftovih programerjev, Charlesu Simonyiju, Madžaru po narodnosti):
- Ime spremenljivke se mora začeti s predpono, napisano z malimi črkami. Predpona označuje, kaj točno bo shranjeno v tej spremenljivki:
str (ali s) - niz, vrednost znaka;
fn (ali f) - funkcija;
podpostopek;
c (ali so vse črke imena velike) - konstantna(vsebnik za shranjevanje podatkov, ki se za razliko od spremenljivk ne spreminjajo med izvajanjem programa VBA);
b - Boolean, logična vrednost (True ali False);
d - datum;
obj (ali o) - referenca predmeta;
n - številčna vrednost; - imena funkcij, metod in vsaka beseda v zloženki se mora začeti z veliko začetnico:
MsgBox objMyDocument.Name
Sub CheckDateSub()
Vrsta podatkov veljajo za najbolj temeljne koncepte katerega koli programskega jezika. Podatkovni tip definira nabor veljavnih vrednosti, ki jih lahko sprejme vrednost (spremenljivka ali konstanta), in nabor dejanj, ki jih je mogoče izvesti na tej vrednosti.
2. Osnovni podatkovni tipi VBA
VBA ponuja naslednje vrste podatkov:
- številčno:
Bajt- celo število od 0 do 255, potrebno za shranjevanje 1 bajt spomin;
Celo število- celo število od −32.768 do 32.767, 2 bajta ;
dolga- veliko celo število od −2 147 483 648 do 2 147 483 647, 4 bajti ;
Valuta(denarni) - velik decimalno število z 19 položaji, vključno s 4 decimalnimi mesti
(od –922337203685477.5808 do 922337203685477.5807), 4 bajti,
uporablja se za shranjevanje števil, kadar je točnost izjemno pomembna, kar se zgodi pri računanju z denarnimi enotami;
decimalno- še večje decimalno število z 29 mesti (za decimalno vejico lahko uporabite od 0 do 28 mest), 8 bajtov;
Samski in Dvojno- vrednosti s plavajočo vejico ( 4 in 8 bajtov)
(od -3,402823·10 38 do -1,401298·10 -45 za negativne vrednosti in
od 1,401298·10 -45 do 3,402823·10 38 za pozitivne vrednosti za enojno in
od -1,79769313486232·10 308 do -4,94065645841247·10 -324 za negativne vrednosti in
od 4,94065645841247·10 -324 do 1,79769313486232·10 308 za pozitivne vrednosti za Double); - vrvica( Vrvica spremenljiva dolžina (do približno 2 milijardi znakov) in fiksna dolžina (do približno 65.400 znakov));
- datum in čas ( Datum- od 01.01.100 do 31.12.9999), 8 bajtov;
- logično ( Boolean- lahko shrani le vrednosti True in False), 2 bajta;
- objekt ( Objekt- shrani sklic na kateri koli predmet v pomnilnik);
- Različica- posebna podatkovna vrsta, ki lahko hrani katerokoli vrsto podatkov, 16 bajtov +1
- matematični, izvajajo se na številkah, njihov rezultat so števila;
- relacijske operacije se lahko uporabljajo ne le za števila, njihov rezultat je vrednost logičnega tipa;
- logično, uporabljeno v logični izrazi njihov rezultat pa so logične vrednosti.
3. Prednostne naloge delovanja
Prednostna naloga | Delovanje |
1 2 3 4 5 6 7 8 9 10 11 12 |
Klic funkcije in oklepaji ^ - (sprememba predznaka) *, / \ Mod +, – >, <, >=, <=, <>, = ne in oz Xor |
4. Matematične funkcije
funkcija | Povratna vrednost | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
trebušne mišice (<число>) | Modul (absolutna vrednost) števila | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Atn(<число>) | Arktangens | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cos(<число>) | Kosinus | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Exp (<число>) | Eksponent, tj. rezultat dviga osnove naravnega logaritma na določeno potenco | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dnevnik (<число>) | Naravni logaritem | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rnd (<число>) | Naključno število iz intervala [, Naslov]
Argumenti: Sporočilo - zahtevan argument, ki določa informacijsko sporočilo, ki bo prikazano v oknu. Lahko je sestavljen iz več besedilnih vrstic, ki so združene z znakom & . Uporaba v tem argumentu Chr (13) pri izpisu informacij vodi v novo vrstico. Gumbi - vrednost tega argumenta določa kategorije gumbov, ki se prikažejo v oknu. Vrednost argumenta gumb tudi določa, ali se v oknu pojavi katera koli ikona. Če ne določite, kateri gumbi naj se prikažejo v sporočilnem polju, se uporabi privzeta vrednost, ki ustreza gumbu V redu. V tabeli 3.1 prikazuje možne kombinacije gumbov in ikon v oknu s sporočili. Naslov - nastavi naslov okna. funkcija MsgBox vrne vrednost Integer, ki označuje, kateri gumb je bil kliknjen v pogovornem oknu. Tabela 3.1. Veljavne vrednosti spremenljivke gumba
Na primer. Prikažite sporočilo o trenutnem datumu. MsgBox "Danes na koledarju" & Datum, "Pozor" Posledično se prikaže naslednje okno (slika 3.1). Po kliku V redu se bo okno s sporočilom zaprlo in izvajanje programa se bo nadaljevalo od stavka takoj po klicu MsgBox. 3.3.2. funkcija InputBox funkcija InputBox vnaša spremenljive vrednosti z uporabo vnosnega okna in ima naslednjo sintakso: Ime_spremenljivke = InputBox(Sporočilo[, Naslov] ) Argumenti: Sporočilo - zahtevan argument. V okno nastavi informativno sporočilo, ki običajno razloži pomen vnesene vrednosti. Naslov - nastavi naslov okna. Na primer, Vnesite vrednost spremenljivke N s tipkovnico in zagotovite privzeto vrednost 10. Če želite to narediti, lahko uporabite naslednji operator: N = InputBox("Vnesite N", "Vnos vnosa",10) Posledično se prikaže naslednje okno za vnos vrednosti spremenljivke N (slika 3.2). Če je privzeta vrednost sprejemljiva za uporabnika, se po kliku na gumb V redu vnosno okno zapre, spremenljivka N bo nastavljena na 10 in izvajanje programa se bo nadaljevalo od stavka takoj za klicem InputBox. Če privzeta vrednost ne ustreza uporabniku, morate pred klikom na gumb V redu vnesti želeno vrednost za spremenljivko N. 3 .4. Pogojni stavek IF Za izvedbo razvejanega računalniškega procesa v VBA se uporablja operator Če ... Potem ... Drugače, ki je najenostavnejša oblika preverjanja stanja. Ima naslednjo sintakso: čePOGOJPotemOPERATOR_1ElseOPERATOR_2 OPERATOR_1 izvršiti, če POGOJ res, drugače izvršeno OPERATOR_2. V tem primeru je stavek If...Then...Else zapisan v eni vrstici. POGOJ je logični izraz. Rezultat izraza je vedno logični. Izraz je lahko preprost ali zapleten. Pri pisanju enostavnih pogojev lahko uporabimo vse možne relacijske operacije, navedene v tabeli. 3.2. Tabela3 .2. Logične relacije
Zapletene pogoje tvorimo iz preprostih z uporabo logičnih operacij in oklepajev. Seznam logičnih operacij je podan v tabeli. 3.3. Tabela3 .3. Logične operacije
V pogojnem stavku je dovoljeno uporabiti blok stavkov namesto katerega koli stavka. V tem primeru je pogojni operator videti takole: čePOGOJPotem BLOCK_OPERATORS_1 BLOCK_OPERATORS_2 Konec If Pogojni stavek lahko preizkusi več pogojev. V tem primeru je pogojni operator videti takole: čePOGOJ_1Potem BLOCK_OPERATORS_1 ElseIfPOGOJ_2Potem BLOCK_OPERATORS_2 drugače Konecče Primer 1. Napišite del programa za algoritem na sl. 3.3. Primer 2. Napišite del programa za algoritem na sl. 3.4. 3.5. Izberite operator velikih in malih črk Operator Select Case je uporaben, ko morate izvesti različna dejanja glede na vrednost nekega izraza, ki ima končen niz veljavnih vrednosti. Povezan je tudi s pogojnimi stavki, vendar ima drugačno obliko: Izberite PrimerIZRAZ NA PREIZKUSU OvitekVALUES_1 OPERATORS_1 OvitekVREDNOTE_ 2 OPERATERJI_ 2 . . . OvitekVALUES_N OPERATERJI_N [ Ovitekdrugače DRUGAČE_ OPERATERJI] Konec Izberite IZRAZ NA PREIZKUSU je lahko katere koli skalarne vrste, razen realne. VREDNOTE sestavljeni iz poljubnega števila vrednosti ali obsegov, ločenih z vejicami. Vrsta VREDNOTE mora ustrezati vrsti TEST_EXPRESSION. Najprej se izračuna IZRAZ NA PREIZKUSU. Če se njegova vrednost ujema z eno od vrednosti VALUES_I, potem bodo izpolnjeni OPERATORS_I Konec Izberite. Če se njegova vrednost ne ujema z nobeno od vrednosti VALUES_I, potem bodo izpolnjeni ELSE_OPERATORS in nadzor se prenese na operaterja, ki stoji za njim Konec Izberite Na primer. Napišite del programa za algoritem na sl. 3.5, ki določa vrednost spremenljivke S v odvisnosti od vrednosti spremenljivke n. 3.6. Stavki zanke Za izvedbo cikličnega računalniškega procesa, to je ponavljajoče se izvajanje enega ali več operatorjev, se uporablja operator zanke Za ... Naprej, ki ima naslednjo sintakso: ZaŠTEVEC=START_VREDNOSTToCON_VALUEkorakKORAK OPERATOR_BLOK
OPERATOR_BLOK NaslednjiŠTEVEC Zanka For...Next kroži po vrednostih spremenljivke ŠTEVEC, ki je parameter zanke, od začetne do končne vrednosti z navedenim korakom spreminjanja. To zagotavlja, da se blok stavkov telesa zanke izvede z vsako novo vrednostjo števca. če korakKORAK v načrtu ni, se privzeto predpostavlja, da je korak enak 1. Glede na operaterja Izhod za lahko pred tem zapustite stavek zanke ŠTEVEC doseže zadnjo vrednost.* Za ponavljanje predmetov iz skupine podobnih predmetov, na primer celic iz obsega ali elementov polja, je priročno uporabiti operator zanke Za…Vsak ... Naslednji. Za vsakogarElementnotriskupina BLOKIRAJ_ OPERATERJI
OPERATOR_BLOK NaslednjiElement V VBA se drugi operaterji zank uporabljajo za organiziranje zank z neznanim številom ponovitev: zanke s predpogojem - narediMedtem … Zanka, naredidokler … Zanka; zanke s postpogojem - naredi … ZankaMedtem, naredi … Zankadokler. Spodaj je sintaksa teh stavkov zanke: "Zanka s predpogojemnaredi Medtem … Zanka Naredi MedtemPOGOJ OPERATOR_BLOK
OPERATOR_BLOK "Zanka s predpogojemnaredi dokler … Zanka naredidoklerPOGOJ OPERATOR_BLOK
OPERATOR_BLOK "Zanka s postpogojemnaredi … Zanka Medtem BLOKIRAJ_ OPERATERJI
OPERATOR_BLOK Zanka MedtemPOGOJ "Zanka s postpogojemnaredi … Zanka do BLOKIRAJ_ OPERATERJI
OPERATOR_BLOK Zanka doPOGOJ Operater narediWhile...Loop zagotavlja, da se blok stavkov večkrat ponovi, dokler POGOJ se opazuje in operater Druge novice Jezikovna navodila (ali operaterji)– to so programske enote, ki izvajajo neka dejanja ali opisujejo podatke. Izjava vsebuje eno ali več ključnih besed in po možnosti parametre. Več stavkov, ki se nahajajo v isti programski vrstici, je med seboj ločenih z dvopičjem. Če je stavek predolg, ga lahko razdelite na več vrstic z uporabo podčrtaja _, da ga razdelite. O p erator naloge Operator dodelitve se uporablja za dodelitev nove vrednosti spremenljivki med izvajanjem programa. Znak dodelitve "=". Na primer, operater: x = Sqr(5 + Tan(1,8)^2) spremenljivki x dodeli vrednost izraza. Kot rezultat izračuna izraza, zapisanega na desni strani, dobimo realno število. Toda vrednost, ki bo dodeljena spremenljivki x, je odvisna od tega, kako je bil deklariran tip te spremenljivke. Torej, če je spremenljivka x tipa Single, ji bo dodeljen rezultat 4,834464, če je Double, potem 4,83446368725481, in če je Integer, potem 5. Podatkovni tip spremenljivke x mora biti združljiv s podatkovnim tipom tega izraza. Poleg implicitne pretvorbe iz ene vrste v drugo med dodelitvijo Visual Basic omogoča pretvorbo vrst s pomočjo funkcij. Na primer funkcija CDbl pretvori podatke v dvojni tip, CInt– na vrsto Integer, Clng– za dolg tip, CSng– na enojni tip, CStr– za tipkanje String itd. Funkciji CInt in Clng zaokrožita rezultat. Poleg tega, če je delni del števila 0,5, se zaokroži na najbližje sodo število. Operator dodelitve vam omogoča ne le dodelitev vrednosti spremenljivki, temveč tudi nastavitev vrednosti lastnosti objektov VBA. Na primer, operater Vrstice("1:1").Pisava. Krepko = res Naredi pisavo v prvi vrstici delovnega lista krepko. PRELOM VRSTICE Kombinacija<Пробел> + <Знак подчеркивания>na koncu vrstice zagotavlja, da je naslednja vrstica nadaljevanje prejšnje. Hkrati se moramo spomniti, da: § Konstant nizov ne morete prekiniti z zavijanjem § Dovoljeno je največ sedem nadaljevanj iste vrstice § Sama vrstica ne sme vsebovati več kot 1024 znakov Primer. Nepravilen prenos Pravilen prenos Vrstica = "Visual Basic za _ Vrstica = "Visual Basic" _ Aplikacije" & "za aplikacije" KOMENTARJI Besedilo, ki sledi simbolu (") v programu do konca vrstice, prevajalnik prezre in je komentar. Komentarji se uporabljajo za dodajanje razlag in opisov v program. Komentarji so uporabni pri odpravljanju napak v programu: omogočajo da med odpravljanjem napak začasno onemogočite programske vrstice. Pogojno operater Pogojni stavek izvede določena navodila (stavke) glede na vrednost izraza pogoja. Blokovni diagram za preverjanje stanja izgleda takole: riž. 1. Razvejanje je lahko nepopolno (ta struktura se imenuje tudi obvod).
Oblika z malimi črkami če stanje Potem [ operatorji_če_true] Algoritem, predstavljen na sl. 1, z malimi črkami bo zapisano kot če stanje Potem operatorji_če_true drugače operatorji_če_napačno Slika 2 ustreza vnosu če stanje Potem operatorji_če_true Slika 3 ustreza vnosu če stanje Potem pa še operatorji_če_napačno Blokiraj obrazec če stanje-1 Potem [operatorji_če pogoj–1_true] [operatorji_če_vsi_pogoji_false]] Pogoji, navedeni v delih If in ElseIf, so relacijski izrazi ali logični izrazi. Ko je eden od pogojev izpolnjen, se stavki, ki sledijo njegovi ustrezni ključni besedi Then, izvedejo, preostali stavki pa se prezrejo (to pomeni, da se ne izvedejo nobeni nadaljnji preizkusi in nadzor se prenese na stavek, ki sledi End If). Če nobeden od logičnih pogojev ne drži, potem operatorji_če_vsi_prejšnji_pogoji_false ali, če je ta del izpuščen, se nadzor prenese v programsko vrstico, ki sledi pogojnemu stavku. Bločna oblika stavka If je boljša, če: Ko je pogoj izpolnjen ali neizpolnjen, se izvede več stavkov (v tem primeru se lahko uporabi tudi vrstična oblika, vendar bo vrstica predolga in program manj jasen); Zaporedoma se preveri več pogojev in ko je izpolnjen naslednji pogoj, ni primerno preverjati naslednjih pogojev (zato se uporablja ključna beseda ElseIf). Primer Veleprodajnim kupcem podjetje nudi popuste. Na podlagi znanega obsega naročila je treba določiti njegove stroške. Za izračun stroškov naročila uporabimo funkcijo: Javna funkcija Order_Cost(količina tako dolgo) kot dvojna Če Količina<= 999 Then Strošek_naročila = količina * 5 ElseIf Količina<= 1999 Then Stroški_naročila = Količina * 4.8 Strošek_naročila = količina * 4,75 V tem primeru je bilo mogoče uporabiti obliko operatorja IF z malimi črkami: Javna funkcija Order_Cost1 (količina tako dolgo) kot dvojna Če Količina<= 999 Then Стоимость_заказа1 = Количество * 5 Če je količina >= 1000 in količina<= 1999 Then Стоимость_ заказа1 = Количество * 4.8 Če je količina >= 2000, potem je strošek_naročila1 = količina * 4,75 Če ne upoštevamo slabosti, da so vrstice dolge in se za vsak obseg naročila vsa preverjanja izvajajo zaporedno (prvi postopek deluje hitreje pri majhnih količinah naročil), potem je program napisan pravilno in morda še bolj pregleden. Vendar pa je mogoče navesti primere, ko, če je eden od pogojev izpolnjen (ali ni izpolnjen), drugih preprosto ni mogoče preveriti. Na primer, je treba nekatere operatorje izvesti, ko so pogoji izpolnjeni skupaj: http://po-teme.com.ua/images/adIIIin/image014_e652e49476c6f0eb9cf40b68cc090828.gif" alt="" width="56" height="27 src="> Če za preglede uporabite operator Če je x>0 in y potem, če je x negativen, bo pri klicu funkcije sqr prišlo do napake (koren je negativno število). Tej napaki se je mogoče izogniti z uporabo zasnove Če je x > 0, potem Če je y< Sqr(x) Then Če je v zadnji obliki vnosa ključna beseda Else, se ta nanaša na zadnji stavek If. Izbirni operater Izberite Primer izražanje [navodila_drugače]] Parameter izraza je poljuben številski ali nizovni izraz. Namesto vrednotenja logičnega pogoja se vrednost izraza primerja z vsako od vrednosti, ki jih določa parameter seznam_izrazov-n. Vrednosti za primerjavo so vključene v seznam_izrazov-n, lahko podate v obliki: - vrednote; – obseg vrednosti v obrazcu začetna_vrednost Za končna_vrednost; – primerjalni izrazi v obliki Is vrednost operatorja_primerjanja; – seznam katerekoli izmed navedenih vrst izrazov (ločilo – vejica). Navodilo lahko vsebuje poljubno število blokov Case. Če nobeden od pogojev ni resničen, se izvedejo stavke v bloku Case Else. Na primer, če je pogoj rezultat nad tri, potem lahko ta pogoj zapišemo: Primer 4, 5 ali Primer je >3 ali Primer je >= 4 ali Primer 4 do 5. Opomba. Ključna beseda Ni ga treba vnesti; dodano bo samodejno. Primer Zgornji primer z znižano ceno z uporabo konstrukcije Select Case je mogoče rešiti na naslednji način: Javna funkcija Order_Cost2 (količina tako dolgo) kot dvojna Izberite količino zaboja Stroški_naročila2 = količina * 5 Zadeva 1000 do 1999 Stroški_naročila2 = Količina * 4.8 Primer je >= 2000 Strošek_naročila2 = količina * 4,75 Program VBA je zaporedje stavkov. Pri pisanju programov je treba upoštevati številne konvencije. Tako lahko v eno vrstico postavimo več izjav. Med stavki v isti vrstici je postavljeno dvopičje. Vsako vrstico lahko razdelite na dve tako, da na koncu prve postavite znaka »Presledek« + »Podčrtaj« (_), v tem primeru se bo druga vrstica štela za nadaljevanje prve. Komentarji se uporabljajo za lažje branje programa. Komentarje v VBA lahko vnesete na dva načina: z uporabo apostrofa (‘), ki ga lahko postavite kamor koli v vrstico, in z uporabo rezervirane besede Rem namesto apostrofa. 1. Dim operater je namenjen deklariranju tipov spremenljivk. 1. Zatemni A kot celo število – spremenljivka A je deklarirana kot celo število, tj. shranil bo samo celoštevilske vrednosti
. 2.
Dim D kot datum – spremenljivka D je deklarirana za shranjevanje datumov.
3.
Zatemni priimek, ime kot niz – spremenljivke so deklarirane. Priimek in Ime, namenjeno shranjevanju besedila.
4.
Dim B(12) kot celo število – deklarirana je enodimenzionalna matrika (vektor), sestavljena iz 12 celih števil, privzeto pa bo prvi element matrike B(0), zadnji pa B(12).
5.
Dim B(3,3) kot enojni – deklarirana je dvodimenzionalna 3x3 matrika (matrika), sestavljena iz realnih števil.
Če tip spremenljivke ni določen, je privzeti tip Variant. Vendar pa določitev posebne vrste spremenljivke naredi program bolj zanesljiv in pospeši njegovo delovanje, ker VBA ni treba izgubljati časa s prepoznavanjem neprijavljene spremenljivke ob vsakem dostopu do nje. Če velikost matrike M ni vnaprej znana in je določena med programom, potem pri opisu matrike število elementov ni navedeno in je matrika definirana na naslednji način: Dim M() kot celo število Ko določite število elementov polja, na primer N, morate napisati operator 2. Operator dodelitve je namenjen prirejanju vrednosti spremenljivki. Sintaksa: Spremenljivka (ali lastnost objekta) = izraz. 1. a=5 – spremenljivki A dodeli vrednost 5
; 2. b=“Upravitelj” – spremenljivka b dodeliti kar pomeni "upravitelj"; · Naslov=Sheets("Organizations").Cells(2,2) – spremenljivki Naslov dodelite vsebino celice B2, ki se nahaja na listu Organizacije v trenutnem delovnem zvezku;
Last Name=UserForm1.TextBox1.Text – spremenljivka Priimek je dodeljen vsebini polja TextBox1 uporabniškega obrazca UserForm1.
o Z/Končaj z izjavo programerja prihrani pred velikim številom ponavljanj imena istega objekta. Sintaksa: S predmetom operater1 operater2 operaterN Na primer, namesto zaporedja izjav UserForm1.TextBox1.Text = Datum UserForm1.TextBox2.Text = “ “ UserForm1.ComboBox1.Text = “ “ lahko zapišemo takole TextBox1.Text = Datum .
TextBox2.Text = “ “ .
ComboBox1.Text = “ “ REM Na listu Sheet1 v stolpcu A, začenši z drugo vrstico, so zapisane "tarife zaposlenih". Izpolnite kombinirano polje ComboBox1 v uporabniškem obrazcu UserForm1 'Prva vrstica programa - na listu Sheet1 v stolpcu A' se prešteje število izpolnjenih celic, rezultat 'je dodeljen spremenljivki N N=Application.CountA(Sheets(“Sheet1”).Range(“A:A”)). D=”A2:A”&Cint(N) Listi(“Sheet1”).Range(D).Name=”Tarife” TextBox1.Text = Datum .
TextBox2.Text = “ “ .
ComboBox1.Text = “ “ .
ComboBox1.Rowsource = “Tarife” 1. Pogojni stavek If/Then/Else– vam omogoča, da preverite določen pogoj in glede na rezultate preverjanja izvedete eno ali drugo dejanje Sintaksa: če stanje Potem operaterji1 [ drugače operaterji2] Če je pogoj resničen, se izvedejo stavki1, sicer pa se izvedejo stavki2. Možna je tudi uporaba kompleksnega pogojnega operatorja, ki je zapisan kot blok: če stanje1 Potem operaterji1 ElseIf pogoj2 Potem operaterji2 operaterji3 Last Name=.TextBox1.Text If Last Name =”“ Then MsgBox”Niste vnesli priimka” REM Ob potrditvi potrditvenega polja številka 1 naročniku priznamo 5% popust ‘ Znesek – znesek denarja, ki ga plača stranka Stroški izdelka so shranjeni v spremenljivki Cost If UserForm1.CheckBox1.Value = True Potem Znesek=Cost-Cost*0,05 Drugače znesek=strošek 1) REM Predpostavimo, da je tarifa uveljavljena tarifa, čas pa opravljeni čas. Čas in tarifa se vneseta v vnosna polja 'v TextBox1 oziroma TextBox2. Plača se izračuna po formuli Tarifa*Čas. Napišimo program za prikaz obračunane plače v obrazcu. Oznaka4 – pripravljen napis za 'izpis vrednosti plače' If IsNumeric(TextBox1.Text)=True And _ IsNumeric(TextBox2.Text)=True Potem Tarifa=TextBox1.Text Time=TextBox2.Text Label4.Caption=Tarifa*Čas V prvem primeru delamo z uporabniškim obrazcem številka ena. Spremenljivka Priimek dodeljena je vsebina vnosnega polja številka ena. Nato preveri, ali je bilo kaj vneseno v polje za vnos (ali je spremenljivka prazna Priimek). Če spremenljivka Priimek prazno, se na zaslonu prikaže okno s sporočilom. V drugem primeru so prve vrstice, ki se začnejo z besedo REM in apostrofi, komentarji, ki pojasnjujejo namen spremenljivk. Pogojni operater določi znesek, ki ga plača stranka. Tretji primer preveri, ali so v vnosna polja vpisana števila. Če so številke vnesene v dve polji, se spremenljivkam dodelijo vrednosti vnosnih polj, oznaki pa se dodeli vrednost rezultata množenja tarife s časom. 1) Operator brezpogojnega skoka Pojdi do je namenjen podajanju prehoda na določeno vrstico znotraj programa. Sintaksa: Pojdi na niz Zahtevani argument Niz je lahko katera koli oznaka vrstice ali številka vrstice. If IsNumeric(TextBox1.Text)=False Then GoTo Error Napaka: MsgBox »Napaka pri vnosu številk!« Zgornji primer preveri, ali je bila številka vnesena v vnosno polje ena. Če vnesena številka ni številka, se vrstica z oznako Napaka premakne in na zaslonu se prikaže sporočilo. 2) Operator zanke Za/Za/Naprej zasnovan za programiranje ponavljajočih se fragmentov, tj. za opis cikličnih algoritmov. Sintaksa: Za spremenljivka=M1 Za M2 [ korak M3] operaterji M1, M2, M3 – izrazi. Stavek zanke ponovi izvedbo skupine stavkov, medtem ko se spremenljivka (števec) spremeni iz začetne vrednosti M1 v končno vrednost M2 z navedenim korakom M3. Če korak ni naveden, se predpostavlja, da je 1. Priimek = Listi (“Zaposleni”). Celice (I,1) UserForm1.ComboBox1.AddItem Priimek V danem primeru se predpostavlja, da na listu »Zaposleni« prvi stolpec vsebuje imena zaposlenih, ki jih je treba vključiti na seznam kombiniranega polja številka ena uporabniškega obrazca številka ena. Algoritem delovanja programa: 1) Spremenljivki I je pripisana vrednost 2. 2) Spremenljivki Priimek je dodeljena vrednost celice A(I,1), ki se nahaja na listu »Zaposleni«. (Ko se zanka izvede prvič, je to celica A(2,1)) 3) Element iz spremenljivke Last Name je dodan na seznam kombiniranega polja ComboBox1. 4) Vrednosti spremenljivke I se doda 1 (če korak ni določen, se predpostavlja, da je enak 1). Izvede se preverjanje, ali je vrednost I presegla 10 (končna vrednost spremenljivke I, v primeru M3=10)? Če je vrednost I celo manjša ali enaka 10, se izvedejo koraki 2-4, sicer se cikel zaključi. Tako vam zgornji program omogoča, da seznam ComboBox1 napolnite s podatki. Osnovni algoritmi, uporabljeni pri reševanju Oglejmo si osnovne algoritme na naslednjem primeru. Pri izvajanju del po pogodbi so sodelovali zaposleni iz različnih oddelkov. V tabeli na listu »List1« so prikazani podatki o številu opravljenih ur posameznega zaposlenega (slika 8). Slika 8. Podatki o številu opravljenih ur zaposlenih v podjetju |