ie-excel

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

Excel VBAでIEを操作 onChangeのあるセレクトメニューを操作 JavaScript実行

2016/10/17

Excelでアンカーをたどり、リンクしていく方法。
検索キーワードを入れて検索する方法。
該当ページにセレクトタグ(プルダウンのメニュー)があった場合の選択する方法を例示してきました。

セレクトタグに「[onchange」命令があった場合、前回のやり方ではonchange命令が効きませんので、onChange命令を機能させる方法を今回は例示します。

そこで今回のお題は
・セレクトタグのあるサイトを表示
・メニューからプルダウンの2番目を選択し、onchange命令を機能させる
を実践。

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

コピペするコード

「サンプル2」が選択され、メッセージボックスが出力されていませんか?

なお、今回の見本実演に使用したサイトのコードは以下の通りです。

ではソースの解説です。
青字箇所は以前説明済みのために、赤字箇所に絞って記載します。

セレクトタグでonchange命令があるために、、上記の通り「onchange」を実行します。
オプションタグで選択する場合は、再度セレクトタグを検索の上、セレクトタグで当該命令を実行する必要があります。
(そのため、以前記載したとおりオプションタグではなく、セレクトタグ上で選択する方がおすすめとなります。)

たったこれだけで、JavaScriptのonchange命令が機能します。

注意したいのは、
・Selectタグに対して、onchege命令をしていること(Optionタグではないこと)
・選択してからonchange命令を実行する
ことです。

なお、当該命令を以下の通り変更いただいても同じく機能します。

「fireEvent」でonchangeを強制的に実行させています。

今回のポイントの整理です。
・SELECTタグで「onChange」命令がある場合、onChangeを実行
・上記命令の代替手段として、「fireEvent('onchange')」でもonChangeを実行可能
といった2点がポイントです。

-ExcelでIE操作