Vaikka on tärkeää osata viitata objekteihin, et voi tehdä hyödyllistä Excel VBA -ohjelmointia yksinkertaisesti viittaamalla objektiin. Saavuttaaksesi jotain merkityksellistä, sinun on tehtävä toinen kahdesta asiasta:
Saatavilla olevien ominaisuuksien ja menetelmien avulla voit helposti hukkua. Muista vain, että sinun ei koskaan tarvitse käyttää useimpia käytettävissä olevia ominaisuuksia ja menetelmiä.
Objektin ominaisuudet
Jokaisella esineellä on ominaisuuksia. Voit ajatella ominaisuuksia attribuutteina, jotka kuvaavat objektia. Objektin ominaisuudet määräävät, miltä se näyttää, miten se käyttäytyy ja jopa onko se näkyvissä. VBA:n avulla voit tehdä kaksi asiaa kohteen ominaisuuksilla:
Esimerkiksi yksisoluisella Range-objektilla on ominaisuus nimeltä Arvo. Arvo-ominaisuus tallentaa solun sisältämän arvon. Voit kirjoittaa VBA-koodin näyttääksesi Arvo-ominaisuuden, tai voit kirjoittaa VBA-koodin asettaaksesi Arvo-ominaisuuden tietyn arvon. Seuraava makro käyttää VBA:n sisäänrakennettua MsgBox-toimintoa tuomaan esiin laatikon, joka näyttää arvon aktiivisen työkirjan Sheet1:n solussa A1:
Tämä viestiruutu näyttää Range-objektin Arvo-ominaisuuden.
Sub ShowValue()
Sisältö = Työarkit ("Sheet1"). Alue ("A1"). Arvo
Viestilaatikon sisältö
Lopeta ala
Muuten, MsgBox on erittäin hyödyllinen toiminto. Voit käyttää sitä tulosten näyttämiseen, kun Excel suorittaa VBA-koodisi.
Edellisen esimerkin koodi näyttää solun Arvo-ominaisuuden nykyisen asetuksen. Entä jos haluat muuttaa kyseisen omaisuuden asetuksia? Seuraava makro muuttaa arvoa solussa A1 muuttamalla solun Arvo-ominaisuutta:
Alimuutosarvo()
Työarkit ("Sheet1"). Alue ("A1"). Arvo = 994,92
Lopeta ala
Kun Excel on suorittanut tämän toimenpiteen, aktiivisen työkirjan Sheet1:n solu A1 sisältää arvon 994.92. Jos aktiivisessa työkirjassa ei ole Taulukko1-nimistä taulukkoa, makron suorittamisen tulos on virhesanoma. VBA vain noudattaa ohjeita, eikä se voi toimia taulukon kanssa, jota ei ole olemassa.
Jokaisella objektilla on omat ominaisuudet, vaikka jotkut ominaisuudet ovat yhteisiä monille objekteille. Esimerkiksi monilla (mutta ei kaikilla) objekteilla on Visible-ominaisuus. Useimmilla objekteilla on myös Nimi-ominaisuus.
Jotkut objektin ominaisuudet ovat vain luku -ominaisuuksia, mikä tarkoittaa, että koodisi voi saada ominaisuuden arvon, mutta se ei voi muuttaa sitä.
Kokoelma on myös esine. Tämä tarkoittaa, että kokoelmalla on myös ominaisuuksia. Voit esimerkiksi määrittää, kuinka monta työkirjaa on auki käyttämällä Työkirjat-kokoelman Count-ominaisuutta. Seuraava VBA-menettely näyttää sanomaruudun, joka kertoo, kuinka monta työkirjaa on auki:
Sub CountBooks()
MsgBox Workbooks.Count
Lopeta ala
Objektimenetelmät
Ominaisuuksien lisäksi objekteilla on menetelmiä. Menetelmä on toiminta teet jollakin esineellä. Metodi voi muuttaa objektin ominaisuuksia tai saada objektin tekemään jotain.
Tämä yksinkertainen esimerkki käyttää ClearContents-menetelmää Range-objektissa poistamaan aktiivisen arkin 12 solun sisällön:
Sub ClearRange()
Alue("A1:A12"). ClearContents
Lopeta ala
Jotkut menetelmät vaativat yhden tai useamman argumentin. Argumentti on arvo, joka täsmennetään edelleen toiminnan suorittamiseksi. Sijoitat metodin argumentit metodin perään välilyönnillä erotettuina. Useat argumentit erotetaan toisistaan pilkulla.
Seuraava esimerkki aktivoi Sheet1:n (aktiivisessa työkirjassa) ja kopioi sitten solun A1 sisällön soluun B1 käyttämällä Range-objektin kopiomenetelmää. Tässä esimerkissä Copy-menetelmällä on yksi argumentti, joka on kopiointitoiminnon kohdealue:
Sub CopyOne()
Työarkit ("Sheet1"). Aktivoi
Alue ("A1"). Kopioi alue ("B1")
Lopeta ala
Huomaa, että laskentataulukon viittaus jätettiin pois, kun alue-objekteihin viitattiin. Tämä voidaan tehdä turvallisesti, koska käytettiin komentoa Sheet1:n aktivoimiseksi. (Käyttäen Aktivoi-menetelmää).
Toinen tapa määrittää argumentti menetelmälle on käyttää argumentin virallista nimeä, jota seuraa kaksoispiste ja yhtäläisyysmerkki. Nimettyjen argumenttien käyttäminen on valinnaista, mutta sen tekeminen voi usein helpottaa koodin ymmärtämistä. CopyOne-menettelyn toinen lause voitaisiin kirjoittaa näin:
Alue("A1"). Kopioi kohde:=Alue("B1")
Huomaa pieni kehote, kun lausetta kirjoitetaan. Tämä kehote näyttää väitteen virallisen nimen.
VBE näyttää luettelon argumenteista kirjoittaessasi.
Koska kokoelma on myös objekti, kokoelmilla on menetelmiä. Seuraava makro käyttää Lisää-menetelmää Työkirjat-kokoelmalle:
Sub AddAWorkbook()
Työkirjat.Lisää
Lopeta ala
Kuten voit odottaa, tämä lausunto luo uuden työkirjan. Toisin sanoen se lisää uuden työkirjan Työkirjat-kokoelmaan. Kun olet suorittanut tämän makron, uusi työkirja on aktiivinen työkirja.
Objektitapahtumat
On vielä yksi aihe, josta sinun on tiedettävä: tapahtumat. Esineet reagoivat erilaisiin tapahtumiin . Kun esimerkiksi työskentelet Excelissä ja aktivoit toisen työkirjan, Työkirja Aktivoi -tapahtuma tapahtuu. Sinulla voi esimerkiksi olla VBA-makro, joka on suunniteltu suoriutumaan aina, kun tietylle työkirjaobjektille tapahtuu Aktivoi-tapahtuma.
Excel tukee monia tapahtumia, mutta kaikki objektit eivät voi vastata kaikkiin tapahtumiin. Ja jotkut esineet eivät reagoi mihinkään tapahtumiin. Ainoat tapahtumat, joita voit käyttää, ovat ne, jotka Microsoft Excelin ohjelmoijat ovat antaneet saataville.