Opmerking: De functie, methode, object of eigenschap die in dit onderwerp wordt beschreven, is uitgeschakeld als de Microsoft Jet Expression-service wordt uitgevoerd in de sandbox-modus, waardoor de evaluatie van mogelijk onveilige expressies wordt voorkomen. Zoek naar 'sandbox-modus' in de Help voor meer informatie over de sandboxmodus.
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")
In dit voorbeeld automatiseren we een Excel-spreadsheetobject vanuit een Access-database. Met deze code wordt de toepassing gestart die het object maakt, in dit geval een Microsoft Excel-spreadsheet. 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.