VBA lernen - Excel 2007/2010 (5)
Das Application-Objekt Excel als Container
Das Application-Objekt Excel als Container
Auf dieser Seite
Mit Bild
Wenn Sie nach der Notation eines Objekts (dabei müssen Sie nicht einmal auf die exakte Groß- und Kleinschreibung achten!) einen Punkt tippen, werden alle weiteren im Objekt enthaltenen Methoden und Eigenschaften automatisch angezeigt. Sie brauchen nur noch das Passende auszuwählen, z.B.:
Mit Bild
Information über enthaltene Objekte
Mit Bild
Das funktioniert allerdings nur, wenn das Objekt eindeutig erkennbar, d.h. korrekt geschrieben worden ist. Hilfe erhalten Sie ganz einfach über <F1> nach Markieren des betreffenden Begriffs. Beachten Sie dabei immer im Hilfefenster die Hinweise auf Beispiele. Diese sind sehr hilfreich und fördern Ihr Verständnis.
Mit Bild
Hilfefenster zur Worksheets-Eigenschaft
Mit Bild
Die folgende Zuweisung beschreibt deutlich das Wesen eines Containers. Sie sehen, wie ein Objekt ein weiteres enthält usw. Die Notation ist besonders wirksam und bewirkt, dass in der aktuellen Arbeitsmappe der Inhalt(das ist die Eigenschaft Value) der Zelle "A1" der "Tabelle1" gelesen und in "C5" der "Tabelle3" geschrieben wird.
Mit Bild
Application.ActiveWorkbook. _ Worksheets("Tabelle3"). _ Range("C5").Value = Application. _ ActiveWorkbook. _ Worksheets("Tabelle1"). _ Range("A1").Value
Mit Bild
Genau genommen ist die Angabe von Application überflüssig, da wir uns ja in der Applikation Excel befinden. In diesem Sinne brauchen Sie auch nicht ActiveWorkbook anzugeben. Ausserdem erfolgt der Zugriff auf value standardmäßig, so dass diese Angabe auch weggelassen werden kann. Die Anweisung reduziert sich somit auf:
Mit Bild
Worksheets("Tabelle3"). _ Range("C5") = _ Worksheets("Tabelle1").Range("A1")
Mit Bild
Beachten Sie bitte, dass es sich in den letzten beiden Beispielen um jeweils eine Anweisung handelt, die nur aus Gründen besserer Lesbarkeit als Fortsetzungszeilen geschrieben worden sind.
Eine interessante und nicht unwichtige Eigenschaft ist ScreenUpdating des Application-Objektes. Diese Eigenschaft kann mit False aus- und mit True eingeschaltet werden. Lediglich diese beiden Eigenschaftswerte legen fest, ob der Bildschirm nach jeder Aktion aktualisiert wird oder nicht. Die folgenden beiden Beispiele demonstrieren Ihnen die Wirkung.
Mit Bild
Sub Zählen_sichtbar() Dim I As Long Worksheets("Tabelle1"). _ Range("B10").ClearContents Application.ScreenUpdating = _ True 'Standard For I = 1 To 10000 Worksheets("Tabelle1"). _ Range("B10") = I Next End Sub
Mit Bild
Sub Zählen_unsichtbar() Dim I As Long Worksheets("Tabelle1"). _ Range("B10").ClearContents Application.ScreenUpdating = _ False For I = 1 To 10000 Worksheets("Tabelle1"). _ Range("B10") = I Next Application.ScreenUpdating = _ True End Sub
Mit Bild
Starten Sie die beiden Prozeduren von "Tabelle1" aus und beachten Sie das Geschehen in Zelle "B10" der "Tabelle1".
Mit Bild
Vergessen Sie niemals das ScreenUpdating wieder einzuschalten!
Mit Bild
Beachten Sie bitte das Folgende:
Mit Bild
Worksheets("Tabelle1"). _ Range("B10").ClearContents 'löscht den Inhalt der Zelle B10.
Mit Bild
'Aber: Worksheets("Tabelle1") _ .Range("B10").Delete 'entfernt das Objekt!
Mit Bild
Das nachstehende Bild vermittelt einen Eindruck von der Gesamtheit des Application-Objekts von Excel:
Mit Bild
Das Application-Objekt von Excel
Mit Bild
Eine weitere Hilfe zur Orientierung bietet der Objektkatalog, den Sie einfach über <F2> oder "Ansicht" - "Objektkatalog" bzw. das betreffende Symbol im VBA-Editor erreichen.
Mit Bild
Das Symbol Objektkatalog
Mit Bild
Der erste Anblick des Angebotes des Objektkatalogs erscheint Ihnen vermutlich durch seine Vielseitigkeit zu Beginn als sehr verwirrend.
Mit Bild
Objektkatalog zu Excel
Mit Bild
Um der anfänglichen Unsicherheit wirksam zu begegnen, ist es ratsam, zu Beginn Ihrer Programmiertätigkeit die betreffenden Aktionen mit den Objekten als Makro aufzuzeichnen und die erhaltenen VBA-Anweisungen in die gewünschte Prozedur zu kopieren.