Objektvariable - ein mächtiges Werkzeug
Mit Objektvariablen machen Sie ihren Code übersichtlicher und benutzerfreundlicher, denn Objektvariable können anscheinend ganze Excelobjekte aufnehmen.
Erinnern Sie sich noch an einen langen unhandlichen Ausdruck wie ActiveWorkbook.Worksheets("Tabelle1").Range("B10"), der letztlich nur eine bestimmte Zelle beschrieb? Das kann über eine Objektvariable wesentlich verkürzt werden, indem Sie erklären, dass solch eine Variable einfach diesen Ausdruck aufnimmt.
Beispiel:
Sub bsp1()
Dim Quelle As Object
Dim Ziel As Object
Set Quelle = ActiveWorkbook. _
Worksheets("Tabelle1").Range("B10")
Set Ziel = ActiveWorkbook. _
Worksheets("Tabelle3").Range("C15")
Quelle = InputBox("Geben Sie irgendetwas ein!")
Ziel = Quelle 'Toll!
Worksheets("Tabelle3").Activate
End Sub
Rufen Sie doch das Beispiel bsp1 aus der beigefügten Datei Lösungen_Excelobjekte auf.
Eine Anweisung wie Dim Quelle As Object definiert eine Variable zur scheinbaren Aufnahme eines ganzen Objekts.
In Wirklichkeit nennt man diese Vereinbarung einen Zeiger(Pointer), da letztlich vom Objektnamen aus auf ein Objekt gezeigt wird.
Deshalb wird einer Objektvariable ein Wert mit Set name= ... zugewiesen.
In der Wirkung erscheint es so, als ob die Variable ein ganzes Objekt aufgenommen hätte.
Die Vereinbarung Dim Ziel As Object kann noch günstiger notiert werden, da die Variable letztlich einen Bereich(Range) aufnehmen soll, wird sie auch ausdrücklich als eine Range-Variable definiert.
Dim Quelle As Range.
Das geht recht einfach, denn nach dem Schlüsselwort As und folgendem Leerzeichen werden alle verfügbaren Variablentypen in einer Liste zur Auswahl angezeigt.
Verwenden aller Objekttypen
Einfach auf den gewünschten Variablentyp klicken und die Vereinbarung ist fertig.
Das hat viele Vorteile. Notieren Sie bitte deshalb folgendes an das Ende der obigen Prozedur:
Verwenden einer explizit vereinbarten Objektvariablen
Bei einer expliziten Objektvereinbarung weiß der VBA-Editor sofort, welche Methoden und Eigenschaften das Objekt der Objektvariablen hat; Sie müssen nicht mehr in der Hilfe suchen. Zudem wird das Codieren wesentlich einfacher.
Die Eigenschaft value ist der Inhalt einer Zelle. Value ist i.A. Standard und kann deshalb weggelassen werden.
Übrigens
Mit Objektvariablen können Sie auch zu anderen Applikationen zugreifen, z.B. auf Microsoft Word. Damit steuern Sie Dokumente von Excel aus. Wie das geht, erfahren Sie in Teil 9.
Dies ist eine Leseprobe
Möchten Sie den Beitrag komplett lesen? Dann werden Sie Probemitglied und testen Sie akademie.de 14 Tage kostenlos!
Auf VBA Excel 2003 (6): Excelobjekte erfahren Sie mehr über diesen Beitrag und die weiteren Leseproben.
Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.
Ich bin bereits Mitglied