Hvad er CreateObject -metode i VBA, og hvordan bruges CreateObject -metode i Excel?

Indholdsfortegnelse:

Anonim

Som navnet antyder, bruges CreateObject -funktionen til at oprette objekter.

Men hvorfor bruger vi CreateObject -metode eller -funktion, hvis vi direkte kan oprette et objekt ved hjælp af det nye søgeord?

Det er et gyldigt spørgsmål, og vi har et passende svar.

Oprettelsen af ​​et objekt ved hjælp af CreateObject kaldes Sen binding. Ved sen binding sker oprettelsen af ​​objekter i løbetiden. Det kræver ikke, at der tilføjes nogen referencer. Dette gør VBA -koden bærbar.

For eksempel, hvis du opretter et program, der beskæftiger sig med andre applikationer, og du bruger tidlig binding ved at tilføje referencer og bruge ny nøgleord. Senere overfører du denne kode til en anden maskine, så skal du også tilføje referencerne på den pågældende maskine. Men hvis du havde brugt CreateObject -metoden til at oprette andre applikationsobjekter, behøver du ikke tilføje referencerne på andre maskiner, hvis du overfører eller deler koden.

I denne artikel lærer vi om CreateObject -metoden ved hjælp af nogle eksempler.

Syntaks for CreateObject -funktion:

Indstil objektnavn = CreateObject (klassens navn som streng, [servernavn])

klassens navn som streng: Det er en påkrævet variabel. Det er en streng, der refererer til navnet på applikation og objekttype. Applikationsnavnet og klassen for det objekt, der skal oprettes, skal angives i AppName.ObjecType. For eksempel, hvis jeg vil have et objekt i Word Application, så ville jeg skrive "Word.Application". Vi vil se det i detaljer i eksempler senere.

[server navn]: Det er en valgfri variabel. Det er en streng af navnet på den netværksserver, hvor objektet vil blive oprettet. Hvis servernavn er en tom streng (""), bruges den lokale maskine. Vi vil ikke bruge dette i dette kapitel.

Når vi nu kender det grundlæggende i CreateObject -funktionen, lad os bruge dem i nogle eksempler:

Eksempel 1: Åbn Microsoft Word -program ved hjælp af Excel VBA

Så hvis vi ønskede at bruge tidlig binding, ville vi tilføje referencer til ordprogrammer ved hjælp af menuen Værktøjer-> Referencer.

Og vores kode ville se sådan ud.

Sub OpenWordApp () Dim wordApp As New Word.Application Dim wordDoc As Document wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub 

Fordelen ved denne kode, at du får hjælp fra intelligens af VBA, og det viser dig den tilgængelige metode og egenskaber for det objekt, du har oprettet.Det fungerer perfekt fint dit system. Men hvis du deler denne kode med en anden, og de ikke har tilføjet referencen til Microsoft Word -biblioteket fra værktøjer, får de en fejl.

For at undgå denne fejl skal du bruge nedenstående kode.

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 

Ovenstående kode fungerer helt fint på enhver maskine. Det er bærbart, da vi laver sen binding ved hjælp af CreateObject -metoden til at oprette objektet.

Lad os se et andet eksempel:

Eksempel 2: Opret projektmappeobjekt ved hjælp af CreateObject -funktionen

Hvis du arbejder med VBA i nogen tid, skal du have oprettet eller tilføjet i projektmapper ved hjælp af det nye søgeord. I dette eksempel gør vi det ved hjælp af CreateObject.

Sub addSheet () 'Deklarer en objektvariabel til at holde objektet' reference. Dim as Object forårsager sen binding. Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") 'Gør Excel synlig gennem applikationsobjektet. ExcelSheet.Application.Visible = True 'Placer noget tekst i den første celle i arket. ExcelSheet.Application.Cells (1, 1) .Value = "Dette er kolonne A, række 1" 'Gem arket i C: \ test.xls bibliotek. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Luk Excel med afslutningsmetoden på applikationsobjektet. ExcelSheet.Application.Quit 'Frigør objektvariablen. Indstil ExcelSheet = Intet slut Sub 

