VBA检测office版本及其相应的位

VBA检测office版本及其相应的位,vba,outlook,Vba,Outlook,我有32位和64位版本的Office 2010。如果我需要为2010 Office 32位计算机安装VSTO 2,为2010 Office 64位计算机安装VSTO 4 64位 Public Function checkbitversion() As Variant #If VBA7 Then checkbitversion = "64" #Else checkbitversion = "32" #End If End Function 但对于所有机器,结果总是32位。我需要

我有32位和64位版本的Office 2010。如果我需要为2010 Office 32位计算机安装VSTO 2,为2010 Office 64位计算机安装VSTO 4 64位

Public Function checkbitversion() As Variant
#If VBA7 Then
    checkbitversion = "64"
#Else
    checkbitversion = "32"
#End If
End Function 
但对于所有机器,结果总是32位。我需要帮助来克服这个问题

我参考以下MSDN文章:

检查HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Office\version\Outlook中的比特值


其中,上面的版本是14.0或15.0,具体取决于Outlook版本。

请从>的第二篇论坛帖子中尝试此未经测试的代码

他说,逻辑似乎是环境变量是否返回任何内容,因为该参数在32位版本中可能不存在。


根据他的描述,如果它返回某个值,则为64位,否则为32位。

?您是否使用
VBA7
作为常量编译应用程序?
Function Is64bit() As Boolean
Is64bit = Len(Environ("ProgramW6432")) > 0
End Function