Som navnet antyder, brukes CreateObject -funksjonen til å lage objekter.
Men hvorfor bruker vi CreateObject -metoden eller -funksjonen hvis vi kan lage et objekt direkte ved hjelp av det nye søkeordet?
Vel, det er et gyldig spørsmål, og vi har et passende svar.
Opprettelsen av et objekt ved hjelp av CreateObject kalles Sen binding. Ved sen binding skjer opprettelsen av objekter i løpetiden. Det trenger ingen referanser for å bli lagt til. Dette gjør VBA -koden bærbar.
For eksempel, hvis du oppretter et program som omhandler andre applikasjoner og du bruker tidlig binding ved å legge til referanser og bruke ny søkeord. Senere overfører du koden til en annen maskin, så må du legge til referansene på den maskinen også. Men hvis du hadde brukt CreateObject -metoden for å lage andre applikasjonsobjekter, trenger du ikke legge til referanser på andre maskiner, i tilfelle du overfører eller deler koden.
I denne artikkelen vil vi lære om CreateObject -metoden ved å bruke noen eksempler.
Syntaks for CreateObject -funksjonen:
Angi objektnavn = CreateObject (klassenavn som streng, [servernavn]) |
klassens navn som streng: Det er en nødvendig variabel. Det er en streng som refererer til navnet på applikasjonen og objekttypen. Applikasjonsnavnet og klassen til objektet som skal opprettes, skal deklareres i AppName.ObjecType. For eksempel, hvis jeg vil ha et objekt i Word -applikasjonen, vil jeg skrive "Word.Application". Vi vil se det i detalj i eksempler senere.
[Server navn]: Det er en valgfri variabel. Det er en streng med navnet på nettverksserveren der objektet skal opprettes. Hvis servernavn er en tom streng (""), brukes den lokale maskinen. Vi kommer ikke til å bruke dette i dette kapitlet.
Nå som vi kjenner det grunnleggende i CreateObject -funksjonen, la oss bruke dem i noen eksempler:
Eksempel 1: Åpne Microsoft Word -programmet ved hjelp av Excel VBA
Så hvis vi ønsket å bruke tidlig binding, ville vi legge til referanser til ordprogrammer ved å bruke Verktøy-> Referanser-menyen.
Og koden vår ville se slik ut.
Sub OpenWordApp () Dim wordApp As New Word.Application Dim wordDoc As Document wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
Fordelen med denne koden, at du får hjelp av intelligens av VBA, og den viser deg den tilgjengelige metoden og egenskapene til objektet du har opprettet.Det vil fungere perfekt ditt system. Men hvis du deler denne koden med noen andre og de ikke har lagt til referansen til Microsoft Word -biblioteket fra verktøy, får de en feilmelding.
For å unngå denne feilen, bruk koden nedenfor.
Sub OpenWordApp () Dim wordApp As Object Set wordApp = CreateObject ("Word.Application") Dim wordDoc As Object wordApp.Visible = True Set wordDoc = wordApp.Documents.Add End Sub
Koden ovenfor fungerer perfekt på alle maskiner. Det er bærbart siden vi gjør sen binding med CreateObject -metoden for å lage objektet.
La oss se et annet eksempel:
Eksempel 2: Opprett arbeidsbokobjekt ved hjelp av CreateObject -funksjonen
Hvis du arbeider med VBA en stund, må du ha opprettet eller lagt til i arbeidsbøker ved hjelp av det nye søkeordet. I dette eksemplet vil vi gjøre det ved hjelp av CreateObject.
Sub addSheet () 'Declare an object variable to keep the object' referanse. Dim as Object forårsaker sen binding. Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") 'Gjør Excel synlig gjennom applikasjonsobjektet. ExcelSheet.Application.Visible = True 'Plasser litt tekst i den første cellen i arket. ExcelSheet.Application.Cells (1, 1) .Value = "Dette er kolonne A, rad 1" 'Lagre arket i C: \ test.xls -katalogen. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Lukk Excel med Avslutt -metoden på applikasjonsobjektet. ExcelSheet.Application.Quit 'Slipp objektvariabelen. Sett ExcelSheet = Nothing End Sub
Så ja gutta, dette er hvordan du bruker CreateObject -metoden i VBA. La oss diskutere fordelene og manglene ved det.
Fordeler med CreateObject for å lage Object
Den største fordelen med CreateObject er at den gjør koden din bærbar (når objektopprettelsen er bekymringen). Du kan dele koden med hvem som helst uten å bekymre deg for om de har lagt til referansen til objektprogrammet med eller ikke.
Mangelen på CreateObject
Manglene ved CreateObject -metoden er:
Du må kjenne strukturen til klassen du skal bruke til å lage objekter.
Når du har opprettet objektet, er du helt avhengig av minnet ditt for metodene og egenskapene til objekter, ettersom VBA ikke gir noen intellisense for å hjelpe deg.
Vi kan overvinne manglene ovenfor. Jeg har et triks.
Når jeg skriver kode som skal deles med andre, bruker jeg den første metoden for å lage objekter (Legge til referanser fra verktøy). Dette hjelper meg med å skrive koden raskere. Når jeg er ferdig med VBA -programmet og har testet det, erstatter jeg den nye metoden med CreateObject -metoden. Dette gjør koden bærbar. Du kan bruke dette trikset.
Så ja gutta, dette er hvordan du kan bruke CreateObject -funksjonen til å lage objekter i VBA. Jeg håper jeg klarte å forklare alt. Hvis du har spørsmål angående denne artikkelen eller andre VBA -relaterte spørsmål, kan du stille meg i kommentarfeltet nedenfor.
Komme i gang med Excel VBA UserForms| Jeg vil forklare hvordan du lager et skjema i excel, hvordan du bruker VBA -verktøykasse, hvordan du håndterer brukerinnganger og til slutt hvordan du lagrer brukerinngangene. Vi vil gå gjennom disse emnene ved å bruke ett eksempel og en trinnvis veiledning.
VBA -variabler i Excel| VBA står for Visual Basic for Applications. Det er et programmeringsspråk fra Microsoft. Den brukes med Microsoft Office-applikasjoner som MSExcel, MS-Word og MS-Access, mens VBA-variabler er spesifikke søkeord.
Excel VBA variabelt omfang| På alle programmeringsspråk har vi variabel tilgangsspesifikatorer som definerer hvorfra en definert variabel kan nås. Excel VBA er ingen unntak. VBA har også omfangsspesifikatorer.
ByRef og ByVal -argumenter | Når et argument sendes som et ByRef -argument til en annen sub eller funksjon, sendes referansen til den faktiske variabelen. Eventuelle endringer som gjøres i kopien av variabelen, gjenspeiles i det opprinnelige argumentet.
Slett ark uten bekreftelsesforespørsler ved hjelp av VBA i Microsoft Excel | Siden du sletter ark med VBA, vet du hva du gjør. Du vil fortelle Excel om ikke å vise denne advarselen og slette det jævla arket.
Legg til og lagre ny arbeidsbok ved hjelp av VBA i Microsoft Excel 2016| I denne koden opprettet vi først en referanse til et arbeidsbokobjekt. Og så initialiserte vi det med et nytt arbeidsbokobjekt. Fordelen med denne tilnærmingen er at du enkelt kan utføre operasjoner på denne nye arbeidsboken. Som å lagre, lukke, slette osv
Vis en melding på Excel VBA -statuslinjen| Statuslinjen i excel kan brukes som en kodemonitor. Når VBA -koden din er lang og du gjør flere oppgaver med VBA, deaktiverer du ofte skjermoppdateringen slik at du ikke ser at skjermen flimrer.
Slå av advarselsmeldinger ved hjelp av VBA i Microsoft Excel 2016| Denne koden deaktiverer ikke bare VBA -varsler, men øker også tidens effektivitet av koden. La oss se hvordan.
Populære artikler:
50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene får deg til å jobbe enda raskere med Excel.
VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.
COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke å filtrere dataene dine for å telle spesifikke verdier. Countif -funksjonen er avgjørende for å forberede dashbordet.
Slik bruker du SUMIF -funksjon i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold.