Ein zentrales Element, das über die Objektbibliothek
einer Applikation zur Verfügung gestellt wird, ist das Application-Objekt.
Dies ist ein Dreh- und Angelpunkt für die Zugriffe auf unsere Applikation. Zum
Beispiel hat das Application-Objekt eine Name
-Eigenschaft:
Debug.Print Application.Name
Natürlich ist der Rückgabetext von Application.Name
je nach
Applikation unterschiedlich.
Ein Application-Objekt hat zahlreiche Eigenschaften, Methoden und vor allem
Unterobjekte. Was man üblicherweise über die Oberfläche des Programms macht, kann
man auch über das Application-Objekt steuern. Vom Application-Objekt aus kann man
sich sogar in einer Anwendung, die man nicht so gut kennt, durch deren Unterobjekte
„durchhangeln“. Natürlich unterscheiden sich je nach Applikation die Unterobjekte
sowie deren Eigenschaften und Methoden, denn auch die jeweiligen Applikationen
sind ja ganz unterschiedlich. Wollen wir z. B. wissen, wie die erste geöffnete
Datei der Applikation heißt, müssen wir in den allermeisten Programmen zuerst in
der Auflistung der Dateien das richtige Unterobjekt finden, und dessen
Name
-Eigenschaft aufrufen:
Excel | Debug.Print Application.Workbooks(1).Name |
PowerPoint | Debug.Print Application.Presentations(1).Name |
Project | Debug.Print Application.Projects(1).Name |
Publisher | Debug.Print Application.Documents(1).Name |
Visio | Debug.Print Application.Documents(1).Name |
Word | Debug.Print Application.Documents(1).Name |
Wie man sieht, ähnelt sich die jeweilige Vorgehensweise. So kann man in Excel den Namen des zweiten Arbeitsblatts in der ersten geöffneten Datei wie folgt erfahren:
Debug.Print Application.Workbooks(1).Worksheets(2).Name Tabelle2
Vergleicht man die Applikationen, erlebt man manchmal erstaunliche Unterschiede in ihrem Verhalten:
1
zu zählen, in manchen allerdings mit 0
.Name
-Eigenschaft. So genügt es in
Word-VBA, Debug.Print Application
zu schreiben, um die
Name-Eigenschaft abzurufen. In einigen anderen Applikationen muss die
gewünschte Eigenschaft explizit angegeben werden, damit kein Fehler
verursacht wird.Debug.Print Application.Documents(1).Name
dieses
Dokument zurück, obwohl zuvor ein anderes Dokument die Nummer 1
war. In anderen Applikationen wie Excel werden neue Objekte dagegen
stets ans Ende der Auflistung gestellt.Da man sich üblicherweise allerdings doch nur in einer einzigen Applikation bewegt, wird man mit deren Eigenheiten schnell vertraut und betrachtet dann deren Verhalten sogar als Normal.
Wichtig ist, sich im jeweiligen Objektmodell
zurechtzufinden. Jede Applikation besitzt seine eigene, mehr oder weniger umfangreiche
und komplexe Objekthierarchie, die sich außerdem noch von Version zu Version leicht
unterscheidet. Hier hilft nur ein Blick in die
Hilfe in VBA, die man mit F1
aufruft. Dort öffnet man das
Inhaltsverzeichnis und wählt Entwicklerreferenz bzw. Objektmodellreferenz
des jeweiligen Programms aus (Die Begriffe sind nicht ganz einheitlich). Die Programme
von Microsoft Office enthalten zudem jeweils zwei Objektmodellreferenzen: Einmal
die Objektreferenz der jeweiligen Applikation und einmal die Office-Objektreferenz.
Anstelle der Hilfe kann man auch bei microsoft.com die
Onlinereferenz nutzen.