5

VBAで条件付きコンパイルを使用して、64ビットバージョンと32ビットバージョンを区別できることを知っています(を使用#If VBA7 Then ...)。

Application.Versionコンパイル時にExcel2013/2010/2007/ ...などを区別できるように、と同様のビルドイン定数もありますか?

また、利用可能な既存のコンパイラ定数のリストはありますか?これまでのところVBA7Win64(たとえばこの記事から)見つけましたが、他に何かありますか?

4

2 に答える 2

5

このリンクから、次の定数が得られます。

VBA6
VBA7
Win64
Win32
Win16
Mac
于 2013-01-29T10:53:39.530 に答える
1

問題のバージョンの粒度ではありませんが、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コードをコンパイルしようとします。理由はわかりませんが、それがテストの方法です。

于 2021-04-02T19:37:19.930 に答える