プログラミング

VBSでIEをアクティブ化(最前面表示)する

このページはこんな方におすすめです

VBSで特定のウィンドウをアクティブ化する方法が知りたい

リストからURLを読み込みIEでアクセスしたらスクリーンショットを撮る、というスクリプトを作成していた時にハマったVBSでIE(Internet Explorer)の画面をアクティブ化(最前面表示)させる方法について解説します。

ただ単にアクティブ化(最前面表示)させる方法だけですのでご注意ください。

VBSでIEをアクティブ化(最前面表示)する方法

VBSでIEをアクティブ化(最前面表示)する流れ

  1. IEのプロセスIDを取得する
  2. IEを操作するためのObjectを作成する
  3. アクティブ化(最前面表示)する

それでは、順を追っていきます。

IEのプロセスIDを取得する

プログラムが起動するとプロセスIDが割り当てられます。このプロセスIDを使って起動済みのプログラムを再起動させたり終了させる事ができます。

VBSでプロセスIDを取得するための関数は次のように書く事ができます。

プロセスIDを取得したプログラムの名前をGetProcIDの引数に渡すとプロセスIDが変数intProcIDに格納されます。

プロセスIDを利用してIEをアクティブ化(最前面表示)する

先ほどの方法でIEのプロセスIDは取得できるので、取得したプロセスIDを利用してIEをアクティブ化する関数を書きます。

objWshShell.AppActivateに先ほど取得したプロセスID(intProcID)を渡すとウィンドウがアクティブ化します。

プロセスIDを指定してObjectをAppActivateしているだけです。

VBSでIEをアクティブ化(最前面表示)するだけのコード

それでは、ただ単にIEをアクティブ化するVBSコードです。次のVBSを適当なファイル名(拡張子は.vbs)で保存してください。ファイルをダブルクリックすると、起動済みのIEをアクティブ化します。

まとめ

単純にIEをアクティブ化するだけのコードですが、色々なところで役に立つのではないかと思います。

注意点として、複数のIEを立ち上げている場合は一番最後に起動したIEのみアクティブ化します。すべてのIEをアクティブ化したい場合は、それぞれのプロセスIDを取得して順次アクティブ化する処理をおこなう必要があります。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)