Funktionen CreateObject

Gælder for
Access til Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Bemærk

Funktionen, metoden, objektet eller egenskaben, der er beskrevet i dette emne, deaktiveres, hvis Microsoft Jet Expression Service kører i sandkassetilstand, hvilket forhindrer evalueringen af potentielt usikre udtryk. Søg efter "sandkassetilstand" i Hjælp, hvis du vil have mere at vide om sandkassetilstand.

Opretter og returnerer en reference til et ActiveX-objekt.

Syntaks

CreateObject(klasse [, servernavn] )

Syntaksen for funktionen CreateObject har disse argumenter:

Argument Beskrivelse
klasse Obligatorisk. Variant (Streng). Programnavnet og klasse af det objekt, der skal oprettes.
servernavn Valgfrit. Variant (Streng). Navnet på den netværksserver, hvor objektet oprettes. Hvis servernavn er en tom streng (""), bruges den lokale computer.

    

Argumentet klassebruger syntaksen appname.objecttype og består af følgende dele:

Del Beskrivelse
appnavn Obligatorisk. Variant (Streng). Navnet på det program, der leverer objektet.
objekttype Obligatorisk. Variant (Streng). Den type eller klasse af objekt, der skal oprettes.

    

Bemærkninger

Hvert program, der understøtter automatisering, indeholder mindst én type objekt. Eksempelvis kan et program til tekstbehandling levere et program-objekt, et dokument-objekt og et værktøjslinje-objekt.

Hvis du vil oprette et ActiveX-objekt, skal du tildele det objekt, der returneres af CreateObject , til en objektvariabel:

Bemærk

Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.

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

I dette eksempel automatiserer vi et Excel-regnearksobjekt fra en Access-database. Denne kode starter programmet, der opretter objektet, i dette tilfælde et Microsoft Excel-regneark. Når et objekt er oprettet, skal du referere til det i kode ved hjælp af den objektvariabel, du har defineret. I følgende eksempel får du adgang til det nye objekts egenskaber og metoder ved hjælp af objektvariablen, ExcelSheetog andre Excel-objekter, herunder objektet Application 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 du erklærer en objektvariabel med delsætningen As Object , oprettes der en variabel, der kan indeholde en reference til en hvilken som helst type objekt. Adgangen til objektet via den pågældende variabel er dog sen bundet. Det vil altså være, 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 du erklære objektvariablen med et bestemt klasse-id. Du kan f.eks. erklære og oprette følgende Excel-referencer:

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)

Referencen gennem en tidligt bundet variabel kan give bedre ydeevne, men kan kun indeholde en reference til den klasse, der er angivet i erklæringen.

Du kan videregive et objekt, der returneres af funktionen CreateObject, til en funktion, der forventer et objekt som argument. Eksempelvis opretter og videregiver følgende kode en reference til et Excel.Application-objekt:

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

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

Bemærk

Se COM-dokumentationen (se MSDN (Microsoft Developer Network)) for at få mere at vide om at gøre et program synligt på en fjerncomputer i et netværk. Du skal muligvis tilføje en registreringsdatabasenøgle i dit program.

Følgende kode returnerer versionsnummeret på en forekomst af Excel, der 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 CreateObject, når der ikke er nogen aktuel 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. Brug funktionen GetObject for at bruge den aktuelle forekomst eller for at starte programmet og få det til at indlæse en fil.

Hvis et objekt har registreret sig som et enkelt-forekomst-objekt, oprettes der kun én forekomst af objektet, uanset hvor mange gange CreateObject køres.

Eksempel

I dette eksempel bruges funktionen CreateObject til at angive en reference (

xlApp

) til Excel. Referencen bruges til at få adgang til Excel-egenskaben Synlig og bruger derefter Excel-metoden Afslut til at lukke den. Til sidst frigives selve referencen.

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.