Microsoft Excel VBA - OSの判定

◆概要

 このページは、ExcelでOSのアーキテクチャ、ServicePack、キャプションを取得する方法について記載しています。

WMI(Windows Management Instrumentation)を使うとシステムの構成要素について情報収集することができます。 ここでは、WMIを使ってOSの情報を取得し、メッセージボックスに表示します。

◆Sample code
次の例は、OSのアーキテクチャ、サービスパック、キャプションを取得し、メッセージボックスに表示します。

Sub GetOS()
' OSのアーキテクチャ、ServicePack、キャプションを取得

' 取得結果を格納する変数を宣言
  Dim lnArchitecture As Long
  Dim strCaption, strCSDVersion As String

  ' 初期値を入れておく
  lnArchitecture = 32
  strCaption = ""
  strCSDVersion = "Service Pack 0"

On Error Resume Next

  Dim objOS As Object
  Dim i As Long
  ' WMIに接続しWin32_OperatingSystemのインスタンスを取得
  For Each objOS In GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
    ' アーキテクチャの取得
On Error GoTo OSArchitectureNoSupport
    If InStr(1, CStr(objOS.OSArchitecture), "64", vbBinaryCompare) <> 0 Then
      lnArchitecture = 64
    End If
OSArchitectureNoSupport:
On Error Resume Next
    ' キャプションを取得
    For i = 1 To Len(objOS.Caption)
      Dim strTemp As String: strTemp = Strings.Mid$(objOS.Caption, i, 1)
      If AscW(strTemp) = &H2122 Then
        strCaption = strCaption & " TM"
      ElseIf AscW(strTemp) = &H24C7 Or AscW(strTemp) = &HAE Then
        strCaption = strCaption & "(R)"
      Else
        strCaption = strCaption & strTemp
      End If
    Next i
    ' SPを取得
    strCSDVersion = objOS.CSDVersion
  Next

  Set objOS = Nothing
  MsgBox strCaption & lnArchitecture & "ビット"
End Sub

◆実行結果

▼ページトップへ