VBAで条件付きコンパイルを使用して、64ビットバージョンと32ビットバージョンを区別できることを知っています(を使用#If VBA7 Then ...
)。
Application.Version
コンパイル時にExcel2013/2010/2007/ ...などを区別できるように、と同様のビルドイン定数もありますか?
また、利用可能な既存のコンパイラ定数のリストはありますか?これまでのところVBA7
、Win64
(たとえばこの記事から)見つけましたが、他に何かありますか?
VBAで条件付きコンパイルを使用して、64ビットバージョンと32ビットバージョンを区別できることを知っています(を使用#If VBA7 Then ...
)。
Application.Version
コンパイル時にExcel2013/2010/2007/ ...などを区別できるように、と同様のビルドイン定数もありますか?
また、利用可能な既存のコンパイラ定数のリストはありますか?これまでのところVBA7
、Win64
(たとえばこの記事から)見つけましたが、他に何かありますか?
このリンクから、次の定数が得られます。
VBA6
VBA7
Win64
Win32
Win16
Mac
問題のバージョンの粒度ではありませんが、Office 365/XL16固有のコードを以前のコードから分離する必要がありました。VBA7はVBA6と下位互換性があり、VBA6はVBA7について何も知りません。これを有利に使用できます。
Sub testit()
#If VBA6 And VBA7 Then
Debug.Print "Cool!" 'XL16 vba code
#Else
Debug.Print "Yeah!" 'Not XL16 vba code
#End If
End Sub
XL14以下は、#Ifをtrue / falseのように評価し、XL16をtrue/trueとして評価します。#If VBA7の場合、XL14はXL16コードをコンパイルしようとします。理由はわかりませんが、それがテストの方法です。