| |

Word 2000: Übernommene Makros streiken
Aufgrund geänderter Suchcodes laufen einige Makros nicht, die für Word 97 erstellt wurden.
In der neuen VBA-Version 6.0 vom MS Office 2000 haben die Entwickler einige Codes für spezielle Dokumentelemente geändert, die in der Suchen-und-Ersetzen-Funktion eingesetzt werden. Dadurch kommt es unweigerlich zu Problemen, wenn Sie Makros aus MS Office 97 in die aktuelle Version übernehmen, die solche Codes enthalten.
Ein Beispiel: Ein für Word 97 erstelltes VBA-Listing enthält eine Funktion, um Absatzmarken (¶) zu suchen und zu ersetzen. Die entsprechende Anweisung sieht beispielsweise so aus:
With Selection.Find
.Text = "^a" >
.Replacement.Text = "^a^a"
End With
Selection.Find.Execute Replace: = wdReplaceAll
Führen Sie ein Listing mit einer solchen Anweisung in Word 2000 aus, werden die Absatzmarken nicht gefunden.
Steht dabei - wie in diesem Beispiel - der Zeichencode ^a auch in der Zeile .Replacement.Text = , um Absatzmarken in das Dokument einzufügen, erhalten Sie zusätzlich einen Laufzeitfehler.
Verantwortlich für diese Probleme ist die Änderung der Suchcodes: Unter VBA 6.0 ist der Code für Absatzmarken nicht mehr ^a, sondern ^p.
Damit ein entsprechendes Makro auch unter Word 2000 läuft, öffnen Sie das Listing hier im VBA-Editor und ersetzen alle Codes ^a durch ^p. Anschließend funktioniert das Makro wie gewohnt.
Die folgende Tabelle bietet eine Übersicht aller Suchcodes, die sich geändert haben. Wie Sie hier sehen, steht der Zeichencode ^a unter VBA 6 jetzt stellvertretend für ein Kommentarzeichen. Eine komplette Übersicht der Zeichen finden Sie in der VBA-Hilfe unter dem Suchbegriff Execute-Methode (Find-Objekt).
VBA 6.0: Geänderte Suchcodes
Hier finden Sie eine Übersicht der geänderten Spezialcodes für die Suchen-und-Ersetzen-Funktion in Makros.
|
| Element
| MS Office 97
| MS Office 2000
|
| Absatzmarke (¶) |
^a |
^p |
| Geschütztes Leerzeichen |
^g |
^s |
| Geschützter Trennstrich |
^_ |
^~ |
| Kommentarzeichen |
^5 |
^a |
| Grafik |
^r |
^g |
| Leerfläche |
^l |
^w |
| Manueller Zeilenwechsel |
^z |
^l |
|