我想检查不同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上,它重新编译了一个编译错误:找不到方法或数据成员。我需要什么?
答案 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