【事務職が頑張るExcel・VBA】可視ウィンドウの列挙-ハンドル値取得

今回の目標

今回はタスクバーにある起動中のアプリを一覧として取得して表示するプログラムを作っていきます(/・ω・)/

実行結果2

 上記掲載の画像が今回の目標になります。エクスプローラーやGoogle Chrome、Excelなどが起動している状態で実行すると、それらのハンドル値、クラス名、タイトルの3つの値をExcelのセルに表示させるプログラムです。


処理のおおまかな流れ

・有効なウィンドウのハンドル値をすべて受け取る
・ハンドル値からクラス名とタイトルを取得
・表示させるハンドル値の絞り込み
・セルに値を代入


ハンドル値ってなに?

 ウィンドウを管理するための重複しない数値のことでその値が分かればウィンドウの状態などを簡単に取得することができます。

ウィンドウといってもアプリ一つに一個というイメージがありましたが大きな勘違いでした!Σ(・ω・ノ)ノ! 

ボタンやチェックボックスなどデスクトップ内で見られるあらゆるパーツにそれぞれ割り当てられており、状態や位置などが得られるようになっています。なんか自動化に使えないかな...


使用するAPI

 今回使用したAPIと関数は以下の通り。
・EnumWindows
・IsWindowVisible
・GetWindow
・GetWindowText
・GetClassName
・EnumWindowsで使用するコールバック関数
・main関数
・セルの内容を削除する関数


はじめる前に

 自分は関数や変数名に日本語も使用します。
プログラマーとかには嫌われることみたいですが、VBAをやってみたいと思う人が少しでも増えるなら!ハードルが少しでも下がってやってみようかなと思える人がいるなら否定しちゃいけないと思うのですよ...(自分が英語できないだけ(/ω\)

日本語の変数や関数名がでてくるところはユーザーが自由に好きな名前にしちゃっていいという目安にしてください。

ページの最後に今回使用したExcelをアップしているので自由にご使用ください。


メイン関数を作ってボタンに設定

 開発タブの挿入>ボタン(フォームコントロール)からボタンを作成。
好きな名前の関数を一つ作りボタンに設定しましょう。

public sub スタート()
    MsgBox "できたかな?(/ω・\)"
End Sub

できたかな?



ここから先は

4,991字 / 3画像 / 1ファイル

¥ 300

この記事が気に入ったらチップで応援してみませんか?