Funktionen CreateObject

Obs!: Funktionen, metoden, objektet eller egenskapen som beskrivs i det här avsnittet inaktiveras om Microsoft Jet Expression Service körs i begränsat läge, vilket förhindrar utvärderingen av potentiellt osäkra uttryck. Om du vill ha mer information om begränsat läge söker du efter "begränsat läge" i hjälpen.

Skapar och returnerar en referens till ett ActiveX-objekt.

Syntax

CreateObject ( klass [, servernamn] )

CreateObject-funktionens syntax har följande argument:

Argument

Beskrivning

klass

Obligatoriskt. Variant (sträng). Programmets namn och klass för objektet som ska skapas.

servernamn

Valfritt. Variant (sträng). Namnet på servern där objektet ska skapas. Om servernamn är en tom sträng ("") används den lokala datorn.


Klass argument använder syntax appnamn.objekttyp och har följande delar:

Del

Beskrivning

appname

Obligatoriskt. Variant (sträng). Namnet på programmet som tillhandahåller objektet.

objecttype

Obligatoriskt. Variant (sträng). Typ eller klass av objekt du vill skapa.


Anmärkningar

Alla program som stöder automation innehåller minst en objekttyp. I ett ordbehandlingsprogram kan det till exempel finnas ett Programobjekt, ett Dokumentobjekt och ett Verktygsfältobjekt.

Om du vill skapa ett ActiveX-objekt tilldelar du objektet som returneras av CreateObject till en objektvariabel:

Obs!: I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.

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

Med den här koden börjar programmet att skapa objektet som i det här fallet är ett Microsoft Office Excel 2007-kalkylblad. När ett objekt har skapats kan du referera till det i koden genom att använda objektvariabeln som du har definierat. I följande exempel kommer du åt egenskaper och metoder för det nya objektet med hjälp av objektvariabeln ExcelSheet, och andra Excel-objekt, inklusive Application-objektet och 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 en objektvariabel med As Object deklareras, skapas en variabel som kan innehålla en referens till alla typer av objekt. Åtkomst till objektet via variabeln är har sen bindning. Det innebär att bindningen inträffar när programmet körs. Om du vill skapa en objektvariabel som resulterar i tidig bindning, d.v.s. bindningen sker när programmet kompileras, deklarerar du objektvariabeln med ett specifikt klass-ID. Du kan till exempel deklarera och skapa följande referenser i Excel:

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)

Referensen till en variabel med tidig bindning kan ge bättre prestanda, men kan endast innehålla en referens till den klass som anges i deklaration.

Du kan skicka ett objekt som returneras av CreateObject-funktionen till en funktion som tar ett objekt som ett argument. Följande kod skapar och skickar en referens till ett Excel.Application-objekt:

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

Du kan skapa ett objekt på en dator ansluten till ett fjärrnätverk genom att ange namnet på datorn till argumentet servernamn för CreateObject. Namnet är detsamma som datornamnet i ett resursnamn: för en resurs med namnet "\\MyServer\Public" är servernamn "MyServer."

Obs!:  Mer information om hur du gör ett program synligt på en fjärransluten dator finns i COM-dokumentationen (se Microsoft Developer Network). Du kan behöva lägga till en registernyckel för programmet.

Följande kod returnerar versionsnumret för en instans av Excel som körs på en fjärrdator med namnet MyServer:

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

Ett fel uppstår om fjärrservern inte finns eller inte är tillgänglig.

Obs!:  Använd CreateObject när objektet inte har några aktuella instanser. Om en instans av objektet körs startar en ny instans och ett objekt av angiven typ skapas. Om du vill använda den aktuella instansen eller starta programmet och läsa in en fil kan du använda GetObject-funktionen.

Om ett objekt har registrerat sig själv som ett objekt med en enstaka instans skapas bara en förekomst av objektet oavsett hur många gånger CreateObject körs.

Exempel

I det här exemplet används CreateObject-funktionen för att ange en referens (

xlApp

) till Excel. Referensen används för åtkomst till egenskapen Synlig i Excel och använder Excel sedan metoden Avsluta för att stänga den. Slutligen släpps själva referensen.

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.
Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×