業務用マクロを作る際、使用しているWindowsのバージョンやOS情報を取得したいことがあります。
たとえば、OSによって処理を分けたい場合や、実行環境をログとして残したい場合などです。
この記事では、VBAでWindowsのバージョンやOS名、ビルド番号などを取得する方法をご紹介します。
WMIを使ったシンプルなコードで、すぐに試せる内容です。
目次
構文:取得できる主なOS情報(Win32_OperatingSystem)
プロパティ名 | 内容(取得できる情報) | 例 |
---|---|---|
Caption | OSの正式名称(エディション名含む) | Microsoft Windows 11 Pro |
Version | OSのバージョン番号(内部的なもの) | 10.0.22631 |
BuildNumber | ビルド番号 | 22631 |
OSArchitecture | 32ビット/64ビット判定 | 64-bit |
InstallDate | OSのインストール日時 | 20230410123000.000000+000 |
LastBootUpTime | 最後にPCが起動した日時(=稼働時間の参考) | 20250630154500.000000+000 |
CSName | コンピューター名 | DESKTOP-ABC1234 |
コード(コピペOK)
Sub GetOSInfo()
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object
Dim osInfo As String
' WMIサービスに接続
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
' OS情報を取得(Win32_OperatingSystem クラス)
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
' OS情報を取り出し
For Each objItem In colItems
osInfo = "OS名: " & objItem.Caption & vbCrLf & _
"バージョン: " & objItem.Version & vbCrLf & _
"ビルド番号: " & objItem.BuildNumber
Exit For
Next
' 結果をメッセージで表示
MsgBox osInfo
End Sub
実行結果
