Das Application-Objekt Excel als Container
Nach Ihrer Notation eines Objekts gefolgt mit Punkt werden alle weiteren darin enthaltenen Objekte, Methoden und Eigenschaften automatisch angezeigt. Sie brauchen nur das Passende auszuwählen, z.B.:
Information über enthaltene Objekte
Das funktioniert allerdings nur, wenn das Objekt eindeutig erkennbar ist.
Hilfefenster zur Worksheets-Eigenschaft
Hilfe erhalten Sie ganz einfach über <F1> nach Markieren des unbekannten Wortes. Beachten Sie dabei immer im Hilfefenster die Hinweise auf Beispiele. Diese sind sehr hilfreich und fördern das Verständnis.
Die folgende Zuweisung beschreibt sehr deutlich das Wesen eines Containers und ist besonders wirksam.
Code:
Application.ActiveWorkbook. _
Worksheets("Tabelle3").Range("C5") = _
Application.ActiveWorkbook. _
Worksheets("Tabelle1").Range("A1")
In der aktuellen Arbeitsmappe wird der Inhalt der Zelle A1 der Tabelle1 gelesen und in C5 der Tabelle3 geschrieben.
Die Angabe von Application ist überflüssig, da wir uns ja im Excel befinden. Genauso braucht man in diesem Fall nicht ActiveWorkbook anzugeben. Die Anweisung reduziert sich somit auf:
Code:
Worksheets("Tabelle3").Range("C5") = _
Worksheets("Tabelle1").Range("A1")
Beachten Sie bitte, dass es sich in den letzten beiden Beispielen um jeweils eine Anweisung handelt, die nur 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 sollen Ihnen die Wirkung demonstrieren.
Beispiel:
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
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
Starten Sie die beiden Prozeduren von Tabelle1 aus und beachten Sie das Geschehen in Zelle B10 der Tabelle1.
Vergessen Sie niemals das ScreenUpdating wieder einzuschalten!
Worksheets("Tabelle1"). _
Range("B10").ClearContents
löscht den Inhalt der Zelle B10.
Aber: Worksheets("Tabelle1") _
.Range("B10").Delete
entfernt diese Zelle!
Das folgende Bild will einen Eindruck von der Gesamtheit des Application-Objekts von Excel vermitteln.
Das Application-Objekt von Excel
Eine weitere Hilfe zur Orientierung bietet der Objektkatalog, den Sie einfach über <F2> oder "Ansicht" - "Objektkatalog" bzw. das Symbol im VBA-Editor erreichen.
Das Symbol Objektkatalog
Der erste Anblick des Angebotes des Objektkatalogs erscheint Ihnen vermutlich durch seine Vielseitigkeit zu Beginn als sehr verwirrend.
Objektkatalog zu Excel
Um der anfänglichen Unsicherheit zu begegnen, ist es ratsam, zu Beginn die Aktionen mit den Objekten als Makro aufzuzeichnen und die betreffenden VBA-Anweisungen in die gewünschte Prozedur zu kopieren.