Määrityslauseeseen on VBA toteamus, joka osoittaa tuloksena lauseke muuttujan tai esine. Excelin ohjejärjestelmä määrittelee termin lauseke muodossa
"… avainsanojen, operaattoreiden, muuttujien ja vakioiden yhdistelmä, joka tuottaa merkkijonon, luvun tai objektin. Lauseketta voidaan käyttää laskutoimituksen suorittamiseen, merkkien manipulointiin tai tietojen testaamiseen."
Suuri osa työstäsi VBA:ssa liittyy lausekkeiden kehittämiseen (ja virheenkorjaukseen). Jos osaat luoda kaavoja Excelissä, sinulla ei ole ongelmia lausekkeiden luomisessa. Laskentataulukon kaavan avulla Excel näyttää tuloksen solussa. VBA-lauseke sen sijaan voidaan määrittää muuttujalle.
Tehtävälauseesimerkkejä
Seuraavissa toimeksiantolauseesimerkeissä lausekkeet ovat yhtäläisyysmerkin oikealla puolella:
x = 1
x = x + 1
x = (y * 2) / (z * 2)
Asunnon hinta = 375 000
FileOpen = tosi
Alue ("TheYear"). Arvo = 2016
Ilmaisut voivat olla niin monimutkaisia kuin haluat niiden olevan; käytä rivin jatkomerkkiä (välilyöntiä ja alaviivaa), jotta pitkiä lausekkeita on helpompi lukea.
Lausekkeet käyttävät usein funktioita: VBA:n sisäänrakennettuja toimintoja, Excelin laskentataulukkofunktioita tai VBA:n avulla kehitettyjä toimintoja.
Siitä yhtäläisyysmerkistä
Kuten edellisestä esimerkistä näet, VBA käyttää yhtäläisyysmerkkiä määritysoperaattorina. Olet luultavasti tottunut käyttämään yhtäläisyysmerkkiä tasa-arvon matemaattisena symbolina. Siksi seuraavanlainen tehtävälause voi saada sinut kohottamaan kulmakarvojasi:
z = z + 1
Missä hullussa universumissa z on yhtä kuin itseään plus 1? Vastaus: Ei tunnettua universumia. Tässä tapauksessa osoituskäsky (suoritettuna) kasvattaa z:n arvoa 1:llä. Joten jos z on 12, käskyn suorittaminen tekee z:stä yhtä kuin 13. Muista vain, että tehtävässä käytetään yhtäläisyysmerkkiä operaattorina, ei symbolina. tasa-arvosta.
Sujuvat operaattorit
Operaattoreilla on tärkeä rooli VBA:ssa. Yhtävyysmerkkioperaattorin lisäksi VBA tarjoaa useita operaattoreita. Näiden pitäisi olla sinulle tuttuja, koska ne ovat samoja operaattoreita, joita käytetään laskentataulukoiden kaavoissa (paitsi Mod-operaattori).
Toiminto |
Käyttäjän symboli |
Lisäys |
+ |
Kertominen |
* |
Division |
/ |
Vähennyslasku |
– |
Eksponentointi |
^ |
Merkkijonojen ketjutus |
& |
Kokonaislukujako (tulos on aina kokonaisluku) |
|
Modulo-aritmetiikka (palauttaa jakooperaation loppuosan
) |
Mod |
Kun kirjoitat Excel-kaavaa, teet moduloaritmetiikkaa käyttämällä MOD-funktiota. Esimerkiksi seuraava kaava palauttaa luvun 2 (jäännös, kun jaat 12:lla 5:llä):
=MOD(12;5)
VBA:ssa Mod-operaattoria käytetään näin (ja z:n arvo on 2):
z = 12 Mod 5
Termi ketjuttaminen tarkoittaa, että ohjelmoijat puhuvat "liittymisestä yhteen". Jos siis ketjutat merkkijonoja, yhdistät merkkijonoja uudeksi ja parannelliseksi merkkijonoksi.
VBA tarjoaa myös täyden joukon loogisia operaattoreita. Näistä yleisimmin käytettyjä ovat Not, And ja Or.
Operaattori |
Mitä se tekee |
Ei |
Suorittaa lausekkeen loogisen negation |
Ja |
Suorittaa loogisen konjunktion kahdelle lausekkeelle |
Tai |
Suorittaa loogisen disjunktion kahdelle lausekkeelle |
Xor |
Suorittaa loogisen poissulkemisen kahdelle lausekkeelle |
Eqv |
Suorittaa loogisen ekvivalenssin kahdelle lausekkeelle |
Imp |
Suorittaa loogisen vaikutuksen kahdelle lausekkeelle |
Operaattoreiden tärkeysjärjestys VBA:ssa on täsmälleen sama kuin Excel-kaavoissa. Eksponenttiolla on korkein etusija. Kerto- ja jakolasku tulevat seuraavaksi, sitten yhteen- ja vähennyslasku. Voit käyttää sulkeita muuttaaksesi luonnollista tärkeysjärjestystä, jolloin suluissa olevat asiat tulevat ennen operaattoria. Katso tämä koodi:
x = 3
y = 2
z = x + 5 * y
Kun edellinen koodi suoritetaan, mikä on z:n arvo? Jos vastasit 13, saat kultaisen tähden, joka osoittaa, että ymmärrät operaattorin ensisijaisuuden käsitteen. Jos vastasit 16, lue tämä: Kertolasku (5 * y) suoritetaan ensin ja tulos lisätään x:ään.
Monet ohjelmoijat käyttävät sulkuja, vaikka niitä ei vaadittaisi. Esimerkiksi tosielämässä tuo viimeinen tehtävälause voitaisiin kirjoittaa näin:
z = x + (5 * y)
Älä ujostele käyttää sulkuja, vaikka niitä ei vaadittaisi – varsinkin jos koodisi on helpompi ymmärtää. VBA ei välitä, jos käytät ylimääräisiä sulkeita.