タスクマネージャで見るのが面倒

実行中のプロセスを確認する場合、通常はタスクマネージャを利用します。

タスクマネージャは「Ctrl + Shift + ESC」キーで起動します。

用途として多いのは固まったアプリケーションを強制終了させる場合ですが、実際に稼働中のプロセスを確認したい場合もあります。

ところが、タスクマネージャはプロセス名など検索が出来ないOSがあったり、必要な情報(例えばコマンドラインなど)の確認が初期状態では出来ないなどで使い勝手が悪く、データを探すのに時間が掛かります。

他の方法では、コマンドプロンプトで「tasklist」を実行したり、PowerShellで「Get-Process」を実行する方法もありますが、出力される内容が少ないため用途は限定されます。

そこで、VBAを使ってExcelに実行中のプロセスを一覧でシートに出力してしまう方法を紹介します。Excelに出力してしまえば検索などはラクに出来ます。

プロセス一覧の詳細をシートに出力するコード

以下のコードは、Excelに新規シート(シート名=プロセス詳細yyyymmdd-hhmmss)を作成し、そこにプロセス一覧を出力する関数です

OutputProcessDetailsToSheet()を実行すると出力されます。

WMI(Windows Management Instrumentation)を使って実現しています。WMIとはWindowsのOSの管理系のデータにアクセスする仕組みです。

Win32APIのCreateToolhelp32Snapshot()を使う方法もありますが、コードが長く面倒なのでWMIを使っています。

実行結果
以下のようにExcelシートに新規シートを追加して出力します。