VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: GetObject-Funktion

Gibt einen Verweis auf ein ActiveX-Objekt aus einer Datei zurück.

Syntax

GetObject([pathname] [, class])

Die Syntax der GetObject-Funktion besteht aus diesen benannten Argumenten:

Teil Beschreibung
pathname Optional. Ein Wert vom Typ Variant (String). Der vollständige Pfad und Name der Datei, die das abzurufende Objekt enthält. Wird pathname nicht angegeben, so ist class erforderlich.
class Optional. Ein Wert vom Typ Variant (String). Eine Zeichenfolge, die die Klasse des Objekts darstellt.

Das Argument class verwendet die Syntax AnwName.Objekttyp und die folgenden Teile:

Teil Beschreibung
AnwName Erforderlich. Ein Wert vom Typ Variant (String). Der Name der Anwendung, die das Objekt bereitstellt.
Objekttyp Erforderlich. Ein Wert vom Typ Variant (String). Der Typ oder die Klasse des zu erstellenden Objekts.

Bemerkungen

Verwenden Sie die GetObject-Funktion für den Zugriff auf ein ActiveX-Objekt aus einer Datei, und weisen Sie das Objekt einer Objektvariablen zu. Verwenden Sie die Set-Anweisung, um das von GetObject zurückgegebene Objekt der Objektvariablen zuzuweisen. Beispielsweise:

Dim CADObjekt As Object
Set CADObjekt = GetObject("C:\CAD\SCHEMA.CAD")

Hinweis   Bei Macintosh ist der Standardname des Laufwerks “HD” und die Bestandteile des Pfadnamens werden durch Doppelpunkt statt durch umgekehrte Schrägstriche getrennt. An Stelle von \Windows würden Sie entsprechende Macintosh-Ordner angeben.

Wenn dieser Code ausgeführt wird, wird die mit dem angegebenen pathname verbundene Anwendung gestartet, und das Objekt in der angegebenen Datei wird aktiviert.

Ist pathname eine Null-Zeichenfolge (""), so gibt GetObject eine neue Instanz des Objekts vom angegebenen Typ zurück. Wird das Argument pathname nicht angegeben, so gibt GetObject ein momentan aktives Objekt vom angegebenen Typ zurück. Existiert kein Objekt vom angegebenen Typ, tritt ein Fehler auf.

Einige Anwendungen erlauben es, einen Teil einer Datei zu aktivieren. Fügen Sie am Ende des Dateinamens ein Ausrufezeichen (!) hinzu, gefolgt von der Zeichenfolge, die den zu aktivierenden Teil der Datei angibt. Weitere Informationen über die Erstellung dieser Zeichenfolge finden Sie in der Dokumentation zu der Anwendung, die das Objekt erstellt hat.

In einer Grafikanwendung beispielsweise verfügen Sie über mehrere Schichten einer Zeichnung, die in einer Datei gespeichert sind. Sie können den folgenden Code zur Aktivierung einer Schicht innerhalb einer Zeichnung namens SCHEMA.CAD verwenden:

Set SchichtObjekt = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

Wenn Sie das class-Argument des Objekts nicht angeben, bestimmt die Automatisierung, welche Anwendung gestartet werden soll, sowie das zu aktivierende Objekt, basierend auf dem bereitgestellten Dateinamen. Einige Dateien können jedoch mehr als eine Klasse eines Objekts unterstützen. Eine Zeichnung kann z.B. drei unterschiedliche Objekttypen unterstützen: Ein Application-Objekt, ein Drawing-Objekt und ein Toolbar-Objekt, wobei alle drei Teil der gleichen Datei sind. Verwenden Sie das optionale Argument class, um festzulegen, welches Objekt in der Datei Sie aktivieren wollen. Beispiel:

Dim MeinObjekt As Object
Set MeinObjekt = GetObject("C:\DRAWINGS\BEISPIEL.DRW", "FIGMENT.DRAWING")

Im obigen Beispiel ist FIGMENT der Name einer Grafikanwendung und DRAWING einer der unterstützten Objekttypen.

Wurde ein Objekt aktiviert, so verweisen Sie im Code mit Hilfe der definierten Objektvariablen darauf. Im folgenden Beispiel greifen Sie auf Eigenschaften und Methoden des neuen Objekts über die Objektvariable MeinObjekt zu. Beispiel:

MeinObjekt.Line 9, 90
MeinObjekt.InsertText 9, 100, "Hallo !"
MeinObjekt.SaveAs "C:\ENTWURF\BEISPIEL.DRW"

Anmerkung   Verwenden Sie die GetObject-Funktion, wenn eine aktuelle Instanz des Objekts existiert oder wenn Sie das Objekt mit einer bereits geladenen Datei erstellen wollen. Wenn keine aktuelle Instanz existiert und Sie das Objekt nicht mit einer geladenen Datei starten wollen, verwenden Sie die CreateObject-Funktion.

Wenn ein Objekt sich selbst als ein Objekt mit nur einer Instanz registriert hat, wird nur eine Instanz des Objekts erstellt, ungeachtet dessen, wie oft CreateObject ausgeführt wird. Bei einem Objekt mit nur einer Instanz gibt GetObject bei einem Aufruf mit einer Null-Zeichenfolge ("") immer die gleiche Instanz zurück. Ein Fehler tritt auf, wenn das Argument pathname nicht angegeben wird. Sie können GetObject nicht verwenden, um einen Verweis auf eine mit Visual Basic erstellte Klasse zu erhalten.