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.