Pour résoudre le problème et permettre au code VBA de fonctionner correctement à la fois dans des environnements 32 bits et 64 bits, plusieurs fonctionnalités de langage ont été ajoutées à VBA. Le tableau au bas de ce document résume ces différentes fonctionnalités de langage VBA. Les trois principaux ajouts sont l’
alias de type LongPtr, le
type de données LongLong et le
mot clé PtrSafe.
- LongPtr - VBA inclut dorénavant un alias de type de variable : LongPtr. Le type de données résolu par LongPtr varie selon la version d’Office exécutée : LongPtr est résolu en Long dans les versions 32 bits d’Office et LongPtr est résolu en LongLong dans les versions 64 bits d’Office. Utilisez LongPtr pour les pointeurs et les handles.
- LongLong – Le type de données LongLong est un entier signé 64 bits disponible uniquement sur les versions 64 bits d’Office. Utilisez LongLong pour les intégrales 64 bits. Les fonctions de conversion doivent être utilisées pour affecter explicitement le type LongLong (y compris le type LongPtr sur les plateformes 64 bits) à des types d’intégrales plus petites. Les conversions implicites de LongLong vers des intégrales plus petites ne sont pas autorisées.
- PtrSafe – Le mot clé PtrSafe indique que l’instruction Declare peut être exécutée en toute sécurité dans les versions 64 bits d’Office.
Toutes les instructions Declare doivent dorénavant inclure le mot clé
PtrSafe lorsqu’elles sont exécutées dans les versions 64 bits d’Office. Il est important de comprendre qu’ajouter le mot clé
PtrSafe à une instruction
Declare indique seulement que l’instruction
Declare cible explicitement les versions 64 bits ; tous les types de données concernés par l’instruction qui requièrent le stockage de 64 bits (y compris les paramètres et les valeurs renvoyées) doivent être modifiés pour contenir des quantités 64 bits.