Variablen in Objekten in VBA (Variablen in Objekten in VBA), Lektion, Seite 723835
https://www.purl.org/stefan_ram/pub/variablen_in_objekten_vba (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
VBA-Kurs

Variablen in Objekten in VBA

Variablen in Objekten

Das VBA.Err-Objekt enthält eine Variable »Number« vom Typ »Long« – den Typ »Long« kann man sich wie den schon bekannten Typ »Integer« vorstellen.

Das Objekt »VBA.Err« als ein Verzeichnis mit einem Eintrag »Number«
  VBA.Err
.----------------.
| Number As Long |
'----------------'

Für die Variable »Number« aus dem Objekt »VBA.Err« schreibt man »VBA.Err.Number«

Modul1

Option Explicit

Sub Main()

Debug.Print VBA.Information.VarType( VBA.Err.Number ) ' vbLong (3), Typ der Variablen
Debug.Print VBA.VbVarType.vbLong
Debug.Print VBA.Information.TypeName( VBA.Err.Number ) ' Long, Typ des Inhaltes der Variablen
Debug.Print VBA.Information.IsObject( VBA.Err.Number ) ' Falsch, Inhalt ist kein Objekt
Debug.Print VBA.Err.Number ' Lesen (0)
Let VBA.Err.Number = 7 ' Schreiben
Debug.Print VBA.Err.Number ' Lesen (7)

End Sub

transcript
 3 
3
Long
Falsch
0
7

Es gibt noch eine andere Variable im selben Objekt.

Das Objekt »VBA.Err« als ein Verzeichnis mit zwei Einträgen
  VBA.Err
.------------------.
| Number As Long |
| Source As String |
'------------------'
Modul1

Option Explicit

Sub Main()

Debug.Print VBA.Information.VarType( VBA.Err.Source ) ' vbString (8), Typ der Variablen
Debug.Print VBA.VbVarType.vbString
Debug.Print VBA.Information.TypeName( VBA.Err.Source ) ' String, Typ des Inhaltes der Variablen
Debug.Print VBA.Information.IsObject( VBA.Err.Source ) ' Falsch, Inhalt ist kein Objekt
Debug.Print VBA.Err.Source ' Lesen ("")
Let VBA.Err.Source = "S" ' Schreiben
Debug.Print VBA.Err.Source ' Lesen ("S")

End Sub

transcript
 8 
8
String
Falsch

S

Die Variablen eines Objektes werden auch Eigenschaften, Attribute  oder Felder  genannt.

Eckige Klammern

Die Namen von Einträgen dürfen bei ihrer Verwendung hinter dem Punkt ».« in eckige Klammern  eingeschlossen werden.

Modul1

Option Explicit

Sub Main()

Debug.Print VBA.Err

Debug.Print VBA.[Err]

End Sub

Protokoll

0

0

Das Einschließen in eckige Klammern ist dann nötig, wenn auf Namen zugegriffen werden soll, die Grundstriche »_« enthalten, wie in dem folgenden Beispiel.

Modul1

Option Explicit

Sub Main()

Debug.Print VBA.[_HiddenModule].StrPtr( "abc" )

End Sub

Protokoll
 51559476 

Solche Namen werden aber nur für Einträge verwendet, die normalerweise gar nicht oder nur ganz selten benötigt werden.

Übungsaufgaben

/   Übungsaufgabe

(Diese Übungsaufgabe setzt eine Bearbeitung in Excel  voraus.)

Das Objekt »Excel.Application« enthält eine Variable »Caption«.

Schreiben Sie ein Programm mit den folgenden Schritten:

(Damit auf Excel  zugegriffen werden kann, muß die Excel -Bibliothek in VBA  eingebunden sein. Dies ist normalweise der Fall, wenn der VBE  von Excel  aus geöffnet wird.)

Kuriosität Klammern ⃗

Das folgende Programm zeigt, daß direkt hinter dem Namen einer Eigenschaft auch ein Paar runder Klammern zulässig ist, obwohl dies nichts an der Bedeutung des Ausdrucks ändert. Es bringt aber zum Ausdruck, daß das Lesen einer Eigenschaft tatsächlich eine interne Prozedur eines Objektes starten kann, so daß es sich wie ein Funktionsaufruf auswirken kann.

Modul1

Option Explicit

Sub Main()

Debug.Print VBA.Information.VarType( VBA.Err.Source() ) ' vbString (8), Typ der Variablen
Debug.Print VBA.VbVarType.vbString
Debug.Print VBA.Information.TypeName( VBA.Err.Source() ) ' String, Typ des Inhaltes der Variablen
Debug.Print VBA.Information.IsObject( VBA.Err.Source() ) ' Falsch, Inhalt ist kein Objekt
Debug.Print VBA.Err.Source() ' Lesen ("")
Let VBA.Err.Source() = "S" ' Schreiben
Debug.Print VBA.Err.Source() ' Lesen ("S")

End Sub

Protokoll
 8 
8
String
Falsch

S

Tatsächlich gibt es auch Eigenschaften, die Argumente  akzeptieren, welche Ihnen wie beim Aufruf einer Funktion, die Parameter hat, übergeben werden.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723835 stefan_ram:723835 Variablen in Objekten in VBA Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723835, slrprddef723835, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/variablen_in_objekten_vba