作者:iamlaosong
我的一個工具只能在32位環境下使用,因爲64位環境下API聲明略有不同。爲了工具的兼容性,可以採用條件編譯#If…Then…#Else語句。注意,沒有“#”號的是正常條件語句,有“#”號的是條件編譯語句。條件編譯語句中的條件判斷會用到編譯常數,除了系統自帶的外,也可以自己用#const定義。
1、常數定義語句:
2、條件編譯語句:
3、測試代碼:
Sub ttt()
#If VBA7 Then
MsgBox "VBA7"
#If Win64 Then
MsgBox "win64"
#Else
MsgBox "win32"
#End If
#Else
MsgBox "vba6"
#End If
End Sub
之所以用條件編譯,是因爲一個環境下的語句在另一個環境下可能會報錯,用條件編譯就沒這個問題了。下面的框架就是用來判斷環境是否爲VBA7和Win64環境,如果是,API聲明前面加上PtrSafe關鍵字。
#If VBA7 And Win64 Then
Declare PtrSafe Function ......
......
#Else
Declare Function ......
......
#End If