Som namnet antyder används funktionen CreateObject för att skapa objekt.
Men varför använder vi CreateObject -metoden eller -funktionen om vi direkt kan skapa ett objekt med det nya sökordet?
Det är en giltig fråga och vi har ett passande svar.
Skapandet av ett objekt med CreateObject kallas Sen bindning. I sen bindning sker skapandet av objekt under körtiden. Det behöver inte läggas till några referenser. Detta gör VBA -koden bärbar.
Till exempel om du skapar ett program som behandlar andra applikationer och du använder tidig bindning genom att lägga till referenser och använda ny nyckelord. Senare överför du den koden till någon annan maskin, då måste du också lägga till referenserna på den maskinen. Men om du hade använt CreateObject -metoden för att skapa andra applikationsobjekt behöver du inte lägga till referenser på andra datorer om du överför eller delar koden.
I den här artikeln lär vi oss om CreateObject -metoden med några exempel.
Syntax för CreateObject -funktionen:
Ange objektnamn = CreateObject (klassnamn som sträng, [servernamn]) |
klassnamn som sträng: Det är en variabel som krävs. Det är en sträng som hänvisar till namnet på applikation och objekttyp. Programnamnet och klassen för objektet som ska skapas ska deklareras i AppName.ObjecType. Till exempel, om jag vill ha ett objekt i Word Application så skulle jag skriva "Word.Application". Vi kommer att se det i detalj i exempel senare.
[server namn]: Det är en valfri variabel. Det är en sträng med namnet på nätverksservern där objektet skapas. Om servername är en tom sträng ("") används den lokala maskinen. Vi kommer inte att använda detta i det här kapitlet.
Nu när vi känner till grunderna i CreateObject -funktionen, låt oss använda dem i några exempel:
Exempel 1: Öppna Microsoft Word -program med Excel VBA
Så om vi ville använda tidig bindning skulle vi lägga till referenser till ordprogram med hjälp av menyn Verktyg-> Referenser.
Och vår kod skulle se ut så här.
Sub OpenWordApp () Dim wordApp As New Word.Application Dim wordDoc As Document wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
Fördelen med denna kod, att du får hjälp av intelligens av VBA och det visar dig den tillgängliga metoden och egenskaperna för objektet du har skapat. Det kommer att fungera perfekt ditt system. Men om du delar den här koden till någon annan och de inte har lagt till referensen till Microsoft Word -biblioteket från verktyg, får de ett felmeddelande.
För att undvika detta fel, använd nedanstående kod.
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
Ovanstående kod fungerar perfekt på alla maskiner. Det är bärbart eftersom vi gör sen bindning med CreateObject -metoden för att skapa objektet.
Låt oss se ett annat exempel:
Exempel 2: Skapa arbetsbokobjekt med hjälp av CreateObject -funktionen
Om du arbetar med VBA under en längre tid måste du ha skapat eller lagt till i arbetsböcker med det nya nyckelordet. I det här exemplet gör vi det med CreateObject.
Sub addSheet () 'Deklarera en objektvariabel för att hålla objekt' -referensen. Dim as Object orsakar sen bindning. Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") 'Gör Excel synligt genom applikationsobjektet. ExcelSheet.Application.Visible = True 'Placera lite text i den första cellen i arket. ExcelSheet.Application.Cells (1, 1) .Value = "Detta är kolumn A, rad 1" 'Spara arket i katalogen C: \ test.xls. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Stäng Excel med Avsluta -metoden på applikationsobjektet. ExcelSheet.Application.Quit 'Släpp objektvariabeln. Set ExcelSheet = Nothing End Sub
Så ja killar, så här använder du CreateObject -metoden i VBA. Låt oss diskutera fördelarna och bristerna med det.
Fördelar med CreateObject för att skapa objekt
Den största fördelen med CreateObject är att den gör din kod portabel (när objektskapandet är ett problem). Du kan dela koden med vem som helst utan att oroa dig för om de har lagt till referensen till objektprogrammet med eller inte.
Brist på CreateObject
Bristerna i CreateObject -metoden är:
Du måste känna till strukturen för klassen som du ska använda för objektskapande.
När du väl har skapat objektet är du helt beroende av ditt minne för metodernas egenskaper och egenskaper, eftersom VBA inte tillhandahåller någon intellisense som hjälper dig.
Vi kan övervinna ovanstående brister. Jag har ett knep.
När jag skriver kod som ska delas med andra använder jag den första metoden för att skapa objekt (Lägga till referenser från verktyg). Detta hjälper mig att skriva koden snabbare. När jag väl har slutfört VBA -programmet och testat det, ersätter jag den nya metoden med CreateObject -metoden. Detta gör koden bärbar. Du kan använda det här tricket.
Så ja killar, så här kan du använda CreateObject -funktionen för att skapa objekt i VBA. Jag hoppas att jag kunde förklara allt. Om du har några frågor angående denna artikel eller andra VBA -relaterade frågor, ställ mig i kommentarfältet nedan.
Komma igång med Excel VBA UserForms| Jag kommer att förklara hur man skapar ett formulär i excel, hur man använder VBA -verktygslåda, hur man hanterar användarinmatningar och slutligen hur man lagrar användarinmatningarna. Vi kommer att gå igenom dessa ämnen med ett exempel och steg för steg -guide.
VBA -variabler i Excel| VBA står för Visual Basic for Applications. Det är ett programmeringsspråk från Microsoft. Den används med Microsoft Office-applikationer som MSExcel, MS-Word och MS-Access medan VBA-variabler är specifika nyckelord.
Excel VBA variabelt omfång| På alla programmeringsspråk har vi variabelåtkomstspecificerare som definierar varifrån en definierad variabel kan nås. Excel VBA är inget undantag. VBA har också omfångsspecifikatorer.
ByRef och ByVal -argument | När ett argument skickas som ett ByRef -argument till en annan sub eller funktion skickas referensen till den faktiska variabeln. Alla ändringar som görs i kopian av variabeln återspeglas i det ursprungliga argumentet.
Ta bort blad utan bekräftelsefrågor med VBA i Microsoft Excel | Eftersom du raderar blad med VBA vet du vad du gör. Du vill berätta för Excel att inte visa den här varningen och ta bort det jävla arket.
Lägg till och spara ny arbetsbok med VBA i Microsoft Excel 2016| I den här koden skapade vi först en referens till ett arbetsbokobjekt. Och sedan initierade vi det med ett nytt arbetsbokobjekt. Fördelen med detta tillvägagångssätt är att du enkelt kan utföra den nya arbetsboken. Som att spara, stänga, radera osv
Visa ett meddelande i Excel VBA -statusfältet| Statusfältet i excel kan användas som kodmonitor. När din VBA -kod är lång och du utför flera uppgifter med VBA, inaktiverar du ofta skärmuppdateringen så att du inte ser att skärmen flimrar.
Stäng av varningsmeddelanden med VBA i Microsoft Excel 2016| Denna kod inaktiverar inte bara VBA -varningar utan ökar också kodens tidseffektivitet. Låt oss se hur.
Populära artiklar:
50 Excel -genvägar för att öka din produktivitet | Bli snabbare på din uppgift. Dessa 50 genvägar får dig att arbeta ännu snabbare med Excel.
VLOOKUP -funktionen i Excel | Detta är en av de mest använda och populära Excel -funktionerna som används för att leta upp värde från olika intervall och ark.
COUNTIF i Excel 2016 | Räkna värden med förhållanden med denna fantastiska funktion. Du behöver inte filtrera dina data för att räkna specifika värden. Countif -funktionen är avgörande för att förbereda din instrumentpanel.
Hur man använder SUMIF -funktionen i Excel | Detta är en annan viktig instrumentpanel. Detta hjälper dig att summera värden på specifika förhållanden.