Objekte in VBA
Wir haben schon Verzeichnisse, wie die Bibliothek »VBA« und Unterverzeichnisse wie das Modul »VBA.Constants« sowie deren Einträge, etwa Werte wie »VBA.Constants.vbNewLine«, Funktionen wie »VBA.Math.Rnd« oder Subs wie »VBA.FileSystem.MkDir« kennengelernt. Objekte sind ebenfalls solche Verzeichnisse.
Ein Objekt ist ein Verzeichnis.
- Einige Namen für bestimmte Arten von Verzeichnissen
- Projekt
- Bibliothek
- Modul
- Klasse
- Objekte
Das Debug-Objekt
Ein Objekt haben wir schon kennengelernt und häufig benutzt, es ist das Objekt »Debug«. Es enthält eine Prozedur »Print« als Eintrag, mit der Informationen als Text ausgegeben werden können.
- Das Objekt »Debug« als ein Verzeichnis mit einem Eintrag »Print«
Debug
.--------------.
| Print |
'--------------'Modul1
Sub Main()
Debug.Print 123
End Sub
transcript
123
Man sieht, daß man eine Prozedur »Print«, die sich innerhalb eines Objekts »Debug« befindet, als »Debug.Print« angeben kann.
Es ist hilfreich, daß wir diese Schreibweise mit dem Punkt ».« nun an Hand eines schon vertrauten Objektes beschreiben konnten, allerdings muß man dazu sagen, daß »Debug« kein richtiges Objekt (obwohl es in der Dokumentation manchmal als solches bezeichnet wird), sondern mehr eine Imitation eines Objektes ist, denn es fehlen im einige andere Kennzeichen von Objekten. Wir werden uns daher nun anderen Beispielen zuwenden.
Das VBA.Err-Objekt
Das VBA.Err-Objekt kann durch den Ausdruck »VBA.Err« ausgedrückt werden.
Es handelt sich dabei um ein einzelnes Objekt, das in bestimmten Fällen Informationen über den letzten aufgetretenen VBA -Fehler enthält.
Wir können zunächst einmal sehen, daß dieses Objekt ein Objekt ist und sein Typ den Namen »ErrObject« hat.
Modul1
Option Explicit
Sub Main()
Debug.Print VBA.Information.IsObject( VBA.Err ) ' Wahr, Inhalt ist Objekt
Debug.Print VBA.Information.TypeName( VBA.Err ) ' ErrObject, Typ des ObjektsEnd Sub
transcript
Wahr
ErrObject
Klassen
Der Typ eines Objektes wird auch als eine Klasse bezeichnet.
Objekterkennung
Modul1
Option Explicit
Sub Main()
Dim I As Integer
Let I = 0
Debug.Print VBA.Information.IsObject( I ) ' Inhalt ist weder Objekt noch Nothing
Debug.Print IEnd Sub
transcript
Falsch
Modul1
Option Explicit
Sub Main()
Dim S As String
Let S = "0"
Debug.Print VBA.Information.IsObject( S ) ' Falsch, Inhalt ist weder Objekt noch Nothing
Debug.Print SEnd Sub
transcript
Falsch