【Excel VBA】Excel VBAからWMIを使って各ドライブの空き容量を取得する - 変換.tokyo | henkan.tokyo

【Excel VBA】Excel VBAからWMIを使って各ドライブの空き容量を取得する

 
■【Excel VBA】Excel VBAからWMIを使って各ドライブの空き容量を取得する

Webサイト「Excel VBA から WMI を使ってみよう - WMI Step」を参考に作成しました。
http://www.wmifun.net/step/vba_01.html


皆さんは「WMI」をご存知でしょうか?
WMIとは「Windows Management Instrumentation」の略で、Windows管理技術の中核を担っています。
WMIは、ローカル コンピュータとリモート コンピュータの両方の管理に使用できます。
WMIは、プログラミング言語やスクリプト言語で日常的な管理タスクを実行するための一貫したアプローチを提供します。

たとえば、次のようなことが実行可能です。
・リモート コンピュータ上のプロセスを起動
・特定の日時にプロセスを実行するようにスケジュールを設定
・コンピュータをリモートで再起動
・ローカル コンピュータまたはリモート コンピュータにインストールされているアプリケーションのリストを取得
・ローカル コンピュータまたはリモート コンピュータ上の Windows イベント ログを照会

WMIは、VBAを使用することができる各Officeアプリケーションから使用することが出来ます。
(他に、VBやVBS、PowerShellやBatからも実行可能です)
このサンプルでは、各ドライブごとに空き容量と全容量(単位:バイト)をGBに変換、小数点第2位で四捨五入した値を表示しています。
※参照設定から「Microsoft WMI Scripting V1.2 Library」を追加してから実行してください。

WMI_VBA.png



■サンプルコード

Sub GetWMItoExcel()

Dim oDiskSet As SWbemObjectSet
Dim oDisk As SWbemObject
Dim oLocator As SWbemLocator
Dim oService As SWbemServices
Dim i As Long
Set oLocator = New WbemScripting.SWbemLocator
Set oService = oLocator.ConnectServer
Set oDiskSet = oService.ExecQuery _
("Select * From Win32_LogicalDisk Where DriveType=3")
Worksheets("Sheet1").Cells(1, 1).Value = "各ドライブの空き容量は、"
i = 1
'各ドライブごとに空き容量と全容量(単位:バイト)をGBに変換し、小数点第2位で四捨五入
For Each oDisk In oDiskSet
Worksheets("Sheet1").Cells(i + 1, 1).Value = oDisk.Name & " " & Round(oDisk.FreeSpace / 1024 / 1024 / 1024, 1) & "GB / " & Round(oDisk.Size / 1024 / 1024 / 1024, 1) & "GB"
i = i + 1
Next
Set oDiskSet = Nothing
Set oDisk = Nothing
Set oLocator = Nothing
Set oService = Nothing

End Sub

WMI_xlsx.png


■サンプルVBAダウンロード
こちらから


■VBA開発・WMI利用に参考となる図書

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

入門者のExcel VBA 初めての人にベストな学び方 (ブルーバックス) [ 立山秀利 ]
価格:1058円(税込、送料無料) (2018/10/1時点)

楽天で購入


[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

たった1日で即戦力になるExcelの教科書 [ 吉田拳 ]
価格:1922円(税込、送料無料) (2018/10/1時点)

楽天で購入


[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ネットワーク管理に使うWMI PowerShellによるWindowsマシン管理 [ 嶋貫健司 ]
価格:6480円(税込、送料無料) (2018/10/1時点)

楽天で購入

by カエレバ
by カエレバ
by カエレバ
by カエレバ
by カエレバ
by カエレバ