對於持續學習VBA的老鐵們,有必要了解Office的位數。
如果系統是32位的,則不需要判斷Office位數了,因為只能安裝32位Office。
下面只討論64位系統中,Office的位數判斷問題。
64位系統中可能存在以下4種情況:
- 安裝了32位Office
- 安裝了64位Office
- 安裝了32位和64位兩個版本Office
- 沒安裝任何Office
究竟Office是多少位的?如果不打開Office以及VBA,通過注冊表可能能夠查詢出來,不過比較費事兒,而且注冊表也有被修改的可能,靠不住。
下面介紹打開了Office的一個組件,或者打開了VBA編程環境后,查看位數的方法。
方法一:手動查看法
找到賬戶(Account)選項,然后點擊關於Excel

下面的對話框中,看一下最上面的那行字,寫的是64bit。

方法二:VBA法
該方法還可以分為以下n多種方法
方法2-1:根據ProductCode屬性
如果結果是四個0,后面又四個0,則是32位Office。 如果后面是1000,則是64位Office

方法2-2:根據HInstance屬性
32位Office的情形,可以返回一個整數。

64位Office的情形,返回的是致命的錯誤。

方法2-3:聲明LongLong類型變量
在64位Office的VBA中可以聲明LongLong類型的整型變量

在32位Office的VBA里面,只有Long。
方法2-4:根據API函數的顏色
在模塊頂部加入一個最簡單的API函數聲明,64位Office的情況下函數呈現為紅色。

32位Office的話,以上代碼直接顯示為黑色,而且不報錯。
方法2-5:條件編譯法
在VBA模塊中運行如下過程,看看返回的是哪一個對話框。
Sub 判斷Office位數() #If Win64 Then MsgBox "64bit" #Else MsgBox "32bit" #End If End Sub
以上各種方法都親測好使,感謝老鐵們繼續支持。
