ウインドウを取得するVBAコード

スポンサーリンク

ウインドウの取得は操作の基本

色々なアプリをマクロやVBAで操作する場合、対象となるウインドウ(=画面)をアクティブ取得して最前面に持ってくることが第一歩となります。

今回はデスクトップ上に開いている画面を取得するVBAコードを紹介します。

VBAでのウインドウの取得

VBAでのウインドウの取得に関してはウインドウタイトル(キャプション名)を事前に把握しておく必要があります。
ウインドウタイトル(キャプション名)を使用して下記のようなコードを入力することでウインドウを取得することができます。

AppActivate “編集前”, (True,False)

この例ではエクスプローラーで開かれている「編集前」というフォルダのウインドウを最前面に表示します。

第二引数のTrueかFalseはフォーカスがVBAもしくはExcelの画面に戻るまで実行するのを待つかどうかで、通常Falseを使用するのが一般的だと思います。
1回だけしかウインドウの取得をしなければ別ですが、2回以上ウインドウを移動する場合、いちいち移動の度にVBAやExcelなどの画面にフォーカスを戻すのは現実的ではないと思います。

この第二引数は省略可能で、省略するとFalseになりますので、普段はTrueにするかFalseにするかは特に意識せず何も記載しなくて大丈夫です。

スポンサーリンク

ウインドウタイトル(キャプション名)がわからない場合や空白の全角半角が難しい場合

ウインドウタイトル(キャプション名)は下記のようなパターンで決められているようです。

  • ①ファイル名
  • ②アプリケーション名 – ファイル名
  • ③ファイル名 – アプリケーション名
  • ExcelやVBAは②に該当し、Chromeはウインドウタイトル(キャプション名)が表示されませんが③に該当しているようです。

    ウインドウタイトル(キャプション名)が表示されないアプリケーションの場合、ウインドウの取得するにはまずこれらのパターンを試してみるとよいかもしれません。

    ②と③のケースでは空白は半角が一般的ですが、もしこれらを試しても取得できない場合はWindowsAPIを使用してウインドウ名を取得する方法があります。

    また、その他にウインドウハンドルと言われるウインドウごとの固有値を取得して特定のウインドウを最前面にする方法もあります。
    これらの手順はWindowsAPIの使い方の記事で紹介します。

    おすすめ書籍 (広告)

    コメント