VBA lernen - Excel 2007/2010 (5)

Das Application-Objekt Excel als Container

Bisher noch keine Bewertungen für diesen Artikel.

Das Application-Objekt Excel als Container

Auf dieser Seite

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.:

60495_bild03.jpg

Information über enthaltene Objekte

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.

60496_bild04.jpg

Hilfefenster zur Worksheets-Eigenschaft

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.

Application.ActiveWorkbook. _
Worksheets("Tabelle3"). _
Range("C5").Value = Application. _
ActiveWorkbook. _
Worksheets("Tabelle1"). _
Range("A1").Value

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:

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 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.

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!

Beachten Sie bitte das Folgende:

Worksheets("Tabelle1"). _
Range("B10").ClearContents 
'löscht den Inhalt der Zelle B10.

'Aber: 
Worksheets("Tabelle1") _
.Range("B10").Delete 
'entfernt das Objekt!

Das nachstehende Bild vermittelt einen Eindruck von der Gesamtheit des Application-Objekts von Excel:

60497_bild01.jpg

Das Application-Objekt von Excel

Eine weitere Hilfe zur Orientierung bietet der Objektkatalog, den Sie einfach über <F2> oder "Ansicht" - "Objektkatalog" bzw. das betreffende Symbol im VBA-Editor erreichen.

60498_bild05.jpg

Das Symbol Objektkatalog

Der erste Anblick des Angebotes des Objektkatalogs erscheint Ihnen vermutlich durch seine Vielseitigkeit zu Beginn als sehr verwirrend.

60499_bild06.jpg

Objektkatalog zu Excel

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.