Excel VBAで Javascriptで書かれたWebページを 制御したい 削除
Message#1 2018年5月8日(火)06時58分 From: かず |
Excel VBAで Javascriptで書かれたWebページを 制御したいと考えています。 現在、特定の要素でgetElementsByTagName 等の メソッドで要素を取得することができません。 VBA、Javascript、HTMLに詳しい方が入らっしゃいましたら 教えてください。 環境はWindows7、InternetExplorer11、Excel2016です。 操作(制御)の流れ ・VBAからWeb ページを表示する。 Webページは電話帳の機能を提供する。 ・LDAP番号やEメールあフドレスを検索用の窓に入力して、 検索ボタン押下で氏名を表示。 ・逆に氏名を入力して検索ボタンを押下げるとLDAPやEメール アドレスを表示 1.WebページのHTML <!DOCTYPE HTML ・・・(略) <html> <head> <title> ・・・ <meta http-equiv=Content-Type" content="text/html; charset=UTF-8"/> ・・・ <script type="text/javascript" src="/・・・/jquery-1.x.x.js".></script> <script type="text/javascript" src="/・・・/jquery-ui.min.js?s2j=3.x.x".></script> <script type="text/javascript" src="/・・・/jquery.form.minjs?s2j=3.x.x".></script> <script type="text/javascript" src="/・・・/jquery.subscribe.minjs?s2j=3.x.x".></script> <script type="text/javascript"> $(function(){ jQuery.struts2_jquery.version = 3.x.x ・・・ } </script> <link id="jquery_theme_link" rel="stylesheet" href="/"・・・/jquery-ui.css?s2j=3.x.x" type="text/css"/> ・・・ <script type="text/javascript" src="/・・・/pb.js"></script> ’★ </head> <body> ・・・ 注 実際にWebページには、ここに frameの階層がある。 VBAでは、このframe は取得できている。それ以降が 取得できない。 検索ウィンドウのあるページをみると <form id ="XXX" name="XXX" action="/・・・/XXX.do" target ="YYY" method="post"> <table class="・・・・Table"> <div id ="searchbox"> <input> onkeypress="if(event.keyCode==13) { go() ; return false ; }" //★★ type="text" name="searchParam" id= "searchParam" value=""/> <input> onkeypress=" go()"; return false ; " type="submit" name="abc" value="検索"/> 2.Internet Explorer 11 のF12ツールで調べると ★の所のpb.js でgo()が以下の 用に定義されています。 function go() { //今回検索値(フォーム入力値)、検索文字列をUTF-8形式にエンコードしURLに追加 var param = document.getElementById("searchParam").value url = url + encodeURIComponent(param) ; if (!checkProcessing()) { return false ; } //ステータスバー更新 ・・・ //あいまい検索の選択値、URLに追加 if (document.forms[0].approx && document.forms[0].approx[0].checkes) { url = url + "&approx=1" ; } ・・・ //画面遷移 if (top.frame && top.frames.YYY) { top.frames.YYY.location.href=url ; } else { window.open(url, "YYY") } return null ; } 3.問題点 (1)VBAで Webページのframe を取得できている のだが、その要素のform を getElementByID getElementsByTagName メソッドで取得できない。 (2) javascript のgo() 関数で検索値を編集している るが、VBAから値を渡すにはどうすればよいか教えて ください。 以上 |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。