29.09.2022, 10:50
Hallo ins Forum,
einer unserer Kunden hat beim Vorabtest mit Excel M365 festgestellt dass Variablen als Long definiert seinen und es daher Kompatibilitätsprobleme gäbe.
Die Excelmappen laufen bei uns auf Excel 2016 sowohl in der 32Bit und in der 64Bit-Version.
Die declare-Anweisungen sind entsprechend mit bedingter Kompilierung #VBA7 bzw #Win64 deklariert z.B.:
1. Frage: Gibt es neuere Excelversionen wo die reinen "As Long" Anweisung Probleme haben?
2. Frage: Was würde passieren wenn alle "As Long" Anweisungen als "As LongPtr" deklariert würden (bei Einsatz von Excelversionen ab Excel2010)?
3. Frage: Gibt es z.B. in Verbindung mit Microsoft 365 neuere VBA-Versionen (VBA8 oder sowas)?
Gruß
rawa
einer unserer Kunden hat beim Vorabtest mit Excel M365 festgestellt dass Variablen als Long definiert seinen und es daher Kompatibilitätsprobleme gäbe.
Die Excelmappen laufen bei uns auf Excel 2016 sowohl in der 32Bit und in der 64Bit-Version.
Die declare-Anweisungen sind entsprechend mit bedingter Kompilierung #VBA7 bzw #Win64 deklariert z.B.:
Code:
#If VBA7 Then
Private Type uPicDesc
Size As Long
Type As Long
hPic As LongPtr
hPal As LongPtr
End Type
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hWnd As LongPtr) As Long
Private Declare PtrSafe Function GetClipboardData Lib "user32" (ByVal wFormat As Integer) As LongPtr
#Else
Private Type uPicDesc
Size As Long
Type As Long
hPic As Long
hPal As Long
End Type
Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Integer) As Long
#End if
1. Frage: Gibt es neuere Excelversionen wo die reinen "As Long" Anweisung Probleme haben?
2. Frage: Was würde passieren wenn alle "As Long" Anweisungen als "As LongPtr" deklariert würden (bei Einsatz von Excelversionen ab Excel2010)?
3. Frage: Gibt es z.B. in Verbindung mit Microsoft 365 neuere VBA-Versionen (VBA8 oder sowas)?
Gruß
rawa