32-Bit, 64-Bit, VBA-Version und Co.

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

Schreibe einen Kommentar