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

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.

 

Schreibe einen Kommentar

*