Så ja fyre, det er sådan du bruger CreateObject -metoden i VBA. Lad os diskutere fordelene og manglerne ved det.

Fordele ved CreateObject til at oprette Object

Den største fordel ved CreateObject er, at den gør din kode bærbar (når objektoprettelsen er bekymringen). Du kan dele koden med nogen uden at bekymre dig om, om de har tilføjet referencen til objektprogrammet med eller ej.

Manglen på CreateObject

Manglerne ved CreateObject -metoden er:

Du skal kende strukturen i den klasse, du skal bruge til oprettelse af objekter.

Når du har oprettet objektet, er du totalt afhængig af din hukommelse for objekters metoder og egenskaber, da VBA ikke giver nogen intellisense til at hjælpe dig.

Vi kan overvinde ovenstående mangler. Jeg har et trick.

Når jeg skriver kode, der vil blive delt med andre, bruger jeg den første metode til at oprette objekter (tilføjelse af referencer fra værktøjer). Dette hjælper mig med at skrive koden hurtigere. Når jeg er færdig med VBA -programmet og har testet det, erstatter jeg den nye metode med CreateObject -metoden. Dette gør koden bærbar. Du kan bruge dette trick.

Så ja fyre, sådan kan du bruge CreateObject -funktionen til at oprette objekter i VBA. Jeg håber, at jeg var i stand til at forklare alt. Hvis du har spørgsmål vedrørende denne artikel eller andre VBA -relaterede spørgsmål, så spørg mig i kommentarfeltet herunder.

Kom godt i gang med Excel VBA UserForms| Jeg vil forklare, hvordan man opretter en formular i excel, hvordan man bruger VBA -værktøjskasse, hvordan man håndterer brugerinput og endelig hvordan man gemmer brugerinput. Vi vil gennemgå disse emner ved hjælp af et eksempel og en trinvis vejledning.

VBA -variabler i Excel| VBA står for Visual Basic for Applications. Det er et programmeringssprog fra Microsoft. Det bruges med Microsoft Office-applikationer som MSExcel, MS-Word og MS-Access, hvorimod VBA-variabler er specifikke søgeord.

Excel VBA variabelt omfang| På alle programmeringssprog har vi variabeladgangsspecifikatorer, der definerer, hvorfra der kan tilgås en defineret variabel. Excel VBA er ingen undtagelse. VBA har også omfangsspecifikationer.

ByRef og ByVal argumenter | Når et argument sendes som et ByRef -argument til en anden sub eller funktion, sendes referencen til den faktiske variabel. Eventuelle ændringer, der foretages i kopien af ​​variablen, vil afspejle sig i det originale argument.

Slet ark uden bekræftelsesmeddelelser ved hjælp af VBA i Microsoft Excel | Da du sletter ark ved hjælp af VBA, ved du, hvad du laver. Du vil gerne bede Excel om ikke at vise denne advarsel og slette det forbandede ark.

Tilføj og gem ny arbejdsmappe ved hjælp af VBA i Microsoft Excel 2016| I denne kode oprettede vi først en reference til et projektmappeobjekt. Og så initialiserede vi det med et nyt projektmappeobjekt. Fordelen ved denne tilgang er, at du nemt kan udføre operationer på denne nye projektmappe. Som at gemme, lukke, slette osv

Vis en meddelelse på Excel VBA -statuslinjen| Statuslinjen i excel kan bruges som kodeovervågning. Når din VBA -kode er lang, og du udfører flere opgaver ved hjælp af VBA, deaktiverer du ofte skærmopdateringen, så du ikke kan se, at skærmen flimrer.

Slå advarselsmeddelelser fra ved hjælp af VBA i Microsoft Excel 2016| Denne kode deaktiverer ikke kun VBA -advarsler, men øger også kodeens tidseffektivitet. Lad os se hvordan.

Populære artikler:

50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje får dig til at arbejde endnu hurtigere i Excel.

VLOOKUP -funktionen i Excel | Dette er en af ​​de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.

COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke at filtrere dine data for at tælle bestemte værdier. Countif -funktion er afgørende for at forberede dit dashboard.

Sådan bruges SUMIF -funktionen i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.