はじめまして@ハルと申します。
VBからHTML上に張り付いているチェックボックスやコンボボックス、ボタンなどを
VBのフォームから操作することは可能なのでしょうか?
もし可能であれば、どうやって調べればいいか教えてください。
参考になるホームページ、本など教えていただければなお助かります。
どうかよろしくお願いします。
# 細かく書くとキリが無いので、とりあえず概要だけ。
HTML上のオブジェクトを操作するためには、InternetExplorerオブジェクト、
もしくはWebBrowserコントロールの「Documentプロパティ」を使います。
Documentプロパティは、DHTMLのdocumentオブジェクトを返すので、
あとはDynamic HTMLを操作する要領で、各コントロールの
プロパティやメソッドを、VBから操作する事が出来ます。
なお、プロパティやメソッドだけではなく、イベントも扱いたい
場合には、MSHTML.TLBを参照設定して、そこに WithEvents変数を
割り当てて使う事になります。
さっそくのレスありがとうございます。
もしHTML内にJAVAJavaScriptやVBScriptが埋まっている場合に
同じようにオブジェクトとして扱うことができるのでしょうか?
このことでやりたいことは、JAVAJavaScriptやVBScriptに表示されている
データを取得して、ある計算をして、別のHTMLを表示してその計算結果を
HTML内のテキストボックスやコンボボックス、チェックボックスにセットして
ボタンを押して処理完了とした仕組みを作ろうと思っていますが
そのようなことをVBで操作することは可能なのでしょうか?
> もしHTML内にJAVAJavaScriptやVBScriptが埋まっている場合に
IEのオブジェクトとして扱う事になるので、必然的に、
JavaScriptは利用できません。すべてJScriptでの処理となります。
(たとえ、HTML中で「type="text/JavaScript"」や「language="JavaScript"」
などと書かれていたとしても、それはJScriptとして処理されます)
> 同じようにオブジェクトとして扱うことができるのでしょうか?
ごめんなさい……質問の意味がわかりません。
スクリプトが含まれていた時に、何をどのようなオブジェクトとして
扱いたいと仰っているのでしょうか?
とりあえず、オブジェクトの一覧はこちら。
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpisdk/dhtml/references/domrefs.htm
# 上記は、IE4.01の頃の内容です。IE6等の最新情報に付いては、
# 原文(英語)の資料を参照してください。
> 表示されているデータを取得して、
スクリプト中の変数の内容を取得するのは基本的には無理ですが、
そのスクリプト自体が、変数の内容を textarea や inputなどに
出力表示させるように作られているのであれば、各HTMLコントロールの
valueプロパティなどを使って読み取る事が出来ます。
> ある計算をして、別のHTMLを表示してその計算結果を
現在表示されているHTMLページを別のページに切り替えるには、
Navigate2メソッドを使うか、もしくは、DHTMLのlocationオブジェクトを
操作する事になります。
現在のページはそのまま残し、別のウィンドウで開かせたいのであれば、
新たにInternetExplorerオブジェクト(WebBrowserコントロール)を
用意してから、そのNavigate2イベントで制御すれば良いかと。
> HTML内のテキストボックスやコンボボックス、チェックボックスにセットして
それって「input type="text"」「textarea」、
「select」、「input type="radio"」の事でよいでしょうか。
だとすれば、valueプロパティやoptionsコレクション等が使えます。
例えば、[textareaオブジェクト]のプロパティならばこのあたり。
http://www.microsoft.com/japan/developer/library/jpisdk/dhtml/references/objects/TEXTAREA.htm
追加で質問させていただきます。
今、JRAのHP上のボタンをVBからキックしてあげたいのですが、
どのようにすればいいのでしょうか?
キックしたいボタンは「払戻金一覧」なのですが、
ソースを見る限り、私の能力では理解できませんでした。
現在のソースは、以下のようにしています。
Private Sub cmdKekka_Click()
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Visible = True
.Navigate "http://www.jra.go.jp/index.html"
Do While .Busy: Loop
Do: Loop Until .ReadyState = READYSTATE_COMPLETE
With .Document
'ここにキックさせるメソッドが入るかと思うのですが、、、
End With
.Quit
End With
Set IE = Nothing
End Sub
何分、VBの初心者で申し訳ありませんが、
宜しくご教示願います。
環境はVB6SP6です。
ほとんどFAQ化してますから、過去LOG検索なり
WEB検索なりすればいくらでも見つかると思いますが・・・。
Documentオブジェクトのメンバについては、
本質的にVBの世界の話ではありませんので、
DOM(Document Object Model)について勉強してください。
ここ(http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi)や
となり(http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi)で
「Document」で検索して見つかったページに目を通すだけでも
結構勉強になるのではないかと。
Say様:
ご回答ありがとうございます。
DOMですね。
そのキーワードさえもわからなかったざまなので、
ヒントを与えていただいてありがとうございます。