Funktionen CreateObject

Bemærk: Den funktion, metode, objekt eller egenskab, som beskrives i dette emne er deaktiveret, hvis Microsoft Jet-udtrykstjenesten er i sandkassetilstand, der forhindrer evaluering af udtryk, der muligvis ikke er sikre. Yderligere oplysninger om sandkassetilstand finder du i Hjælp ved at søge på "sandkassetilstand".

Med denne funktion oprettes og returneres en reference til et ActiveX Data Objects (ADO).

Syntaks

CreateObject(class [, servername] )

Syntaksen for funktionen CreateObject har følgende argumenter:

Argument

Beskrivelse

class

Påkrævet. Variant (String). Programnavnet og klassen for det objekt, der skal oprettes.

servername

Valgfri. Variant (String). Navnet på den netværksserver, hvor objektet oprettes. Hvis servername er en tom streng (""), anvendes den lokale computer.


argumentclass anvender syntaksen appname.objecttype og består af følgende dele:

Del

Beskrivelse

appname

Påkrævet. Variant (String). Navnet på det program, der leverer objektet.

objecttype

Påkrævet. Variant (String). Typen eller klasse af det objekt, der skal oprettes.


Bemærkninger

Alle de programmer, der understøtter automatisering, indeholder mindst én type objekt. Et tekstbehandlingsprogram kan f.eks. indeholde et programobjekt, et dokumentobjekt og et værktøjslinjeobjekt.

Et ActiveX-objekt oprettes ved at tildele det objekt, der returneres af CreateObject, til en objektvariabel:

Bemærk: I de følgende eksempler demonstreres brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Du kan få yderligere oplysninger om arbejde med VBA ved at vælge Udviklerreference på rullelisten ud for Søg og indtaste et eller flere udtryk i søgeboksen.

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

Denne kode starter det program, hvori objektet oprettes, der i dette tilfælde er et Microsoft Office Excel 2007-regneark. Når et objekt er oprettet, refererer du til det i kode ved hjælp af den objektvariabel, du har defineret. I følgende eksempel får du adgang til egenskab og Metode for det nye objekt ved hjælp af objektvariablen, ExcelSheet, samt andre Excel-objekter, herunder Application-objektet og Cells-samlingen.

' 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

Når der oprettes en objektvariabel med delsætningen As Object, oprettes der en variabel, der kan indeholde en henvisning til en hvilken som helst type objekt. Adgang til objektet via denne variabel sker dog med sen binding, dvs. at bindingen sker, når programmet køres. Hvis du vil oprette en objektvariabel, der resulterer i tidlig binding, dvs. binding, når programmet kompileres, skal objektvariablen defineres med et bestemt klasse-id. Du kan f.eks. definere og oprette følgende Excel-henvisninger:

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)

Henvisninger via en tidligt bundet variabel kan give bedre ydeevne men kan kun indeholde en henvisning til den klasse, der er angivet i erklæring.

Du kan overføre et objekt, der er returneret med funktionen CreateObject, til en funktion, der forventer et objekt som argument. Med følgende kode oprettes og overføres der f.eks. en henvisning til et Excel.Application-objekt:

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

Du kan oprette et objekt på en fjerncomputer i et netværk ved at overføre navnet på computeren til argumentet servername for CreateObject. Dette navn er det samme som maskinnavnedelen af et sharenavn: for et share med navnet "\\MyServer\Public," er servername "MyServer."

Bemærk:  Se COM-dokumentationen (se Microsoft Developer Network) for at få yderligere oplysninger om at gøre et program synligt for en fjerncomputer i et netværk. Du skal muligvis tilføje en registreringsnøgle for programmet.

Med følgende kode returneres varsionsnummeret for en forekomst af Excel, som kører på en fjerncomputer med navnet MyServer:

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

Hvis fjernserveren ikke findes eller ikke er tilgængelig, opstår der en kørselsfejl..

Bemærk:  Brug funktionen CreateObject, hvis der ikke findes en forekomst af objektet. Hvis der allerede kører en forekomst af objektet, startes der en ny forekomst, og der oprettes et objekt af den angivne type. Hvis du vil bruge den aktuelle forekomst eller starte programmet og lade det indlæse en fil, skal du bruge funktionen GetObject.

Hvis et objekt har registreret sig selv som et objekt med en enkelt forekomst, oprettes der kun en enkelt forekomst af objektet, uanset hvor mange gange CreateObject udføres.

Eksempel

I dette eksempel anvendes funktionen CreateObject til at angive en henvisning (

xlApp

) til Excel. Til funktionen anvendes henvisningen til at få adgang til egenskaben Synlig i Excel og bruger derefter Excel-metoden Afslut til at lukke den. Til sidst frigives selve henvisningen.

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.
Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×