• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel の VBA で、IEのWeb操作)

ExcelのVBAでIEのWeb操作

このQ&Aのポイント
  • ExcelのVBAで、A1~A10のセルに入っている数値を指定のURLのお問い合せ番号の入力欄に自動でセットし、検索ボタンを押す方法が分かりません。
  • 以下のプログラムでは、目的のURLに移動することはできますが、その後の入力とボタンクリックの方法が分かりません。
  • アドバイスをいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.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 さん、大きなお節介失礼いたしました。 #  <(_ _)>

u-hitoshi
質問者

お礼

DOUGLAS_ さん、ありがとうございます! ばっちり、目的を果たす事が出来ました! 感謝、感激です! 「ウルトラスーパーベストアンサー」の指定をさせて頂きたい程です。 重ねて、お礼申し上げます。 ありがとうございました。

その他の回答 (1)

  • suffre
  • ベストアンサー率28% (259/919)
回答No.1

入力は、例えば <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 で行けます。

u-hitoshi
質問者

お礼

suffre さん、ご回答ありがとうございます。   oIE.Document.all.toino.Value = "ほげげ"   oIE.Document.all.btn1.Click 早速、上記の2つを試したのですが、以下のエラーが出ます。   実行時エラー '438':   オブジェクトは、このプロパティまたはメソッドをサポートしていません。 何か環境的にすべき事があるのでしょうか? なお、「 toino 」という名前は、10個の入力欄すべてに同じ名前が付けられているので、今回の指定方法では特定出来ないような気がするのですが。 なにかアドバイスがございましたら、よろしくお願い致します。

関連するQ&A