2012-04-19 45 views
1

我有32位和64位版本的Office 2010.如果我需要安装VSTO 2 2010 Office 32位计算机并安装VSTO 4 64位2010 Office 64 bit机器VBA检测与他们的相应位的办公室版本

Public Function checkbitversion() As Variant 
#If VBA7 Then 
    checkbitversion = "64" 
#Else 
    checkbitversion = "32" 
#End If 
End Function 

但它总是结果为所有机器的32位。我需要帮助来克服这个问题。

我请参阅下面的MSDN文章: http://msdn.microsoft.com/en-us/library/ff700513%28v=office.11%29.aspx

+0

http://stackoverflow.com/questions/896645/how-to-check-ms-office-version-installed-on-the-machines? – Fionnuala 2012-04-19 13:09:10

+0

您是否正在使用'VBA7'作为常量编译您的应用程序? – JimmyPena 2012-07-24 14:36:26

回答

0

入住HKEY_LOCAL_MACHINE \ SOFTWARE中位数值为\微软\办公室\版本\展望

如果上述版本是14.0或15.0取决于Microsoft Outlook版本。

0

尝试此代码,未经测试,从第二个论坛帖子从>HERE

Function Is64bit() As Boolean 
Is64bit = Len(Environ("ProgramW6432")) > 0 
End Function 

他说The logic seems to be if that environment variable returns anything or not, as that parameter probably doesn't exist in the 32-bit version.

如果返回的东西它是64位的,否则它是32位,按他的描述。