VBA für Einsteiger - MS Excel 2003 (6)

Von: Dieter Frommhold
Stand: 23. März 2007
4
(1)
Beitrag bewerten
Anmelden um Kommentare zu schreiben

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
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein