VBからHTML上にあるオブジェクトを操作するには?


@ハル  2002-12-16 12:55:40  No: 76626  IP: [192.*.*.*]

はじめまして@ハルと申します。
VBからHTML上に張り付いているチェックボックスやコンボボックス、ボタンなどを
VBのフォームから操作することは可能なのでしょうか?
もし可能であれば、どうやって調べればいいか教えてください。
参考になるホームページ、本など教えていただければなお助かります。
どうかよろしくお願いします。

編集 削除
魔界の仮面弁士  2002-12-16 13:03:38  No: 76627  IP: [192.*.*.*]

# 細かく書くとキリが無いので、とりあえず概要だけ。

HTML上のオブジェクトを操作するためには、InternetExplorerオブジェクト、
もしくはWebBrowserコントロールの「Documentプロパティ」を使います。

Documentプロパティは、DHTMLのdocumentオブジェクトを返すので、
あとはDynamic HTMLを操作する要領で、各コントロールの
プロパティやメソッドを、VBから操作する事が出来ます。

なお、プロパティやメソッドだけではなく、イベントも扱いたい
場合には、MSHTML.TLBを参照設定して、そこに WithEvents変数を
割り当てて使う事になります。

編集 削除
@ハル  2002-12-16 13:44:52  No: 76628  IP: [192.*.*.*]

さっそくのレスありがとうございます。
もしHTML内にJAVAJavaScriptやVBScriptが埋まっている場合に
同じようにオブジェクトとして扱うことができるのでしょうか?
このことでやりたいことは、JAVAJavaScriptやVBScriptに表示されている
データを取得して、ある計算をして、別のHTMLを表示してその計算結果を
HTML内のテキストボックスやコンボボックス、チェックボックスにセットして
ボタンを押して処理完了とした仕組みを作ろうと思っていますが
そのようなことをVBで操作することは可能なのでしょうか?

編集 削除
魔界の仮面弁士  2002-12-16 16:59:03  No: 76629  IP: [192.*.*.*]

> もし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

編集 削除
shashi  2005-01-30 05:03:21  No: 76630  IP: [192.*.*.*]

追加で質問させていただきます。

今、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です。

編集 削除
Say  2005-01-30 11:11:00  No: 76631  IP: [192.*.*.*]

ほとんど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」で検索して見つかったページに目を通すだけでも
結構勉強になるのではないかと。

編集 削除
shashi  2005-01-31 02:00:15  No: 76632  IP: [192.*.*.*]

Say様:
ご回答ありがとうございます。
DOMですね。
そのキーワードさえもわからなかったざまなので、
ヒントを与えていただいてありがとうございます。

編集 削除