次の方法で共有


Excel VBAでCPU使用率と起動しているプロセス名を取得するには

質問

2021年4月18日日曜日 5:58

Windows10 Excel VBAでCPU使用率と起動しているプロセス名を取得するコードを教えてください。

いろいろWebサイトを検索してみましたが、
VBのコードはありましたがVBAが見つけることができませんでした。

CPU使用率
・https://teratail.com/questions/3613
 このコードを実行しても何も表示されません。(空白が表示されます)
・https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14136050049
 リンク先のコードはVBAではなくVBのようで、VBAではエラーになります。
プロセス名
・http://officetanaka.net/excel/vba/tips/tips61.htm
 プロセス名の取得ではなくタスク名の取得でした
・http://hanatyan.sakura.ne.jp/dotnet/App05.htm
 VBのコードのようで、VBAではProcess.GetProcessesでエラーになります。

よろしくお願いします。

すべての返信 (2)

2021年4月18日日曜日 8:06

こんな?

Sub Test()
    'Microsoft WMI Scripting参照
    Dim wbem As WbemScripting.SWbemLocator
    Dim wbemSvs As WbemScripting.SWbemServices
    Dim wbemObjSet As WbemScripting.SWbemObjectSet
    Dim wbemObj As WbemScripting.SWbemObject
    Dim wbemProp As WbemScripting.SWbemProperty
    
    Dim sh As Worksheet
    Dim rng As Range
    
    Set sh = ThisWorkbook.Worksheets.Add
    Set rng = sh.Cells(1, 1)
    
    Set wbem = New WbemScripting.SWbemLocator
    Set wbemSvs = wbem.ConnectServer()
    
   
    rng.Value = "CPU使用率"
    rng.Font.Bold = True
    Set rng = rng.Offset(1, 0)
   
   
    Set wbemObjSet = wbemSvs.ExecQuery("SELECT * FROM Win32_Processor")
    For Each wbemObj In wbemObjSet
        rng.Cells(1, 1) = wbemObj.Properties_("DeviceID").Value
        rng.Cells(1, 2) = wbemObj.Properties_("LoadPercentage").Value
        Set rng = rng.Offset(1, 0)
    Next
    
    Set rng = rng.Offset(2, 0)
    
    rng.Value = "プロセス名"
    rng.Font.Bold = True
    Set rng = rng.Offset(1, 0)
    
    Set wbemObjSet = wbemSvs.ExecQuery("SELECT * FROM Win32_Process")
    For Each wbemObj In wbemObjSet

        rng.Cells(1, 1) = wbemObj.Properties_("Name").Value
        Set rng = rng.Offset(1, 0)
        
'        For Each wbemProp In wbemObj.Properties_
'            Debug.Print wbemProp.name & vbTab & wbemProp.Value
'        Next
    Next
End Sub

個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)


2021年4月18日日曜日 10:27

教えて頂きましたコードで、
CPU使用率とプロセス名を取得することができました。
ありがとうございました。