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

以上

上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。

パスワード:

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