Makros können unser Leben erleichtern, sobald sie richtig ausgeführt werden. (Wenn sie nicht richtig laufen, ist das Leben definitiv nicht einfach.) Wenn Sie ein Makro haben, das viel Arbeit für Sie erledigt, könnten Sie daran interessiert sein, es schneller laufen zu lassen.

Die erste Aufgabe besteht natürlich darin, das Makro zu untersuchen und festzustellen, ob Ihre Algorithmen (wie Sie sich entschieden haben) so effizient wie möglich sind. Sobald Sie davon überzeugt sind, können Sie Ihre Makros auch beschleunigen, indem Sie einfach mehrere Anweisungen in dieselbe Zeile setzen. Betrachten Sie das folgende einfache Makro, das das vorherige Auftreten von etwas in einem Dokument findet:

Sub PrevFind()

With Selection.Find       .ClearFormatting       .Forward = False       .Wrap = wdFindAsk       .Execute    End With End Sub

Dieses Makro ist sehr einfach. Wenn Sie das Makro speichern, werden die darin enthaltenen Anweisungen auf Drei-Byte-Token reduziert, die von VBA effizienter ausgeführt werden können. (Sie sehen die Token nie; Sie sehen nur das makrosprachliche Äquivalent der Token.) Wenn das Makro ausgeführt wird, erfasst der VBA-Befehlsprozessor jeweils eine Zeile und führt alle Token in dieser Zeile aus. Somit gibt es oben acht Zeilen, die vom Prozessor einzeln abgerufen und ausgeführt werden.

Betrachten Sie nun die folgende Version desselben Makros:

Sub PrevFind()

With Selection.Find    .ClearFormatting: .Forward = False: .Wrap = wdFindAsk: .Execute End With: End Sub

Diese Version scheint viel kürzer zu sein, da einzelne Zeilen verkettet und mit einem Doppelpunkt getrennt wurden. Dies verringert die Lesbarkeit des Makros, erhöht jedoch die Geschwindigkeit, mit der es ausgeführt wird. Warum?

Weil der VBA-Befehlsprozessor immer noch eine Zeile zur Verarbeitung erfasst. In diesem Fall müssen nur vier Zeilen erfasst werden. Weniger „Greifzeit“ bedeutet, dass die Ausführung schneller ist. Die dritte Zeile dieses Makros, die früher vier Zeilen belegte, wird jetzt als einzelne Zeile verarbeitet.

Wenn Sie mehrere Anweisungen in dieselbe Zeile setzen, wird die Lesbarkeit eines Makros beeinträchtigt. Abhängig von Ihren Anforderungen kann dies jedoch ein fairer Kompromiss für die Geschwindigkeitssteigerung sein, die Sie möglicherweise erzielen. Sie müssen diese Technik in Ihren eigenen Makros ausprobieren, um festzustellen, ob sie für Sie sinnvoll ist.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die beliebteste Textverarbeitungssoftware der Welt.) Dieser Tipp (1640) gilt für Microsoft Word 97, 2000, 2002 und 2003.