Условная компиляция (#If VBA7
) не требуется, если ваша БД не должна работать на Office 2007
или ниже.Если самая старая версия Office 2010
, вам просто нужно
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
, потому что VBA7
преобразует LongPtr
в тип данных Long
в Office x86 и в LongLong
в Office x64.
Распознать аргумент ms
остается Long
, поскольку это не указатель / дескриптор.См. Как преобразовать объявления Windows API в VBA для 64-разрядных для получения дополнительной информации.
Если вам требуется поддержка старых версий Office перед использованием VBA7:
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
#End If