öffentlich
Redaktion Druckversion

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

Die Methode eines Objekts mit einem Makro aufzeichnen

Der VBA-Code, Objekte, Methoden und Eigenschaften

Wechseln Sie in den Visual Basic-Editor. Der Programmcode der aufgezeichneten Prozedur zeigt zunächst nach den Kommentarzeilen für den uneingeweihten Nutzer unverständliche Anweisungen der Programmiersprache VBA.

VBA (Visual Basic for Applications) ist objektorientiert. Das bedeutet, Objekte wie z.B. Tabellenblätter, Zellen oder ganze Bereiche lassen sich auf bestimmte Art und Weisen, den so genannten Methoden und Eigenschaften behandeln.

Allgemeine Notation:

object.methode parameter

object.eigenschaft = parameter (Erkennbar am "=")

Parameter können auch fehlen, z.B. ein Sheet bzw. ein Worksheet sind jeweils Objekte.

Sie können z.B. ein Sheet (das ist entweder eine Tabelle oder ein Diagrammblatt einer Excel-Arbeitsmappe) oder ein Worksheet (das kann nur eine Tabelle einer Excel-Arbeitsmappe sein) mit der Methode Select auswählen, um durch das Programm darauf zuzugreifen. Zum Beispiel mit

Sheets("Diagramm1").Select

Worksheets("Tabelle1").Select

wird das jeweilige Blatt angezeigt und aktiviert, dass es weitere Zugriffe ermöglicht.

Ein Sheet oder Worksheet erreichen Sie über so genannte Auflistungen.
Das Plural-"s" macht die Notation z.B. Sheets oder Worksheets zu Auflistungen. In der Auflistung befinden sich diese Objekte.

Ein Index zur Auswahl eines bestimmten Objekts der Auflistung wird in einem folgenden Klammerpaar als Namen oder natürliche Zahl angegeben.

Sheets("Tabelle 1") stellt das Objekt Tabelle 1 bereit
oder Sheets(1) macht das Objekt erstes Blatt in der Auflistung verfügbar.

Notieren Sie in Mitarbeiter.xls im Modul 1 unter der bereits bestehenden Prozedur.

Sub übung1()

Sheets("Tabelle3").Select
'
zeigt und aktiviert Tabelle 3

End Sub

Sub übung2()

Worksheets("Tabelle2").Select
'
zeigt und aktiviert Tabelle 2

End Sub

Sub übung3()

Worksheets.Add
'
fügt eine neue Tabelle ein und aktiviert sie

End Sub

Sub übung4()

Worksheets(2).Delete
'
Entfernt die 2.Tabelle der Auflistung Worksheets

End Sub

Im obigen Beispiel werden für das Object Worksheet die Methoden Select, Add und Delete angewendet.

Klicken Sie in der Tabellenansicht auf Tabelle 1, und rufen Sie die Prozeduren nacheinander auf. Beobachten Sie, was geschieht

Sollte eine Prozedur nicht fehlerfrei laufen, erscheint eine Fehlermeldung, z.B.

Fehlermeldung

Klicken Sie "OK". Danach wird im Visual Basic-Editor eine gelb hinterlegte Markierung der fehlerhaften Anweisung gezeigt.

Wählen Sie im Visual Basic-Editor "Ausführen" - "Zurücksetzen" und korrigieren Sie den Fehler (Schreibfehler? Oder wurde die Tabelle inzwischen gelöscht?).

Wie schon erwähnt, verfügen Objekte auch über bestimmte (von Objekt zu Objekt unterschiedliche) Eigenschaften, womit bei den Objekten eben diese vorhandenen "Eigenschaften" wie z.B. Farbe, Inhalt, Hintergrund, Sichtbarkeit usw. verändert werden können.

Sub übund5()

Sheets("Tabelle3").Select

Sheets("Tabelle3").Name = "Kosten"
'
Die "Tabelle 3" wird in "Kosten" umbenannt

End Sub

Sub übung6()

Sheets("Kosten").Select

Range("A3").FormulaR1C1 = "Erfolg!"
'
A3 wird Inhalt "Erfolg" zugewiesen

Range("A3").Font.Bold = True
'
Inhalt von A3 erscheint fett

End Sub

Font ist übrigens ein Objekt für einen Range mit der die Eigenschaft Bold (= fett) ein- oder ausgeschaltet werden kann.

Übernehmen Sie auch diese beiden letzten Prozeduren in Mitglieder.xls und rufen Sie diese zur Kontrolle auf.

Jetzt können Sie sich schon die ersten beiden Anweisungen der aufgezeichneten Prozedur aufzeichnen aus Punkt 3.2. besser erklären.

Die vorletzte Anweisung

Selection.QueryTable.Refresh _
BackgroundQuery:=False

erscheint Ihnen sicherlich jetzt noch etwas kompliziert, später aber nicht mehr.

Selection ist das aktuell ausgewählte Objekt in Tabelle 1 nach Ausführung von Range("A3").Select ist das die Zelle A3.

QueryTable ist eine Eigenschaft für das ausgewählte Range-Objekt (dazu wurde vorher "A3" aktiviert). Diese Eigenschaft gibt eine aktualisierte Tabelle einer Query-Abfrage(Objekt) zurück, die das angegebene Range-Objekt (hier A3)überschneidet

Refresh ist eine Methode für das Query-Objekt, die es aktualisiert. Der Methodenparameter BackgroundQuery wird ausgeschaltet, das bedeutet, dass dieser Refresh nicht im Hintergrund sondern synchron (also jetzt, zum Zeitpunkt der Abfrage)durchgeführt wird.

Die Handhabung von Objekten, Methoden und Eigenschaften (Was gibt es da alles?) ist sehr umfangreich, deshalb sollten Sie am Anfang ganz pragmatisch kleine Makros aufzeichnen und diese zu größeren Programmen zusammensetzen. Damit erhalten Sie, was Sie benötigen. Nebenbei lernen Sie auch die Objekte, Methoden und Eigenschaften kennen und können sich diese einprägen, um sie später zu notieren.

Den professionellen Umgang mit Objekten durch den Objektkatalog lernen Sie später in einem anderen Seminar kennen.

Benötigen Sie Hilfe zu dem einen oder anderen Code-Wort, klicken Sie auf das betreffende Wort im Programmcode und drücken Sie <F1>

Kontexthilfe

und wählen Sie "Hilfe".

Hier finden Sie die notwendigen Erklärungen.

Visual Basic-Hilfe

Achten Sie auf die aufgeführten Beispiele, sind sehr hilfreich!

Visual Basic-Beispiel

Starten Sie nun Ihre VBA-Programmierkarriere zunächst durch. "Learning by doing"!

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

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