Excel VBAで Javascriptで書かれたWebページを 制御したい

最近の書き込み件数: 今日 0件、昨日 0件
未読分:4件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

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から値を渡すにはどうすればよいか教えて
ください。

以上

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

エクセルVBAでIE制御の応用編

こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

スポンサー リンク

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

スポンサー リンク

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。

ExcelのVBAで作成した役立つVBAコード

こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com