![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAを実行しているPCの
・OSの名前
・OSのバージョン
・OSのアーキテクチャ(32bit or 64bit)
を取得できます!
VBAコード
Option Explicit
Sub sample()
Dim locator As Object
Dim service As Object
Dim classSet As Object
Dim class As Object
'ローカルコンピュータに接続
Set locator = CreateObject("WbemScripting.SWbemLocator")
Set service = locator.ConnectServer()
'WQL(WMI Query Language)でクエリを実行
Set classSet = service.ExecQuery("Select * From Win32_OperatingSystem")
'結果を取得
For Each class In classSet
'OSの名前、バージョン、アーキテクチャ(32bit or 64bit)
MsgBox class.Caption & vbCrLf & _
class.Version & vbCrLf & _
class.OSArchitecture
Next
'後片づけ
Set locator = Nothing
Set service = Nothing
Set classSet = Nothing
End Sub
実行結果
OS情報を取得できました。
![実行結果](https://excel-vba.work/wp-content/uploads/2021/05/vba_getosinfo_001.png)
参考
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「SWbemLocatorオブジェクト」の「ConnectServer」メソッド
●「SWbemServicesオブジェクト」の「ExecQuery」メソッド