Excel VBAで Javascriptで書かれたWebページを 制御したい
未読分:4件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#4 2018年5月15日(火)16時11分 From: ジャッカル | 返事 削除 変更 |
iframe を読み込んで処理するのは、IEのセキュリティ上できないようになっているからもしiframeのURLがソースをみてわかるようなら、そのURLを最初にアクセスして処理するとセキュリティの問題が解決されるかもということす。 > ジャッカルのメッセージ(#2)への返事 > > ジャッカルさん コメントありがとうございます > > 初歩的な質問かもしれませんが、「frameのURLを直接読み込んでやってみたら?」 > をやってみようと思うのですが、最初のHTMLを読んでその後FrameもgetElementByTagNameで読めていますが、FrameのURLから扱うのは > どういう狙いがあるのでしょうか? > > ちなみにJavascriptのことはあまり関係ないんでしょうか? > > 初心者なので何が原因でおかしくなっているのか、最上位のURLとframeのURL > の取得が、オブジェクトとの取得とどうからんでいるのか、そのあたりぜひお知恵を > お貸しいただきたくよろしくお願いいたします。 > > どうぞよろいsくお願いいたします > > 以上 > > > frame が取得できているのなら、frameのURLを直接読み込んでやってみたら? > > > > > 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から値を渡すにはどうすればよいか教えて > > > ください。 > > > > > > 以上 |
Message#3 2018年5月14日(月)03時47分 From: かず | 返事 削除 変更 |
ジャッカルのメッセージ(#2)への返事 ジャッカルさん コメントありがとうございます 初歩的な質問かもしれませんが、「frameのURLを直接読み込んでやってみたら?」 をやってみようと思うのですが、最初のHTMLを読んでその後FrameもgetElementByTagNameで読めていますが、FrameのURLから扱うのは どういう狙いがあるのでしょうか? ちなみにJavascriptのことはあまり関係ないんでしょうか? 初心者なので何が原因でおかしくなっているのか、最上位のURLとframeのURL の取得が、オブジェクトとの取得とどうからんでいるのか、そのあたりぜひお知恵を お貸しいただきたくよろしくお願いいたします。 どうぞよろいsくお願いいたします 以上 > frame が取得できているのなら、frameのURLを直接読み込んでやってみたら? > > > 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から値を渡すにはどうすればよいか教えて > > ください。 > > > > 以上 |
Message#2 2018年5月11日(金)16時08分 From: ジャッカル | 返事 削除 変更 |
frame が取得できているのなら、frameのURLを直接読み込んでやってみたら? > 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から値を渡すにはどうすればよいか教えて > ください。 > > 以上 |
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から値を渡すにはどうすればよいか教えて ください。 以上 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降