Mitunter kommt es zu Missverständnissen, wenn es darum geht, die Kompatibilität von VBA-Code für verschiedene Zielversionen sicherzustellen. Dieser Beitrag erläutert in Kürze die wichtigsten Grundlagen.
Von VBA 6.x zu VBA 7.x
Mit Office 2010 wurde eine neue VBA-Version namens VBA 7.0 eingeführt (mittlerweile VBA 7.1). Diese Version stellt unter anderem die Kompatibilität mit den 64-Bit-Versionen von Office und Windows sicher.
Wir hören und lesen oft, dass Benutzer ihre Anwendung nicht mehr nutzen können, weil diese nicht mit der 64-Bit-Version von Office kompatibel ist. Das liegt daran, dass die Deklarationen von API-Funktionen und den davon verwendeten Typen nicht mit der 64-Bit-Version von Office kompatibel sind.
In vielen Beispielen findet man dann eine Unterscheidung, die durch das Prüfen einer Kompilerkonstanten erfolgt. Diese sieht so aus:
#If VBA7 Then ''mit 64-Bit kompatibler Code #Else ''nicht mit 64-Bit kompatibler Code #End If
Im ersten Teil finden wir dann schon oft besprochene Änderungen für die Kompatibilität von APIs für 64-Bit wie das Schlüsselwort PtrSafe oder den Datentyp LongPtr.
Die Unterscheidung könnte zu dem Missverständnis führen, dass VBA7 synonym mit 64-Bit ist. Das ist aber nicht der Fall. Genau genommen macht diese Unterscheidung Folgendes: Sie hat im ersten Teil 64-Bit-kompatiblen Code, der aber nicht nur unter 64-Bit läuft, sondern auch unter 32-Bit. Wichtig ist, dass es VBA 7.x ist.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo