ここから本文です

EXCELのVBAからIEを操作をさせようとしています。

kob********さん

2015/6/2123:12:55

EXCELのVBAからIEを操作をさせようとしています。

以下のようなソースのテーブルがあり、
IEでこのページを開いた時にリストの一番上を選択させたいと考えておりますが、
選択させ方が分かりません。

<td>
<select size="18" name="address_info_list" style="width: 500px; height: 250px;">
<option value="東京都,豊島区,南池袋,1丁目">東京都豊島区南池袋1丁目</option>
<option value="東京都,豊島区,南池袋,2丁目">東京都豊島区南池袋2丁目</option>
<option value="東京都,豊島区,南池袋,3丁目">東京都豊島区南池袋3丁目</option>
<option value="東京都,豊島区,南池袋,4丁目">東京都豊島区南池袋4丁目</option>
</select>
</td>
</tr>

以下の2パターンを試してみたのですが、
「オブジェクトは、このプロパティまたはメソットをサポートしていません。」
とエラーが出てしまいます。

①objIE.document.getElementByName("address_info_list").selectedIndex = 1
②objIE.document.all.address_info_list.selectedIndex = 1

とにかく1番上さえ選んだ状態になれば良いのですが、
どのようにすればよいでしょうか。

閲覧数:
110
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

hot********さん

2015/6/2206:14:41

ie.Document.getElementsByName("address_info_list")(0).selectedIndex = 0

だと思います。
selectedIndex は、0から始まるので、一番上は0だと思います。


Sub sample()
Dim ie As Object
Dim elm As Object
Dim i As Integer
Dim msg As String
Dim n As Integer
'
Set ie = CreateObject("InternetExplorer.Application") 'ie
ie.Visible = True 'ie表示
ie.Navigate "http://localhost/test.html"
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop '表示完了待ち
ie.Document.getElementsByName("address_info_list")(0).selectedIndex = 0 '1番目(0から始まる)を選択
'ie.Quit
End Sub

  • 質問者

    kob********さん

    2015/6/2308:27:26

    ご回答ありがとうございます。
    おかげ望み通りの結果となりました。

    自分なりに作成したのですが「オブジェクト変数または with ブロック変数が設定されていません」と出てしまいます。

    どこかでミスしていると思うのですが、教えて頂けないでしょうか。
    テストでNTTのサイトを開いて1ページ目を入力後にリストを選択するようにしています。

    Dim IE As InternetExplorer

    Call ieView(ie, "https://flets.com/ftv/area.html")
    ie.document.getElementsByName("SearchUseKind")(0).click
    ie.document.forms("areasearch").FIELD_ZIP1.Value = "110"
    ie.document.forms("areasearch").FIELD_ZIP2.Value = "0000"

    '確認をクリック
    ie.navigate "javascript:ftvSearch('ZIP','1');"
    Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop '表示完了待ち
    ie.document.getElementsByName("address_info_list")(0).selectedIndex = 0 '1番目(0から始まる)を選択

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2015/6/28 22:31:52

ご連絡遅くなりまして申し訳ありません。
検証したところ、ie.navigate "javascript:ftvSearch('ZIP','1')
で開いたページが新規のタブになっており、次の処理の対象が前のページになっていたので、動作しない状況でした。そこを修正したところ解決しました。
誠にありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる