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
◆実行結果