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")
I det här exemplet automatiserar vi ett Excel-kalkylbladsobjekt inifrån en Access-databas. Med den här koden börjar programmet att skapa objektet, i det här fallet ett Microsoft Excel-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
Om du deklarerar en objektvariabel med As Object -satsen skapas en variabel som kan innehålla en referens till alla typer av objekt. Åtkomsten till objektet genom variabeln är dock sen bunden. bindningen sker alltså när programmet körs. Om du vill skapa en objektvariabel som resulterar i tidig bindning, d.v.s. bindning när programmet kompileras, deklarerar du objektvariabeln med ett specifikt klass-ID. Du kan till exempel deklarera och skapa följande Excel-referenser:
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.