Obs!: Funksjonen, metoden, objektet eller egenskapen som beskrives i dette emnet, er deaktivert hvis Microsoft Jet Expression Service 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 Hjelp.
Oppretter og returnerer en referanse til et ActiveX-objekt.
Syntaks
CreateObject ( class [, servername] )
Syntaksen for funksjonen CreateObject har følgende argumenter:
Argument |
Beskrivelse |
klasse |
Obligatorisk. Variant (streng). Programnavnet og klassen for objektet som skal opprettes. |
Servernavn |
Valgfritt. Variant (streng). Navnet på nettverksserveren der objektet skal opprettes. Hvis servernavn er en tom streng (""), brukes den lokale datamaskinen. |
Klassen argument bruker syntaksappnavnet.objecttype og har disse delene:
Del |
Beskrivelse |
appname |
Obligatorisk. Variant (streng). Navnet på programmet som inneholder objektet. |
objecttype |
Obligatorisk. Variant (streng). Typen eller klasse objektet som skal opprettes. |
Kommentarer
Hvert program som støtter automatisering gir minst én type objekt. Et tekstbehandlingsprogram kan for eksempel gi 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 automatiserer vi 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 det til i kode ved hjelp av objektvariabelen du definerte. I eksemplet nedenfor får du tilgang til egenskaper og metoder for det nye objektet ved hjelp av objektvariabelen, ExcelSheetog andre Excel-objekter, inkludert 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 du deklarerer en objektvariabel med As Object -setningsdelen, opprettes en variabel som kan inneholde en referanse til alle typer objekter. Tilgang til objektet gjennom denne variabelen er imidlertid forsinket bundet. det vil eksempelvis oppstå bindingen når programmet kjøres. Hvis du vil opprette en objektvariabel som resulterer i tidlig binding, det vil si binding når programmet kompileres, deklarerer du objektvariabelen med en bestemt klasse-ID. Du kan for eksempel erklære 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 klasse som er angitt i deklarasjon.
Du kan sende et objekt som returneres av CreateObject-funksjonen , til en funksjon som forventer et objekt som et argument. Følgende kode oppretter og sender for eksempel en referanse til et Excel.Application-objekt:
Call MySub (CreateObject("Excel.Application"))
Du kan opprette et objekt på en ekstern nettverksdatamaskin ved å sende navnet på datamaskinen til servernavnargumentetfor CreateObject. Dette navnet er det samme som Maskinnavn-delen av et delingsnavn: For en delt ressurs kalt \\Minserver\Offentlig er servernavnet «Minserver».
Obs!: Se COM-dokumentasjon (se Microsoft Developer Network) for mer informasjon om hvordan du gjør et program synlig på en ekstern nettverksdatamaskin. 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 finnes 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. Hvis du vil bruke gjeldende forekomst, eller for å starte programmet og få det til å laste inn en fil, bruker du 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
) til Excel. Den bruker referansen til å få tilgang til egenskapen Synlig i Excel, og bruker deretter Excel Quit-metoden til å lukke den. Til slutt utgis selve referansen.
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.