CreateObject-Funktion
Erstellt und gibt einen Verweis auf ein ActiveX-Objekt zurück.
Syntax
CreateObject(Klasse, [ Servername ])
Die Syntax der CreateObject-Funktion besteht aus den folgenden Teilen:
Teil | Beschreibung |
---|---|
Klasse | Erforderlich; Variant (String). Der Anwendungsname und die Klasse des zu erstellenden Objekts. |
Servername | Optional; Variant (String). Der Name des Netzwerkservers, auf dem das Objekt erstellt wird. Wenn Servername eine leere Zeichenfolge ("") ist, wird der lokale Computer verwendet. |
Das Argument class verwendet die Syntax appname. objecttype und umfasst die folgenden Teile:
Bestandteil | Beschreibung |
---|---|
appname | Erforderlich; Variant (String). Der Name der Anwendung, die das Objekt bereitstellt. |
Objekttyp | Erforderlich; Variant (String). Der Typ oder die Klasse des zu erstellenden Objekts. |
Hinweise
Jede Anwendung, die Automatisierung unterstützt, stellt mindestens einen Objekttyp bereit. Eine Anwendung zur Textverarbeitung kann beispielsweise ein Anwendung-Objekt, ein Dokument-Objekt und ein Symbolleiste-Objekt enthalten.
Um ein ActiveX-Objekt zu erstellen, weisen Sie das von CreateObject zurückgegebene Objekt einer Objektvariable zu.
' 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. Nachdem ein Objekt erstellt wurde, verweisen Sie in Ihrem Code mithilfe der Objektvariable darauf, die Sie definiert haben. 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.
' 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 Klausel As Object
wird eine Variable erstellt, die einen Verweis auf ein Objekt jedes Typs enthalten kann. Der Zugriff auf das Objekt durch diese Variable ist jedoch spät gebunden, d. h., die Bindung erfolgt bei der Ausführung des Programms. 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. Sie können z. B. die folgenden Microsoft Excel-Verweise deklarieren und erstellen:
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.
Sie können ein Objekt, das von der CreateObject-Funktion zurückgegeben wurde, an eine Funktion übergeben, die ein Objekt als Argument erwartet. Der folgende Code erstellt und übergibt z. B. einen Verweis auf ein Excel.Application-Objekt:
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. Dieser Name ist identisch mit dem Computernamenteil eines Freigabenamens. für eine Freigabe mit dem Namen "\MyServer\Public" lautet servername "MyServer".
Der folgende Code gibt die Versionsnummer einer Instanz von Excel zurück, die auf einem Remotecomputer namens MyServer
ausgeführt wird:
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.
Hinweis
Verwenden Sie CreateObject, wenn keine aktuelle Instanz des Objekts vorhanden ist. Wenn bereits eine Instanz des Objekts ausgeführt wird, wird eine neue Instanz gestartet und ein Objekt des angegebenen Typs wird erstellt. Um die aktuelle Instanz zu verwenden oder die Anwendung zu starten und eine Datei zu laden, verwenden Sie die GetObject-Funktion.
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.
Beispiel
In diesem Beispiel wird die CreateObject-Funktion verwendet, um einen Verweis (xlApp
) zu Microsoft Excel festzulegen. 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. Schließlich wird der Verweis selbst veröffentlicht.
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.
' Closes the application using the Quit method
xlApp.Quit
Siehe auch
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.