ie-excel

エクセル・マクロでie操作

Excel VBAでIEを操作 最小化と最大化

2018/11/04

Excelを自動化すると、自動で最大化や最小化したいといったニーズも出てきます。
今回は、最大化と最小化をする方法を例示したいと思います。

今回のお題は
・Yahoo!Japanを表示
・ウィンドウを最小化(最大化)する
ことです。

上記お題は、以下の操作をすることにより可能となります。
・エクセルを起動
・(バージョンによっては)マクロを有効にする
・マクロの編集画面で、以下のコードをコピー&ペースト
・マクロを実行

前準備

  • Visual Basic Editor の画面から「ツール」→「参照設定」を選択します。
  • 「Microsoft Internet Controls」と「Microsoft HTML Object Library」にチェックを入れて、OKを押す

最大化する・最小化する

ヒトがieの画面を最小化する場合は以下の操作をします。

  1. IEを立ち上げる
  2. URLを入力する
  3. サイトが表示されるのを待つ
  4. 最小化する

上記をVBAで表現すると以下のようになります。

実際のコード
Yahoo!Japanが表示され、最小化されていませんか?

ではソースの解説です。
表示される箇所は以前説明済みのために、変更点を中心に絞って記載します。

「ShowWindow」APIを使用することを宣言
最小化、最大化するために「ShowWindow」APIを今回は使用しています。
ExcelのVBAでこのAPIを使用するには、上記宣言が必要となります。

宣言の方法はExcelが64bit版か32bit版で異なります。
そのため、お使いのExcelが64bit版でも332bit版でも対応できるよう、それぞれのパターンの分岐を設けています。
「ShowWindow」使用時のお約束と覚えておいた方がいいでしょう。

最小化する
「ShowWindow」のパラメータにはウィンドウのハンドルを指定と、ウィンドウの表示状態が必要です。

ハンドルの値は「objIE.hWnd」で取得できます。
ウィンドウの表示状態の指定は複数のパラメータがありますが、
・最小化の場合は「2」を指定
・最大化の場合は「3」を指定
するとだけ、このサイトでは説明します。
他にも設定が可能ですが、それは他のサイトや書籍に譲ります。
最小化には「CloseWindow」を使用する方法も可能ですが、最大化と最小化のいずれも可能な「ShowWindow」の方がおすすめですので、説明を割愛します。

sendkeyを使用した最大化・最小化

sendkeyを使用した最大化
最大化のショートカットキーは「Alt + space + X」ですので、これをsendkeyにより入力しています。
お使いの利用環境によってはまだ実行可能な場合もあるようですので、よろしければお試しください。

sendkeyを使用した最小化
最小化のショートカットキーは「Alt + space + N」ですので、これをsendkeyにより入力しています。
お使いの利用環境によってはまだ実行可能な場合もあるようですので、よろしければお試しください。

「Sleep」APIを使用することを宣言
上記ではsleepで待たせていますので、APIを宣言する必要があります。

 

-ExcelでIE操作