Excel Makros beschleunigen

Umfangreiche Makros können ganz schön zeitaufwendig werden. Je nach Art und Weise, wie das Makro Befehle ausführen soll, kann der Zeitaufwand für die Ausführung eines Makros stark variieren. Besonders zeitaufwendig sind z.B. Kopiervorgänge zwischen unterschiedlichen Arbeitsmappen, aufwendige Formelberechnungen oder Filterfunktionen großer Datenmengen.

Das Hauptproblem langsam ausgeführter Makros liegt in der Regel aber nicht an den Befehlen an sich. Mit jeder geänderten Zelle aktualisiert Excel die Ansicht. Diese ständige Aktualisierung, gerade wenn durch Formeln weitere Zellen betroffen sind, bremst das Makro regelrecht aus.

Dieser Vorgang kann im Makro allerdings auch problemlos ausgeschaltet werden. Dazu können Sie zu Beginn des Makros durch die beiden Zeilen

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

die Aktualisierung der Ansicht und die Neuberechnung der Zellen ausschalten.

Am Ende des Makros aktivieren Sie die Funktionen und starten die Neuberechnung wieder. Hierfür fügen Sie diese drei Zeilen am Ende vor “End Sub” ein.

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Call Calculate

Soll die automatische Zellberechnung einzeln aufrufbar sein, können Sie die zwei Zeilen Code auch in einzelne VBA Module auslagern. Bitte vergessen Sie anschließend jedoch nicht, die automatische Zellberechnung wieder zu aktivieren!

Sub Zellberechnung_deaktivieren()
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
End Sub

Sub Zellberechnung_aktivieren()
  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic
  Call Calculate
End Sub

Eine weitere Methode möglichst Ihre Rechenleistung optimal auszunutzen ist die Zuweisung der richtigen Variablentypen. Definieren Sie keinen Datentyp wird immer der Datentyp “Variant” standardmäßig verwendet. Das funktioniert nicht, wenn Sie am Anfang des Moduls “Open Explicit” definiert haben. Dann verlangt der VBA-Editor immer eine Definition sämtlicher Variablen. Eine ausführliche Definition der unterschiedlichen Variablentypen finden Sie bei Wikibooks. Auf eine ausführliche Behandlung der Thematik verzichte ich daher an dieser Stelle, da Sie auf dieser Seite wirklich eine sehr gute und ausführliche Erklärung finden und die Problematik nur am Rande das eigentlich hier besprochene Problem betrifft.

Sichere Variablendeklaration mit Option Explicit

 
Gefällt Ihnen der Beitrag?

3 Gedanken zu „Excel Makros beschleunigen“

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.