CreateObject-FunktionCreateObject function

Erstellt und gibt einen Verweis auf ein ActiveX-Objekt zurück.Creates and returns a reference to an ActiveX object.

SyntaxSyntax

CreateObject(Klasse, [ Servername ])CreateObject(class, [ servername ])


Die Syntax der CreateObject-Funktion besteht aus den folgenden Teilen:The CreateObject function syntax has these parts:

TeilPart BeschreibungDescription
Klasseclass Erforderlich; Variant (String).Required; Variant (String). Der Anwendungsname und die Klasse des zu erstellenden Objekts.The application name and class of the object to create.
Servernameservername Optional; Variant (String).Optional; Variant (String). Der Name des Netzwerkservers, auf dem das Objekt erstellt wird.The name of the network server where the object will be created. Wenn Servername eine leere Zeichenfolge ("") ist, wird der lokale Computer verwendet.If servername is an empty string (""), the local machine is used.

Das Klasse-Argument verwendet die Syntax appname._ objecttype_ und besteht aus den folgenden Teilen:The class argument uses the syntax appname.objecttype and has these parts:

TeilPart BeschreibungDescription
appnameappname Erforderlich; Variant (String).Required; Variant (String). Der Name der Anwendung, die das Objekt bereitstellt.The name of the application providing the object.
Objekttypobjecttype Erforderlich; Variant (String).Required; Variant (String). Der Typ oder die Klasse des zu erstellenden Objekts.The type or class of object to create.

HinweiseRemarks

Jede Anwendung, die Automatisierung unterstützt, stellt mindestens einen Objekttyp bereit.Every application that supports Automation provides at least one type of object. Eine Anwendung zur Textverarbeitung kann beispielsweise ein Anwendung-Objekt, ein Dokument-Objekt und ein Symbolleiste-Objekt enthalten.For example, a word processing application may provide an Application object, a Document object, and a Toolbar object.

Um ein ActiveX-Objekt zu erstellen, weisen Sie das von CreateObject zurückgegebene Objekt einer Objektvariable zu.To create an ActiveX object, assign the object returned by CreateObject to an object variable.

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

Dieser Code startet die Anwendung, die das Objekt erstellt, in diesem Fall eine Microsoft Excel-Kalkulationstabelle.This code starts the application creating the object, in this case, a Microsoft Excel spreadsheet. Nachdem ein Objekt erstellt wurde, verweisen Sie in Ihrem Code mithilfe der Objektvariable darauf, die Sie definiert haben.After an object is created, you reference it in code by using the object variable you defined. Im folgenden Beispiel greifen Sie auf die Eigenschaften und Methoden des neuen Objekts mithilfe der Objektvariablen ExcelSheet und anderer Microsoft Excel-Objekte zu, einschließlich des Application-Objekts und der Cells-Sammlung.In the following example, you access properties and methods of the new object by using the object variable, ExcelSheet, and other Microsoft Excel objects, including the Application object and the Cells collection.

' 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


Durch Deklarieren einer Objektvariablen mit der As Object-Klausel erstellen Sie eine Variable, die einen Verweis auf ein Objekt jedes Typs enthalten kann.Declaring an object variable with the As Object clause creates a variable that can contain a reference to any type of object. Der Zugriff auf das Objekt durch diese Variable ist jedoch spät gebunden, d. h., die Bindung erfolgt bei der Ausführung des Programms.However, access to the object through that variable is late bound; that is, the binding occurs when your program is run. Um eine Objektvariable zu erstellen, die in einer frühen Bindung resultiert, d. h. einer Bindung bei der Kompilierung des Programms, deklarieren Sie die Objektvariable mit einer bestimmten Klassen-ID.To create an object variable that results in early binding, that is, binding when the program is compiled, declare the object variable with a specific class ID. Sie können z. B. die folgenden Microsoft Excel-Verweise deklarieren und erstellen:For example, you can declare and create the following Microsoft Excel references:

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)


Der Verweis durch eine früh gebundene Variable kann eine bessere Leistung erzielen, kann aber nur einen Verweis auf die Klasse enthalten, die unter Deklaration angegeben ist.The reference through an early-bound variable can give better performance, but can only contain a reference to the class specified in the declaration.

Sie können ein Objekt, das von der CreateObject-Funktion zurückgegeben wurde, an eine Funktion übergeben, die ein Objekt als Argument erwartet.You can pass an object returned by the CreateObject function to a function expecting an object as an argument. Der folgende Code erstellt und übergibt z. B. einen Verweis auf ein Excel.Application-Objekt:For example, the following code creates and passes a reference to a Excel.Application object:

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

Sie können ein Objekt auf einem Remotenetzwerkcomputer erstellen, indem Sie den Namen des Computers an das Servername-Argument von CreateObject übergeben.You can create an object on a remote networked computer by passing the name of the computer to the servername argument of CreateObject. Dieser Name besteht aus der Computernamen-Komponente eines Freigabenamens; für den Freigabenamen "\MyServer\Public" lautet der Servername "MyServer".That name is the same as the Machine Name portion of a share name; for a share named "\MyServer\Public," servername is "MyServer."

Der folgende Code gibt die Versionsnummer einer Instanz von Excel wieder, die auf einem Remotecomputer mit dem Namen MyServer ausgeführt wird:The following code returns the version number of an instance of Excel running on a remote computer named MyServer:

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

Wenn der Remoteserver nicht vorhanden oder nicht verfügbar ist, tritt ein Laufzeitfehler auf.If the remote server doesn't exist or is unavailable, a run-time error occurs.

Hinweis

Verwenden Sie CreateObject, wenn keine aktuelle Instanz des Objekts vorhanden ist.Use CreateObject when there is no current instance of the object. Wenn bereits eine Instanz des Objekts ausgeführt wird, wird eine neue Instanz gestartet und ein Objekt des angegebenen Typs wird erstellt.If an instance of the object is already running, a new instance is started, and an object of the specified type is created. Um die aktuelle Instanz zu verwenden oder die Anwendung zu starten und eine Datei zu laden, verwenden Sie die GetObject-Funktion.To use the current instance, or to start the application and have it load a file, use the GetObject function.

Wenn sich ein Objekt als Objekt einer einzigen Instanz registriert hat, wird nur eine Instanz des Objekts erstellt, unabhängig davon, wie oft CreateObject ausgeführt wird.If an object has registered itself as a single-instance object, only one instance of the object is created, no matter how many times CreateObject is executed.

BeispielExample

In diesem Beispiel wird die CreateObject-Funktion verwendet, um einen Verweis (xlApp) zu Microsoft Excel festzulegen.This example uses the CreateObject function to set a reference (xlApp) to Microsoft Excel. Der Verweis wird für den Zugriff auf die Sichtbar-Eigenschaft von Microsoft Excel verwendet, und dann wird zum Schließen die Beenden-Methode von Microsoft Excel verwendet.It uses the reference to access the Visible property of Microsoft Excel, and then uses the Microsoft Excel Quit method to close it. Schließlich wird der Verweis selbst veröffentlicht.Finally, the reference itself is released.

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.

Siehe auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.