öffentlich
Redaktion Druckversion

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

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.

Als Mitglied können Sie diesen Beitrag weiterlesen!

Werden Sie Mitglied und testen Sie akademie.de 14 Tage lang kostenlos!

In den ersten 14 Tagen haben Sie Zugriff auf alle Inhalte auf akademie.de, außer Downloads. Sie können in dieser Zeit ohne Angabe von Gründen stornieren. Eine E-Mail an service@akademie.de genügt. Nur wenn Sie Mitglied bleiben, wird der Mitgliedsbeitrag nach Ende der 14tägigen Stornofrist abgebucht.

Ich bin bereits Mitglied
Jetzt Mitglied werden und akademie.de 14 Tage kostenlos testen
Ich entscheide mich für folgende Zahlungsweise:
14 Tage Stornorecht:
Ich kann meine Mitgliedschaft in den ersten 14 Tagen jederzeit formlos stornieren, z.B. per E-Mail an service@akademie.de.

Inhalt

Downloads zu diesem Beitrag

Über den Autor:

bild117282

Dieter Frommhold, Jahrgang 1943, Diplom-Lehrer für Physik und Mathematik, Verlagslektor und Programmierer. Seit 1971 langjährige Lehrtätigkeit über Betriebssysteme und Programmierung.

Ab 1994 arbe ...

Newsletter abonnieren