CreateObject, funksjon

Gjelder for
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Obs!

Funksjonen, metoden, objektet eller egenskapen som er beskrevet i dette emnet, er deaktivert hvis Microsoft Jet Expression-tjenesten kjører i sandkassemodus, noe som forhindrer evaluering av potensielt usikre uttrykk. Hvis du vil ha mer informasjon om sandkassemodus, kan du søke etter «sandkassemodus» i hjelpen.

Oppretter og returnerer en referanse til et ActiveX-objekt.

Syntaks

CreateObject(class [, servername] )

Syntaksen for funksjonen CreateObject har disse argumentene:

Argumenter Beskrivelse
klasse Obligatorisk. Variant (streng). Programnavnet og -klassen til objektet som skal opprettes.
Servernavn Valgfritt. Variant (streng). Navnet på nettverksserveren der objektet skal opprettes. Hvis servername er en tom streng (""), brukes den lokale datamaskinen.

    

Klasseargumentetbruker syntaksen appname.objecttype og har følgende deler:

Del Beskrivelse
appname Obligatorisk. Variant (streng). Navnet på programmet som leverer objektet.
objecttype Obligatorisk. Variant (streng). Objekttypen eller objektklassen som skal opprettes.

    

Merknader

Hvert program som støtter automatisering, inneholder minst én type objekt. Et tekstbehandlingsprogram kan for eksempel inneholde et programobjekt , et dokumentobjekt og et verktøylinjeobjekt .

Hvis du vil opprette et ActiveX-objekt, tilordner du objektet som returneres av CreateObject , til en objektvariabel:

Obs!

I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse fra rullegardinlisten ved siden av Søk og skriver inn ett eller flere søkeord i søkeboksen.

' 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 eksemplet skal vi automatisere et Excel-regnearkobjekt fra en Access-database. Denne koden starter programmet som oppretter objektet, i dette tilfellet et Microsoft Excel-regneark. Når et objekt er opprettet, refererer du til det i kode ved hjelp av objektvariabelen du definerte. I eksemplet nedenfor får du tilgang til egenskapene og metodene for det nye objektet ved hjelp av objektvariabelen ExcelSheet, og andre Excel-objekter, inkludert objektet Application og samlingen 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

Når du deklarerer en objektvariabel sammen med setningsdelen, As Object opprettes en variabel som kan inneholde en referanse til en hvilken som helst type objekt. Tilgang til objektet gjennom denne variabelen er imidlertid sent bundet. Det vil si at bindingen oppstår når programmet kjøres. Hvis du vil opprette en objektvariabel som fører til tidlig binding, det vil si binding når programmet kompileres, deklarerer du objektvariabelen med en bestemt klasse-ID. Du kan for eksempel deklarere og opprette følgende Excel-referanser:

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)

Referansen gjennom en tidlig bundet variabel kan gi bedre ytelse, men kan bare inneholde en referanse til klassen som er angitt i deklarasjonen.

Du kan sende et objekt som returneres av CreateObject-funksjonen til en funksjon som forventer et objekt som argument. Følgende kode oppretter og sender en referanse til et Excel.Application-objekt:

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

Du kan opprette et objekt på en datamaskin med et eksternt nettverk ved å sende navnet på datamaskinen til servernavn-argumentetfor CreateObject. Dette navnet er det samme som Maskinnavn-delen av et delingsnavn. For en ressurs med navnet «\\MinServer\Offentlig» er servernavnet «MinServer».

Obs!

Se COM-dokumentasjonen (se Microsoft Developer Network) for mer informasjon om hvordan du gjør et program synlig på en datamaskin med et eksternt nettverk Du må kanskje legge til en registernøkkel for programmet.

Følgende kode returnerer versjonsnummeret til en forekomst av Excel som kjører på en ekstern datamaskin kalt MyServer:

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

Hvis den eksterne serveren ikke eksisterer eller er utilgjengelig, oppstår det en kjøretidsfeil.

Obs!

Bruk CreateObject når det ikke finnes noen gjeldende forekomst av objektet. Hvis en forekomst av objektet allerede kjører, startes en ny forekomst, og et objekt av den angitte typen opprettes. For å bruke gjeldende forekomst, eller for å starte programmet og få det til å laste inn en fil, bruk GetObject-funksjonen .

Hvis et objekt har registrert seg som et enkeltforekomstobjekt, opprettes bare én forekomst av objektet, uansett hvor mange ganger CreateObject kjøres.

Eksempel

Dette eksemplet bruker CreateObject-funksjonen til å angi en referanse (

xlApp

) i Excel. Den bruker referansen for å få tilgang til Synlig-egenskapen i Excel, og bruker deretter Excel-avslutningsmetoden for å lukke den. Til slutt blir selve referansen utgitt.

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.