如何使用MS word 2007 vba来检查窗口版本

时间:2014-03-03 09:53:38

标签: vba word-vba word-2007

我想检查不同comp上的窗口版本,从而在MS word 2007 vba上执行不同的任务。我尝试了这个代码,我在ms excel 2007 vba上应用并且正在工作,但不是在MS word 2007 vba上。

Dim TheOS As String
Dim WinType As String
TheOS = Application.OperatingSystem
MsgBox ("TheOS ")

在ms word 2007 vba上,它重新编译了一个编译错误:找不到方法或数据成员。我需要什么?

1 个答案:

答案 0 :(得分:5)

如果您想要可以在办公室产品中使用的vba代码,WMI就是一种解决方案。

Application.System.OperatingSystem的东西,它没有返回任何有趣的东西。

Application.System.Version可用。但我使用WMI向我提供了正确的信息。

 Sub test()
    Dim info As System
    'Well everything is windows NT today..
    Debug.Print Application.System.OperatingSystem
    'Short version string MajorVersion.MinorVersion
    Debug.Print Application.System.Version

    Dim objWMI As Object
    Dim objSystems As Object
    Dim objOs As Object

    Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set objSystems = objWMI.ExecQuery("Select * from Win32_OperatingSystem")

    For Each objOs In objSystems
        Debug.Print objOs.Name 'Full name as in OS startup screen
        Debug.Print objOs.Caption ' Human readable name
        Debug.Print objOs.Version ' the correct windows version string
    Next

    Set objOs = Nothing
    Set objSystems = Nothing
    Set objWMI = Nothing

End Sub