2012-04-19 22 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位,按他的描述。