Denne artikkelen viser deg hvordan du bruker Create Object -metoden i VBA.
VBA er et objektorientert språk - det bruker prosedyrer for å kontrollere og lage objekter.
Lag objekt
Vi kan bruke metoden Opprett objekt til å lage et objekt i et Microsoft Office -program. For eksempel, hvis vi skriver VBA -kode i Excel, og ønsker å åpne en kopi av Word, kan vi bruke metoden Opprett objekt til å opprette en ny forekomst av Word.
For eksempel:
12345 | Sub CreateWordInstance ()Dim wdApp som objektSett wdApp = CreateObject ("Word.Application")wdApp.Visible = TrueSlutt Sub |
På samme måte kan vi opprette en ny forekomst av PowerPoint eller Access.
12345 | Sub CreatePowerPoint -applikasjonDim ppApp som objektAngi ppApp = CreateObject ("PowerPoint.Application")ppApp.Visible = TrueSlutt Sub |
Vi kan også bruke Create Object til å lage andre objekter enn Application Object. Vi kan for eksempel bruke det til å lage et Excel -ark.
1234567 | Sub CreateExcelSheet ()Dim xlark som objektSett xlSheet = CreateObject ("Excel.Sheet")xlSheet.Application.Visible = TruexlSheet.Application.Range ("A2") = "God morgen"Sett xlSheet = IngentingSlutt Sub |
Imidlertid oppretter dette faktisk en ny forekomst av Excel - det oppretter ikke arket i forekomsten som allerede er åpen. Av den grunn må vi sette Application of the new sheet (ie: the new instance of Excel) til Visible for å se objektet.
I alle eksemplene ovenfor bruker vi sen binding - derfor deklarerer vi variablene som objekter. Vi kan også bruke Early Binding ved å sette en referanse til Word eller PowerPoint i vårt VBA -prosjekt og deretter skrive delprosedyren som vist nedenfor. For å forstå mer om sen og tidlig binding, klikk her.
For det første for tidlig binding, i VBE, satte vi en referanse til Microsoft Word.
I Meny bar, velg Verktøy> Referanser og bla ned for å finne referansen til Microsoft Word 16.0 Object Library.
Kontroller at referansen er merket, og klikk deretter OK.
MERK: versjonen er kanskje ikke 16.0, alt avhenger av hvilken versjon av Microsoft Office du kjører på PCen!
Nå erklærer vi objektet ved å bruke tidlig binding - dette betyr at i stedet for å erklære wdApp som et objekt, erklærer vi det som et Word.Application. Resten av koden er den samme som da vi brukte Sent binding ovenfor.
12345 | Sub CreateWordInstance ()Dim wdApp som nytt Word.ApplicationSett wdApp = CreateObject ("Word.Application")wdApp.Visible = TrueSlutt Sub |