Muuttujilla on suuri rooli useimmissa kohtaamissasi Excel-makroissa. Voit ajatella muuttujia muistisäiliöinä, joita voit käyttää menettelyissäsi. On olemassa erityyppisiä muuttujia, joista jokaisen tehtävänä on säilyttää tietyntyyppistä dataa.
Seuraavassa on joitain yleisimmistä muuttujatyypeistä, joita näet:
-
Merkkijono: Sisältää tekstidataa
-
Kokonaisluku: Sisältää numeerista dataa välillä –32 768 - 32 767
-
Pitkä: Sisältää numeerista dataa välillä –2 147 483 648 - 2 147 483 647
-
Double: Sisältää liukulukunumerotiedot
-
Variantti: Sisältää kaikenlaista dataa
-
Boolen arvo: Sisältää binääritietoja, jotka palauttavat arvon tosi tai epätosi
-
Objekti: Sisältää objektin Excel-objektimallista
Kun luot muuttujan makroon, määrität muuttujan . Voit tehdä sen kirjoittamalla Dim (lyhenne sanoista ulottuvuus), sitten muuttujan nimen ja sitten tyypin. Esimerkiksi:
Himmeä MyText merkkijonona
Himmentää OmaNumber kokonaislukuna
Himmeä MyWorksheet työarkina
Kun olet luonut muuttujan, voit täyttää sen tiedoilla. Tässä on muutamia yksinkertaisia esimerkkejä siitä, kuinka voit luoda muuttujan ja antaa sille arvoja:
Himmeä MyText merkkijonona
MyText = Alue("A1").Arvo
Himmentää OmaNumber kokonaislukuna
OmaNumber = Alue("B1"). Arvo * 25
Himmennä MyObject laskentataulukona
Aseta MyWorksheet = Taulukot("Sheet1")
Muuttujille määrittämäsi arvot tulevat usein soluihisi tallennetuista tiedoista. Arvot voivat kuitenkin olla myös luomiasi tietoja. Kaikki riippuu käsillä olevasta tehtävästä. Tämä käsitys tulee selvemmäksi, kun käyt läpi tämän kirjan makroja.
Vaikka se on mahdollista luoda koodi, joka ei käytä muuttujia, tapaat monia esimerkkejä VBA-koodia missä muuttujat ovat työssä. Tähän on kaksi tärkeintä syytä.
Ensinnäkin Excel ei luonnostaan tiedä, mihin tietojasi käytetään. Se ei näe numeroita, symboleja tai kirjaimia. Se näkee vain tiedot. Kun määrität muuttujia tietyillä tietotyypeillä, autat Exceliä tietämään, kuinka sen tulee käsitellä tiettyjä tietoja, jotta makrosi tuottavat odotetut tulokset.
Toiseksi muuttujat auttavat tekemään koodistasi tehokkaamman ja helpommin ymmärrettävän. Oletetaan esimerkiksi, että sinulla on numero solussa A1, johon viittaat toistuvasti makrossasi. Voit hakea tämän numeron osoittamalla soluun A1 aina, kun tarvitset sitä:
Alamakro1()
Alue("B1").Arvo = Alue("A1").Arvo * 5
Alue("C1").Arvo = Alue("A1").Arvo * 10
Alue("D1").Arvo = Alue("A1").Arvo * 15
Lopeta ala
Tämä makro kuitenkin pakottaisi Excelin tuhlaamaan jaksoja, jotka tallentavat saman numeron muistiin aina, kun osoitat soluun A1. Lisäksi, jos sinun on muutettava työkirjaa siten, että kohdenumero ei ole solussa A1, vaan esimerkiksi solussa A2, sinun on muokattava koodiasi muuttamalla kaikki viittaukset A1:stä A2:ksi.
Parempi tapa on tallentaa numero soluun A1 vain kerran. Voit esimerkiksi tallentaa arvon soluun A1 kokonaislukumuuttujaan nimeltä myValue:
Sub With Variable()
Himmeä myValue kokonaislukuna
myArvo = Alue("A1").Arvo
Alue("C3").Arvo = myArvo * 5
Alue("D5").Arvo = myArvo * 10
Alue("E7").Arvo = myArvo * 15
Lopeta ala
Tämä lähestymistapa ei ainoastaan paranna koodisi tehokkuutta (varmistamalla, että Excel lukee solun A1 numeron vain kerran), vaan myös varmistaa, että sinun tarvitsee muokata vain yhtä riviä, jos työkirjan ulkoasu muuttuu.