VBA CreateObject

CreateObject-functie in VBA

Objecten zijn zeer belangrijke concepten bij VBA-codering en begrijpen dat het werkmodel van een object vrij complex is. Wanneer we verwijzen naar de objecten in VBA-codering, doen we dat op twee manieren, namelijk "Early Binding" en "Late Binding". "Early Binding" is het proces waarbij de objectreferentie wordt ingesteld vanuit de referentiebibliotheek van de VBA en wanneer we het bestand naar iemand anders sturen, moeten ze ook de referentie naar die respectieve objecten instellen. Bij "Late Binding" hoeft de gebruiker echter geen objectreferenties in te stellen, omdat we bij late binding-codering de verwijzing naar het respectieve object instellen met behulp van de VBA "CreateObject" -functie.

Wat is het CreateObject in Excel VBA?

"Create Object", zoals de naam zelf zegt, het zal het genoemde object creëren vanuit de Excel VBA. De functie Create Object retourneert dus de verwijzing naar een object dat is geïnitieerd door een Active X-component.

Hieronder staat de syntaxis van de CreateObject-functie in VBA

  • Klasse: de naam van het object dat we proberen te starten en de verwijzing naar de variabele instellen.
  • [Servernaam]: Dit is een optionele parameter. Als deze wordt genegeerd, wordt alleen de lokale computer gebruikt.

Voorbeeld van Create Object Function in Excel VBA

Hieronder staan ​​de voorbeelden van VBA CreateObject.

U kunt deze VBA CreateObject Excel-sjabloon hier downloaden - VBA CreateObject Excel-sjabloon

Voorbeeld 1

Nu zullen we zien hoe u een PowerPoint-applicatie vanuit Excel kunt starten met de CreateObject-functie in VBA. Open Excel-bestand en ga naar Visual Basic Editor-venster door op ALT + F11 te drukken.

Code:

 Sub CreateObject_Example1 () End Sub 

Declareer de variabele als PowerPoint.Application.

Zoals u hierboven kunt zien wanneer we het woord "PowerPoint" beginnen te typen, zien we geen enkele intellisense-lijst met de gerelateerde zoekopdrachten. Dit komt omdat "PowerPoint" een extern object is. Maar niets om je zorgen over te maken, verklaar de variabele als "Object".

Code:

 Sub CreateObject_Example1 () Dim PPT As Object End Sub 

Omdat we de variabele als "Object" hebben gedeclareerd, moeten we de verwijzing naar het object instellen met het sleutelwoord "Set". Door het sleutelwoord "Set" in te voeren, vermeldt u de variabele en plaatst u een gelijkteken.

Code:

 Sub CreateObject_Example1 () Dim PPT As Object Set PPT = End Sub 

Open nu de CreateObject-functie.

Aangezien we verwijzen naar het externe object van "PowerPoint" voor de "Klasse" -parameter van de functie Object maken, vermeldt u de naam van het externe object tussen dubbele aanhalingstekens als "PowerPoint.Application".

Code:

 Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") End Sub 

De functie Create Object zal de PowerPoint-applicatie starten. Zodra het object is gestart, moeten we het zichtbaar maken door de variabelenaam te gebruiken.

Een van de problemen met de Create Object-methode of de late binding-methode is dat we de intellisense-lijst op het moment niet te zien krijgen, je moet absoluut zeker zijn van de code die je aan het schrijven bent.

Gebruik voor de variabele "PPT" de eigenschap "Visible" en stel de status in op "True".

Code:

 Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub 

Om een ​​dia aan PPT toe te voegen, definieert u de onderstaande VBA-code.

Code:

 Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True PPT.Presentations.Add End Sub 

Voer nu de code handmatig uit of via de F5-toets en zie dat de “PowerPoint” -toepassing wordt geopend.

Zodra de PowerPoint-applicatie is ingeschakeld met de variabele "PPT", kunnen we beginnen met het openen van de PowerPoint-applicatie.

Voorbeeld # 2

Nu zullen we zien hoe u een Excel-toepassing kunt starten met behulp van de CreateObject-functie in VBA. Declareer de variabele nogmaals als "Object".

Code:

 Sub CreateObject_Example2 () Dim ExcelSheet As Object End Sub 

Op het moment dat we de variabele als object declareren, veroorzaakt dit een late binding en moeten we het sleutelwoord "Set" gebruiken om de referentie voor het vereiste object in te stellen.

Aangezien we verwijzen naar Excel-werkblad vanuit de toepassing Excel, voert u "Excel.Sheet" in tussen dubbele aanhalingstekens.

Code:

 Sub CreateObject_Example2 () Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") End Sub 

Zodra de referentie voor het Excel-blad is ingesteld, moeten we deze zichtbaar maken om het te gebruiken. Dit is vergelijkbaar met hoe we de PowerPoint-applicatie zichtbaar hebben gemaakt.

Code:

 Sub CreateObject_Example2 () Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub 

Nu wordt het Excel-werkblad geactiveerd.

Op dezelfde manier kunnen we de onderstaande code gebruiken om een ​​Excel-werkmap te starten vanuit andere Microsoft-producten.

Code:

 Sub CreateObject_Example3() Dim ExlWb As Object Set ExlWb = CreateObject("Excel.Application") ExlWb.Application.Visible = True End Sub 

Things to Remember About CreateObject in VBA

  • In VBA, the CreateObject function is used to reference objects.
  • Create Object function causes a late-binding process.
  • Using create object function we don’t get to access the intellisense list of VBA.