2年以上前にMicrosoft Community(当時はMicrosoft Answers)で回答したときのコードです。
・ExcelでWin7_32bitOSか64bitOSを判断
http://answers.microsoft.com/thread/951ca707-4eb1-4751-8050-a2968e3cd788
忘れないように記事として残しておくことにします。
Public Sub Sample1()
Dim colItems As Object
Dim itm As Object
Set colItems = CreateObject("WbemScripting.SWbemLocator").ConnectServer.ExecQuery("Select * From Win32_OperatingSystem")
For Each itm In colItems
Debug.Print itm.OSArchitecture
Exit For
Next
End Sub
・結果1:
- Windows 7(x64) + Office 2010(x86):64 ビット
- Windows Server 2008 R2(x64) + Office 2010(x64):64 ビット
Public Sub Sample2() Debug.Print Application.OperatingSystem End Sub
・結果2:
- Windows 7(x64) + Office 2010(x86):Windows (32-bit) NT 6.01
- Windows Server 2008 R2(x64) + Office 2010(x64):Windows (64-bit) NT 6.01
Public Sub Sample3()
Debug.Print CreateObject("WScript.Shell").ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%")
End Sub
・結果3:
- Windows 7(x64) + Office 2010(x86):x86
- Windows Server 2008 R2(x64) + Office 2010(x64):AMD64
Public Sub Sample4()
Debug.Print CreateObject("htmlfile").parentWindow.clientInformation.cpuClass
End Sub
・結果4:
- Windows 7(x64) + Office 2010(x86):x86
- Windows Server 2008 R2(x64) + Office 2010(x64):x64
上記の結果から、WOW64環境下では正しく判別できない場合があるため、OSが64ビット環境であるかどうかはSample1のようにWMIを使うのが良さそうです。

















この記事へのコメントはありません。