如何判断Office是32位还是64位?

时间:2024-03-02 11:11:45

对于持续学习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

 

以上各种方法都亲测好使,感谢老铁们继续支持。