Visual Basic for Applications er et objektorientert programmeringsspråk. Det grunnleggende konseptet med objektorientert programmering er at en programvareapplikasjon (Excel i dette tilfellet) består av ulike individuelle objekter, som hver har sitt eget sett med funksjoner og bruksområder.
En Excel-applikasjon inneholder celler, regneark, diagrammer, pivottabeller, tegningsformer - listen over Excels objekter er tilsynelatende uendelig. Hvert objekt har sitt eget sett med funksjoner, som kalles egenskaper , og sitt eget sett med bruksområder, kalt metoder .
Du kan tenke på dette konseptet på samme måte som gjenstandene du møter hver dag, for eksempel datamaskinen, bilen eller kjøleskapet. Hvert av disse objektene har identifiserende egenskaper, som høyde, vekt og farge. De har hver sine distinkte bruksområder, for eksempel å jobbe med Excel, transportere deg over lange avstander eller holde lett bedervelig mat kald.
VBA-objekter har også identifiserbare egenskaper og bruksmetoder. En regnearkcelle er et objekt, og blant dens beskrivbare funksjoner (dens egenskaper) er adresse, høyde og formatert fyllfarge. En arbeidsbok er også et VBA-objekt, og blant dens brukbare funksjoner (dens metoder) er dens evner til å åpnes, lukkes og legges til et diagram eller en pivottabell.
I Excel håndterer du arbeidsbøker, regneark og områder på daglig basis. Du tenker sannsynligvis på hvert av disse objektene som en del av Excel, og skiller dem egentlig ikke fra hverandre. Imidlertid tenker Excel på disse internt som alle en del av en hierarkisk modell kalt Excel Object Model. Excel-objektmodellen er et klart definert sett med objekter som er strukturert i henhold til relasjonene mellom dem.
Forstå objekter
I den virkelige verden kan du beskrive alt du ser som et objekt. Når du ser på huset ditt, er det en gjenstand. Huset ditt har rom; disse rommene er også separate objekter. Disse rommene kan ha skap. Disse skapene er også gjenstander. Når du tenker på huset ditt, rommene og skapene, kan du se et hierarkisk forhold mellom dem. Excel fungerer på samme måte.
I Excel er applikasjonsobjektet det altomfattende objektet - lik huset ditt. Inne i Application-objektet har Excel en arbeidsbok. Inne i en arbeidsbok er det et regneark. Inne i det er en rekkevidde. Dette er alle objekter som lever i en hierarkisk struktur.
For å peke på et spesifikt objekt i VBA, kan du krysse objektmodellen. For å komme til celle A1 på ark 1 kan du for eksempel skrive inn denne koden:
Activeworkbook.Sheets("Sheet1").Range("A1").Velg
I de fleste tilfeller er objektmodellhierarkiet forstått, slik at du ikke trenger å skrive inn hvert nivå. Hvis du skriver inn denne koden, kommer du også til celle A1 fordi Excel antyder at du mener den aktive arbeidsboken og det aktive arket:
Range("A1"). Velg
Faktisk, hvis du allerede har markøren i celle A1, kan du ganske enkelt bruke ActiveCell-objektet, noe som eliminerer behovet for å stave ut området:
Activecell. Velg
Forstå samlinger
Mange av Excels objekter tilhører samlinger , som i hovedsak er grupper av like objekter. På samme måte ligger huset ditt i et nabolag, som er en samling hus. Hvert nabolag ligger i en samling av nabolag som kalles en by. Excel anser samlinger som objekter i seg selv.
I hvert arbeidsbokobjekt har du en samling regneark. Worksheets-samlingen er et objekt du kan bruke via VBA. Hvert regneark i arbeidsboken din finnes i regnearksamlingen.
Hvis du vil referere til et regneark i regnearksamlingen, kan du referere til det ved sin plassering i samlingen, som et indeksnummer som begynner med 1, eller etter navnet, som sitert tekst. Hvis du kjører følgende to linjer med kode i en arbeidsbok som bare har ett regneark kalt MySheet, gjør de begge det samme:
Regneark(1). Velg
Arbeidsark ("Mitt ark"). Velg
Hvis du har to regneark i den aktive arbeidsboken som har navnene MySheet og YourSheet, i den rekkefølgen, kan du referere til det andre regnearket ved å skrive inn en av disse setningene:
Regneark(2). Velg
Regneark ("Ditt ark"). Velg
Hvis du vil referere til et regneark i en arbeidsbok kalt MySheet i en bestemt arbeidsbok som ikke er aktiv, må du kvalifisere regnearkreferansen og arbeidsbokreferansen som følger:
Workbooks("MyData.xls").Worksheets("MySheet").Velg
Forstå egenskaper
Egenskaper er i hovedsak egenskapene til et objekt. Huset ditt har en farge, en kvadratmeter, en alder og så videre. Noen egenskaper, for eksempel fargen på huset ditt, kan endres. Andre egenskaper, for eksempel året huset ditt ble bygget, kan ikke endres.
På samme måte har et objekt i Excel, for eksempel Worksheet-objektet, en arknavn-egenskap som kan endres, og en Rows.Count-rad-egenskap som ikke kan.
Du referer til egenskapen til et objekt ved å referere til objektet og deretter til egenskapen. Du kan for eksempel endre navnet på regnearket ditt ved å endre egenskapen Navn.
I dette eksemplet gir du nytt navn til Sheet1 til MySheet:
Sheets("Sheet1").Name = "MySheet"
Noen egenskaper er skrivebeskyttet, noe som betyr at du ikke kan tilordne en verdi direkte til dem. Et eksempel på en skrivebeskyttet egenskap er tekstegenskapen til celle, som gir det formaterte utseendet til en verdi i en celle. Du kan ikke overskrive eller endre det.
Forstå metoder
Metoder er handlingene som kan utføres mot et objekt. Det hjelper å tenke på metoder som verb. Du kan for eksempel male huset ditt; i VBA, kan det oversettes til
hus.maling
Et enkelt eksempel på en Excel-metode er Select-metoden for Range-objektet:
Range("A1"). Velg
En annen er Copy-metoden for Range-objektet:
Range("A1"). Kopi
Noen metoder har parametere som kan diktere hvordan metodene brukes. For eksempel kan Paste-metoden brukes mer effektivt ved å eksplisitt definere Destination-parameteren:
ActiveSheet.Paste Destination:=Range("B1")