Selv om det er viktig å vite hvordan man refererer til objekter, kan du ikke gjøre noen nyttig Excel VBA-programmering ved å bare referere til et objekt. For å oppnå noe meningsfullt, må du gjøre en av to ting:
Med bokstavelig talt tusenvis av egenskaper og metoder tilgjengelig, kan du lett bli overveldet. Bare husk at du aldri trenger å bruke de fleste av de tilgjengelige egenskapene og metodene.
Objektegenskaper
Hvert objekt har egenskaper. Du kan tenke på egenskaper som attributter som beskriver objektet. Et objekts egenskaper bestemmer hvordan det ser ut, hvordan det oppfører seg, og til og med om det er synlig. Ved å bruke VBA kan du gjøre to ting med et objekts egenskaper:
For eksempel har et enkeltcelleområde-objekt en egenskap kalt Value. Verdi-egenskapen lagrer verdien i cellen. Du kan skrive VBA-kode for å vise verdi-egenskapen, eller du kan skrive VBA-kode for å sette verdi-egenskapen til en bestemt verdi. Følgende makro bruker den innebygde VBA-funksjonen MsgBox for å få opp en boks som viser verdien i celle A1 på Ark1 i den aktive arbeidsboken:
Denne meldingsboksen viser et Range-objekts Value-egenskap.
Sub ShowValue()
Innhold = Regneark(“Ark1”).Område(“A1”).Verdi
MsgBox-innhold
End Sub
MsgBox er forresten en veldig nyttig funksjon. Du kan bruke den til å vise resultater mens Excel kjører VBA-koden din.
Koden i det foregående eksemplet viser gjeldende innstilling for en celles verdi-egenskap. Hva om du vil endre innstillingen for den egenskapen? Følgende makro endrer verdien i celle A1 ved å endre cellens verdi-egenskap:
Sub ChangeValue()
Regneark(“Ark1”). Område(“A1”). Verdi = 994,92
End Sub
Etter at Excel har utført denne prosedyren, inneholder celle A1 på Ark1 i den aktive arbeidsboken verdien 994.92. Hvis den aktive arbeidsboken ikke har et ark kalt Ark1, er resultatet av å kjøre den makroen en feilmelding. VBA følger bare instruksjonene, og det kan ikke fungere med et ark som ikke eksisterer.
Hvert objekt har sitt eget sett med egenskaper, selv om noen egenskaper er felles for mange objekter. For eksempel har mange (men ikke alle) objekter en Visible-egenskap. De fleste objekter har også en Name-egenskap.
Noen objektegenskaper er skrivebeskyttede egenskaper, noe som betyr at koden din kan få egenskapens verdi, men den kan ikke endre den.
En samling er også et objekt. Det betyr at en samling også har egenskaper. Du kan for eksempel bestemme hvor mange arbeidsbøker som er åpne ved å gå til Count-egenskapen til Workbooks-samlingen. Følgende VBA-prosedyre viser en meldingsboks som forteller deg hvor mange arbeidsbøker som er åpne:
Sub CountBooks()
MsgBox Workbooks.Count
End Sub
Objektmetoder
I tillegg til egenskaper har objekter metoder. En metode er en handling du utfører med et objekt. En metode kan endre et objekts egenskaper eller få objektet til å gjøre noe.
Dette enkle eksemplet bruker ClearContents-metoden på et Range-objekt for å slette innholdet i 12 celler på det aktive arket:
Sub ClearRange()
Range(“A1:A12”). Tøm innhold
End Sub
Noen metoder tar ett eller flere argumenter. Et argument er en verdi som ytterligere spesifiserer handlingen som skal utføres. Du plasserer argumentene for en metode etter metoden, atskilt med et mellomrom. Flere argumenter er atskilt med komma.
Følgende eksempel aktiverer Ark1 (i den aktive arbeidsboken) og kopierer deretter innholdet i celle A1 til celle B1 ved å bruke områdeobjektets kopieringsmetode. I dette eksemplet har kopieringsmetoden ett argument, som er målområdet for kopieringsoperasjonen:
Sub CopyOne()
Regneark ("Ark1"). Aktiver
Range(“A1”). Kopier område(“B1”)
End Sub
Legg merke til at regnearkreferansen ble utelatt når det ble referert til Range-objektene. Dette kan gjøres trygt fordi en uttalelse for å aktivere Sheet1 ble brukt. (ved å bruke Aktiver-metoden).
En annen måte å spesifisere et argument for en metode på er å bruke det offisielle navnet på argumentet etterfulgt av et kolon og et likhetstegn. Å bruke navngitte argumenter er valgfritt, men å gjøre det kan ofte gjøre koden lettere å forstå. Den andre setningen i CopyOne-prosedyren kan skrives slik:
Range(“A1”).Kopier destinasjon:=Rekkevidde(“B1”)
Legg merke til den lille ledeteksten mens uttalelsen skrives. Den ledeteksten viser det offisielle navnet på argumentet.
VBE viser en liste over argumenter mens du skriver.
Fordi en samling også er et objekt, har samlinger metoder. Følgende makro bruker Add-metoden for Workbooks-samlingen:
Sub AddAWorkbook()
Arbeidsbøker.Legg til
End Sub
Som du kanskje forventer, skaper denne erklæringen en ny arbeidsbok. Med andre ord, den legger til en ny arbeidsbok til Workbooks-samlingen. Etter at du har utført denne makroen, vil en ny arbeidsbok være den aktive arbeidsboken.
Objekthendelser
Det er ett tema til du trenger å vite om: begivenheter. Objekter reagerer på ulike hendelser som skjer. For eksempel, når du jobber i Excel og aktiverer en annen arbeidsbok, oppstår en Workbook Activate-hendelse. Du kan for eksempel ha en VBA-makro som er utformet for å kjøres når en Activate-hendelse oppstår for et bestemt Workbook-objekt.
Excel støtter mange hendelser, men ikke alle objekter kan svare på alle hendelser. Og noen objekter reagerer ikke på noen hendelser. De eneste hendelsene du kan bruke er de som er gjort tilgjengelige av programmererne av Microsoft Excel.