Visual Basic for Applications är ett objektorienterat programmeringsspråk. Grundkonceptet för objektorienterad programmering är att en mjukvaruapplikation (Excel i detta fall) består av olika individuella objekt, som vart och ett har sin egen uppsättning funktioner och användningsområden.
En Excel-applikation innehåller celler, kalkylblad, diagram, pivottabeller, ritningsformer - listan över Excels objekt är till synes oändlig. Varje objekt har sin egen uppsättning funktioner, som kallas egenskaper , och sin egen uppsättning användningsområden, kallade metoder .
Du kan tänka på detta koncept precis som du skulle göra de föremål du möter varje dag, som din dator, bil eller kylskåp. Vart och ett av dessa föremål har identifierande egenskaper, såsom höjd, vikt och färg. De har var och en sina egna distinkta användningsområden, som att arbeta med Excel, transportera dig över långa avstånd eller hålla färskvaror kall.
VBA-objekt har också identifierbara egenskaper och användningsmetoder. En kalkylbladscell är ett objekt, och bland dess beskrivbara egenskaper (dess egenskaper) är dess adress, höjd och formaterade fyllningsfärg. En arbetsbok är också ett VBA-objekt, och bland dess användbara funktioner (dess metoder) är dess möjligheter att öppnas, stängas och läggas till ett diagram eller en pivottabell.
I Excel hanterar du arbetsböcker, kalkylblad och intervall dagligen. Du tänker förmodligen på vart och ett av dessa objekt som alla delar av Excel, inte riktigt separera dem i ditt sinne. Dock tänker Excel på dessa internt som alla en del av en hierarkisk modell som kallas Excel Object Model. Excel-objektmodellen är en tydligt definierad uppsättning objekt som är strukturerade enligt relationerna mellan dem.
Förstå objekt
I den verkliga världen kan du beskriva allt du ser som ett objekt. När du tittar på ditt hus är det ett föremål. Ditt hus har rum; dessa rum är också separata objekt. Dessa rum kan ha garderober. Dessa garderober är också föremål. När du tänker på ditt hus, rummen och garderoberna kan du se ett hierarkiskt förhållande mellan dem. Excel fungerar på samma sätt.
I Excel är Application-objektet det allomfattande objektet - liknande ditt hus. Inuti Application-objektet har Excel en arbetsbok. Inuti en arbetsbok finns ett arbetsblad. Inuti det finns ett intervall. Dessa är alla objekt som lever i en hierarkisk struktur.
För att peka på ett specifikt objekt i VBA kan du gå igenom objektmodellen. Till exempel, för att komma till cell A1 på blad 1, kan du ange denna kod:
Activeworkbook.Sheets("Sheet1").Range("A1").Välj
I de flesta fall förstås objektmodellhierarkin, så du behöver inte skriva varje nivå. Om du anger den här koden kommer du också till cell A1 eftersom Excel drar slutsatsen att du menar den aktiva arbetsboken och det aktiva bladet:
Range("A1"). Välj
Faktum är att om du redan har markören i cell A1, kan du helt enkelt använda ActiveCell-objektet, vilket förnekar behovet av att stava intervallet:
Activecell.Select
Förstå samlingar
Många av Excels objekt tillhör samlingar , som i huvudsak är grupper av liknande objekt. På samma sätt ligger ditt hus i en stadsdel, som är en samling hus. Varje stadsdel ligger i en samling stadsdelar som kallas en stad. Excel betraktar samlingar som objekt i sig.
I varje arbetsboksobjekt har du en samling arbetsblad. Worksheets-samlingen är ett objekt som du kan använda via VBA. Varje kalkylblad i din arbetsbok finns i samlingen Kalkylblad.
Om du vill hänvisa till ett kalkylblad i kalkylbladssamlingen kan du referera till det genom dess placering i samlingen, som ett indexnummer som börjar med 1, eller med dess namn, som citerad text. Om du kör följande två rader kod i en arbetsbok som bara har ett kalkylblad som heter MySheet, gör de båda samma sak:
Arbetsblad(1). Välj
Arbetsblad ("Mitt ark"). Välj
Om du har två kalkylblad i den aktiva arbetsboken som har namnen MySheet och YourSheet, i den ordningen, kan du hänvisa till det andra kalkylbladet genom att skriva någon av dessa satser:
Arbetsblad(2). Välj
Arbetsblad ("Ditt Blad"). Välj
Om du vill referera till ett kalkylblad i en arbetsbok som heter MySheet i en viss arbetsbok som inte är aktiv, måste du kvalificera kalkylbladsreferensen och arbetsboksreferensen enligt följande:
Workbooks("MyData.xls").Worksheets("MySheet").Välj
Förstå egenskaper
Egenskaper är i huvudsak egenskaperna hos ett objekt. Ditt hus har en färg, en kvadratmeter, en ålder och så vidare. Vissa egenskaper, som färgen på ditt hus, kan ändras. Andra egenskaper, till exempel det år ditt hus byggdes, kan inte ändras.
Likaså har ett objekt i Excel, såsom Worksheet-objektet, en arknamnsegenskap som kan ändras och en Rows.Count row-egenskap som inte kan.
Du refererar till ett objekts egenskap genom att referera till objektet och sedan till egenskapen. Du kan till exempel ändra namnet på ditt kalkylblad genom att ändra dess Name-egenskap.
I det här exemplet byter du namn på Sheet1 till MySheet:
Sheets("Sheet1").Name = "MySheet"
Vissa egenskaper är skrivskyddade, vilket innebär att du inte kan tilldela dem ett värde direkt. Ett exempel på en skrivskyddad egenskap är egenskapen Text för cell, som ger det formaterade utseendet på ett värde i en cell. Du kan inte skriva över eller ändra det.
Förstå metoder
Metoder är de åtgärder som kan utföras mot ett objekt. Det hjälper att tänka på metoder som verb. Du kan till exempel måla ditt hus; i VBA, kan det översättas till
hus.färg
Ett enkelt exempel på en Excel-metod är Select-metoden för Range-objektet:
Range("A1"). Välj
En annan är kopieringsmetoden för Range-objektet:
Range("A1"). Kopiera
Vissa metoder har parametrar som kan diktera hur metoderna tillämpas. Till exempel kan metoden Klistra in användas mer effektivt genom att explicit definiera parametern Destination:
ActiveSheet.Paste Destination:=Range("B1")