CreateObject, functie

Opmerking: De functie, de methode, het object of de eigenschap die wordt beschreven in dit onderwerp is uitgeschakeld als de Microsoft Jet Expression-service wordt uitgevoerd in de sandbox-modus. In deze modus wordt de evaluatie van mogelijk onveilige expressies voorkomen. Als u meer wilt weten over de sandbox-modus, zoekt u in de Help naar 'sandbox-modus'.

Hiermee maakt of retourneert u een verwijzing naar een ActiveX-object.

Syntaxis

CreateObject ( klasse [, servernaam] )

De syntaxis van de functie CreateObject bevat deze argumenten:

Argument

Beschrijving

klasse

Vereist. Variant (tekenreeks). De toepassingsnaam en -klasse van het object dat u wilt maken.

servernaam

Optioneel. Variant (tekenreeks). De naam van de netwerkserver waarop het object wordt gemaakt. Als servernaam een lege tekenreeks ("") is, wordt de lokale computer gebruikt.


Het klasse-argument gebruikt de syntaxis appnaam.objecttype en bestaat uit deze onderdelen:

Onderdeel

Beschrijving

toepassingsnaam

Vereist. Variant (tekenreeks). De naam van de toepassing die het object levert.

objecttype

Vereist. Variant (tekenreeks). Het type of de klasse van het object dat moet worden gemaakt.


Opmerkingen

Elke toepassing die automatisering ondersteunt, bevat ten minste één type object. Een tekstverwerkingsprogramma kan bijvoorbeeld een Application-object, een Document-object en een Toolbar-object bevatten.

Als u een ActiveX-object wilt maken, wijst u het object dat wordt geretourneerd door CreateObject toe aan een objectvariabele:

Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

Met deze code start u de toepassing voor het maken van het object, in dit geval een spreadsheet van Microsoft Office Excel 2007. Wanneer een object is gemaakt, kunt u er in code naar verwijzen met behulp van de objectvariabele die u hebt gedefinieerd. In het volgende voorbeeld gebruikt u eigenschappen en methoden van het nieuwe object met behulp van de objectvariabele ExcelSheet, en andere objecten van Excel, waaronder het Application-object en de verzameling Cells.

' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing

Als u een objectvariabele declareert met de component As Object, wordt er een variabele gemaakt die een verwijzing naar elk type object kan bevatten. De toegang tot het object via deze variabele gebeurt echter via late binding, namelijk op het moment dat het programma wordt uitgevoerd. Als u een objectvariabele met vroege verbinding wilt maken, wat inhoudt dat de binding plaatsvindt als het programma wordt gecompileerd, moet u de objectvariabele declareren met een bepaalde klasse-id. U kunt bijvoorbeeld de volgende Excel-verwijzingen declareren en maken:

Dim xlApp As Excel.Application 
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

De verwijzing via vroege binding van een variabele kan weliswaar resulteren in betere prestaties, maar er mag alleen worden verwezen naar de klasse die is opgegeven in de declaratie.

U kunt een object dat wordt geretourneerd door de functie CreateObject doorgeven aan een functie die een object als argument verwacht. Met de volgende code wordt er bijvoorbeeld een Excel.Application-object gemaakt en wordt er ook een verwijzing naar dit object doorgegeven:

Call MySub (CreateObject("Excel.Application"))

U kunt een object maken op een externe computer in het netwerk door de naam van de computer door te geven via het argument servernaam van CreateObject. Deze naam is hetzelfde als het onderdeel Computernaam van een share-naam: voor een share met de naam '\\MijnServer\Public', komt servernaam overeen met 'MijnServer'.

Opmerking:  Raadpleeg documentatie over COM (ga naar Microsoft Developer Network) voor meer informatie over het zichtbaar maken van een toepassing op een externe computer in het netwerk. Het is mogelijk dat u een registersleutel moet toevoegen voor uw toepassing.

Met de volgende code wordt het versienummer opgevraagd van een exemplaar van Excel dat wordt uitgevoerd op een externe computer met de naam MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Als de externe server niet bestaat of niet beschikbaar is, treedt er een runtimefout op.

Opmerking:  Gebruik CreateObject als er nog geen exemplaar van het object bestaat. Als er al een exemplaar van het object wordt uitgevoerd, wordt er een nieuw exemplaar gestart en wordt er een object van het opgegeven type gemaakt. Als u het huidige exemplaar wilt gebruiken, of de toepassing wilt starten en daarna een bestand wilt laden, gebruikt u de functie GetObject.

Als een object zichzelf heeft geregistreerd als een object met één exemplaar, wordt er maar één exemplaar van het object gemaakt, ongeacht hoe vaak CreateObject wordt uitgevoerd.

Voorbeeld

In dit voorbeeld wordt de functie CreateObject gebruikt voor het instellen van een verwijzing (

xlApp

) naar Excel. De verwijzing wordt gebruikt om toegang te krijgen tot de eigenschap Visible, waarna Excel via de methode Quit van Excel wordt afgesloten. Ten slotte wordt de verwijzing zelf vrijgegeven.

Dim xlApp As Object    ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application")
' You may have to set Visible property to True
' if you want to see the application.
xlApp.Visible = True
' Use xlApp to access Microsoft Excel's
' other objects.
xlApp.Quit ' When you finish, use the Quit method to close
Set xlApp = Nothing ' the application, then release the reference.
Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×