Einfach auf Excel-Objekte zugreifen
Auf dieser Seite
Mit Bild
VBA ist objektorientiert. Diese Aussage wird jetzt für Sie mit Leben erfüllt.
Mit Bild
Aufgabe:
Zunächst öffnen Sie die Datei Lösungen_Excelobjekte.xlsm.
Sie befinden sich in "Tabelle2".
In Zelle D10 haben Sie einen beliebigen Inhalt eingegeben und die Eingabe beendet. Sorgen Sie dafür, dass diese Zelle aktiv bleibt, d.h. sie ist noch markiert.
Folgende Aktionen zeichnen Sie bitte als Makro auf:
Sie wählen "Bearbeiten" - "Kopieren".
Danach wechseln Sie in das Tabellenblatt "Tabelle3".
Dort klicken Sie auf Zelle "H8".
Jetzt fügen Sie mit "Bearbeiten" - "Einfügen" den aktuellen Inhalt der Zwischenablage in die aktive Zelle "H8".
Über die Formatsymbolleiste formatieren Sie den Inhalt der aktuellen Zelle "H8" fett.
Beenden Sie bitte die Aufzeichnung.
Mit Bild
Diese Aktionen haben Sie in einer Prozedur aufgezeichnet, die so aussehen kann:
Mit Bild
Sub Makro1() ' Makro1 Makro ' Selection.Copy Sheets("Tabelle3").Select Range("H8").Select ActiveSheet.Paste Selection.Font.Bold = True End Sub
Mit Bild
Immer, wenn Sie eine beliebige Zelle in dieser Arbeitsmappe auswählen und das Makro aufrufen, wird der Inhalt der ausgewählten Zelle nach "Tabelle3" Zelle "H8" kopiert und fett dargestellt.
Mit Bild
Nun ist diese Aktionsfolge noch nichts Weltbewegendes, aber anhand dieser soll die Philosophie (!) der Sprache VBA erklärt werden. Die Notation des objektorientierten VBA bezüglich der Bearbeitung von Objekten ist allgemein.
Mit Bild
objekt.methode und objekt.eigenschaft=wert
Die Anweisung Selection.Copy besagt, dass der Inhalt der aktuellen Markierung in die Zwischenablage kopiert wird.
Das Objekt ist der markierte (ausgewählte) Bereich und heißt Selection. Die darauf angewandte Methode ist Copy.
Weiterhin wird mit Sheets("Tabelle3").Select die "Tabelle3" ausgewählt. Das Objekt ist die Tabelle3, die Methode Select.
Mit Range("H8").Select wird die Zelle H8 des aktuellen Arbeitsblattes ausgewählt. Das Objekt ist der Bereich Zelle H8, die Methode kennen Sie bereits.
ActiveSheet.Paste fügt in das Objekt ActiveSheet ab der ausgesuchten Zelle (Sie erinnern sich: H8) mit der Methode Paste den zuletzt gespeicherten Inhalt der Zwischenablage ein.
Im Objekt des aktuell markierten Bereiches, das Selection liefert, gibt es ein weiteres Objekt Font, das die Darstellung des Inhalts bestimmt. Dessen Eigenschaft Bold (fett) wird mit True (wahr) eingeschaltet: Selection.Font.Bold = True.
Soweit zum ersten Verständnis der Begriffe Objekt, Methode und Eigenschaft. Bitte bedenken Sie, die Methoden verschiedener Objekte sind unterschiedlich - genauso wie deren Eigenschaften.
Mit Bild
Lassen Sie sich von der Fülle der Methoden nicht irritieren! Sie benötigen für Ihre Arbeit nur einen ganz geringen Anteil der angebotenen Möglichkeiten.
Wenn Sie den Namen bestimmter Aktionen nicht kennen, zeichnen Sie sich diese einfach zu Ihrem Erkenntnisgewinn als Makro XYZ auf. Wenn Sie die Prozedur Makro XYZ nicht mehr benötigen, können Sie es später einfach entfernen.
Unbekannte Schlüsselworte oder Parameter können Sie markieren und sich nach Drücken von <F1> in der Hilfe erklären lassen.