VBAでIe操作したいのですが次のボタンをクリックしたい
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2014年11月28日(金)06時28分 From: ニッパー | 返事 削除 変更 |
回答ありがどうございます。さっそくtestをやってみたのですが、 実行時エラー'2147467259(80004005)': 'Busy'メソッドは失敗しました:'IWebBrowser2"オブジェクト と、いうふうになってしまいました。 どこが失敗しているのでしょうか? 教えてください。 よろしくお願いします。 |
Message#2 2014年11月28日(金)06時27分 From: lbis | 返事 削除 変更 |
下記の内容は条件が色々とあるので少々ややこしいと思います。 また, 「1つの出発点の例」や「叩き台の一種」だと思ってください。 まず, VBA を動作させるソフトは Excel であるものとします。 (Word や PowerPoint などでは下記 VBA は動作しません。) そして VBA を書く Excelファイル(ブック) は 任意のフォルダに保存してあるものとします。 また VBA を書いた Excelファイル(ブック) と同じフォルダに 「Test.html」というファイル名の HTML があり Excelファイル(ブック) を開いた状態で 「Test.html」を IE で開いて動作させるものとします。 その「Test.html」の内容(ソースコード)は 次のようになっているものとします。 <!DOCTYPE html> <html> <head> <meta charset="shift_jis"> <title>Test</title> <script type="text/javascript"> function carSelect(){ alert("画像がクリックされました"); } </script> </head> <body> <table cellspacing="0" cellpadding="0" border="1"> <tr> <td align="center" colspan="2" height="25"> <a href="javascript:carSelect();"> <img src="/m/images/btn_select_truck.gif" height="20" width="120" border="0" alt="お車を選択します"> </a> </td> </tr> </table> </body> </html> 上記のような状態を作成した場合の Excelファイル(ブック) の 標準モジュール に書く Subプロシージャ例です↓。 Sub IEを操作してJavaScriptの関数を実行() Set IE = CreateObject("InternetExplorer.Application") 'この URL↓ を変更する URL = ActiveWorkbook.Path & "\Test.html" IE.Navigate (URL) IE.Visible = True Do While IE.Busy Or IE.ReadyState <> 4 DoEvents Loop 'IE で開いたページの関数 carSelect を実行 IE.Document.parentWindow.execScript "carSelect()" Set IE = Nothing End Sub このようにしておいた状態で VBA を書いた Excelファイル(ブック) から 上記 Sub プロシージャを実行させると 「Test.html」が IE で開き そのページ内の JabaScript の関数 carSelect が実行されて 「画像がクリックされました」 というダイアログが表示されると思います。 ◎参考URL 「エクセルVBAマクロ - IEの操作 - スクリプトの実行」 http://www.excel-vba.net/excel-ie-007.html なお, ローカルにある上記のような JavaScript 入り HTML を IE で開くと, 「この Web ページはスクリプトや AactiveX コントロールを実行しないように制限されています。」 という警告が出ると思います。 この警告が出る場合, 上の VBA の実行は失敗します。 「この Web ページはスクリプトや AactiveX コントロールを実行しないように制限されています。」 という警告を出さないようにするには次のページを参考にして 一時的(この実験中のみ)にでも 「マイコンピューターのファイルでアクティブコンテンツの実行を許可する」 にチェックを入れてください。 「Windows8のIE10で「このwebページはスクリプトやactivexコントロールを実行しないように制限されています」を非表示にする - はぴらき合理化幻想」 http://hapilaki.hateblo.jp/entry/windows8-ie10-activex なお上記ページには 全 IE を全て閉じて再起動すると設定の変更が有効になるようなことが書いてありますが, 私の環境では PC の再起動をしなければ設定の変更が有効になりませんでした。 以上のようなことができるようになってから 実際のサイトなどで試してみたください。 (何らかの セキュリティ に阻まれるとうまく行かない可能性もあります。) |
Message#1 2014年11月27日(木)03時00分 From: ニッパー | 返事 削除 変更 |
VBAでIe操作したいのですが次のボタンをクリックしたいのですがやり方がわかりません。 ページはフレームが2つあり一つ目のフレーム内にこのソースがあります。 画像をクリックするタイプのものですがどうかよろしくお願いします。 また、javascriptについても詳しく説明があるとうれしいです。 説明わかりづらいかもしれませんがよろしくお願いします。 <tr> <td align="center" colspan="2" height="25"> <a href="javascript:carSelect();"><img src="/m/images/btn_select_truck.gif" height="20" width="120" border="0" alt="お車を選択します"></a> </td> </tr> |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降