- ベストアンサー
ExcelのVBAでIEのWeb操作
- ExcelのVBAで、A1~A10のセルに入っている数値を指定のURLのお問い合せ番号の入力欄に自動でセットし、検索ボタンを押す方法が分かりません。
- 以下のプログラムでは、目的のURLに移動することはできますが、その後の入力とボタンクリックの方法が分かりません。
- アドバイスをいただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#15日から拝見しておりますが、#1 さんからのお返事がないようですので、ちょっと横から口出しさせていただきますね。 そもそも、#1 さんのご回答は、ちょっと示唆深いように見受けられるのですが、 >例えば~~でしたら とお書きのように、そのままやってしまうと NG ですね。 >上記の2つを試したのですが、以下のエラーが出ます。 ちゃんとお示しの URL の html ソース をご覧になりましたか? そこには、「name="toino"」なんて記述はありませんよね。 お示しの URL の場合は、 <FRAME src="INQJJ120.jsp" name="INQJJ120" marginwidth="1"> と書いてあるところが、 >「お問い合せ番号」の入力欄 の実態です。 実際には、 http://www2.fukutsu.co.jp/inq/INQJJ120.jsp という ページ になりますが、この ページ の html ソース には、#1 さんがお書きの コード がそのまま出ております。 ですから、 http://www2.fukutsu.co.jp/inq/INQJJ120.jsp の ページ を読み込むようにすれば、「oIE.Document.all.toino」が有効になります。 >なお、「 toino 」という名前は、 >10個の入力欄すべてに同じ名前が付けられているので、 >今回の指定方法では特定出来ないような気がするのですが。 その通り! ちゃんと、ぃぃトコロに気が付いていらっしゃるではないですか。 「oIE.Document.all.toino」のままでは単なる "[Object]" ですね。 [デバッグ(D)] - [ウォッチ式の追加(A)...] で、[式(E):] に「oIE.Document.all.toino」を入力して、[OK] してみてください。 ページ を読み込んだ段階で ウォッチ ウィンドウ を見ると、「oIE.Document.all.toino」の左の「+」を クリック すると、配下に length 10 Item 1 ~ 10 というものが見てとれます。 これが >「お問い合せ番号」の入力欄 ですね。 oIE.Document.all.toino.Item(1) あるいは、単に oIE.Document.all.toino(1) で、実態を掴むことができます。 ただし、「Item 1 ~ 10」とはなっていますが、配列の引数は「0」から始りますので、「Item 1」は「oIE.Document.all.toino(0)」になります。 さて、 > 実際には、 >http://www2.fukutsu.co.jp/inq/INQJJ120.jsp >という ページ になります と書きましたが、お示しの VBA コード の「oIE.Navigate」の後に、この URL を指定してやるのが簡単かとも存じますが、このような作りの ページ(フレームページ)の場合は、 oIE.Document.frames(1) で <FRAME src="INQJJ120.jsp" name="INQJJ120" marginwidth="1"> を掴むことができます。 従って、お示しの VBA コード のままで行くと、 oIE.Document.frames.Item(1).Document.all.toino(0).Value = "ほげげ" でイケマスね。 # suffre さん、大きなお節介失礼いたしました。 # <(_ _)>
その他の回答 (1)
- suffre
- ベストアンサー率28% (259/919)
入力は、例えば <INPUT type="text" size="20" maxlength="13" name="toino" value=""> でしたらnameがtoinoなので、 oIE.Document.all.toino.Value = "ほげげ" で、ボタンクリックは <INPUT type="submit" name="btn1" value="検 索" onClick="return search()"> のnameがbtn1なので、 oIE.Document.all.btn1.Click で行けます。
お礼
suffre さん、ご回答ありがとうございます。 oIE.Document.all.toino.Value = "ほげげ" oIE.Document.all.btn1.Click 早速、上記の2つを試したのですが、以下のエラーが出ます。 実行時エラー '438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。 何か環境的にすべき事があるのでしょうか? なお、「 toino 」という名前は、10個の入力欄すべてに同じ名前が付けられているので、今回の指定方法では特定出来ないような気がするのですが。 なにかアドバイスがございましたら、よろしくお願い致します。
お礼
DOUGLAS_ さん、ありがとうございます! ばっちり、目的を果たす事が出来ました! 感謝、感激です! 「ウルトラスーパーベストアンサー」の指定をさせて頂きたい程です。 重ねて、お礼申し上げます。 ありがとうございました。