エクセルVBAからIEの制御について教えてください。



下記のようにヤフオクの出品終了分の1行目のタイトルを取得してメッセージボックスに
表示させるようにしたいのですが、★でエラーがでます。エラー原因と修正プランをお教えください。


Sub ヤフオク終了分の1行目からタイトルを取得してみる()

Dim ie As InternetExplorer

Dim txtInput As HTMLInputElement
Dim txtOutput As HTMLInputElement



Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "https://order.auctions.yahoo.co.jp/jp/show/mystatus?select=closed&hasWinner=1"

Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE
DoEvents
Loop


★ Set txtInput = ie.document.getElementById("left")(0)
MsgBox txtInput.Value


End Sub


★の箇所で
実行時エラー91 オブジェクト変数またはWith ブロック変数が設定されていません。
とでてしまいます。

ぜひお教えください。


ソースの一部は追記いたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/05/22 14:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
id:oshiete19

ソースの一部は追記いたします。

どこがおかしいでしょうか?

なお、<は、全角に変えて表示しています(うまくテキストが表示されないためです)


<td ALIGN="left">送料無料★クロコ柄ショルダーバッグ★黒★

<IMG SRC="/images/icon/premium.gif" WIDTH="62" HEIGHT="15" ALT="ストア" ALIGN="absmiddle">

<IMG SRC="/images/icon/pstfree.gif" WIDTH="20" HEIGHT="16" ALT="送料無料" ALIGN="absmiddle" BORDER="0">

<IMG SRC="/images/icon/buynow.gif" BORDER="0" WIDTH="16" HEIGHT="16" ALIGN="absmiddle" ALT="即買">

<IMG SRC="/images/icon/icon_s16.gif" WIDTH="16" HEIGHT="16" ALT="Yahoo!かんたん決済" ALIGN="absmiddle" BORDER="0">

</td>

ベストアンサー

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント50pt

MsgBox txtInput.Value
が 悪いんじゃないのかな?

MsgBox txtInput
にしたら どうでしょう?

他7件のコメントを見る
id:taknt

何を取得したいんでしょうか?

2013/05/15 17:07:51
id:oshiete19

送料無料★クロコ柄ショルダーバッグ★黒★

の文字列を取得したいのです。

2013/05/15 17:28:55

その他の回答1件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198ここでベストアンサー

ポイント50pt

MsgBox txtInput.Value
が 悪いんじゃないのかな?

MsgBox txtInput
にしたら どうでしょう?

他7件のコメントを見る
id:taknt

何を取得したいんでしょうか?

2013/05/15 17:07:51
id:oshiete19

送料無料★クロコ柄ショルダーバッグ★黒★

の文字列を取得したいのです。

2013/05/15 17:28:55
id:dawakaki No.2

回答回数797ベストアンサー獲得回数122

ポイント50pt

idとALIGNは違います。
以下のようなHTMLであれば、質問のVBAが正常に動きます。

<td id="left">送料無料★クロコ柄ショルダーバッグ★黒★

このようなHTMLでVBAを使って目的の文字列を抽出するのは困難です。

  • id:Mook
    left は ID じゃないので getElementById ではとれない。
  • id:Mook
    あと、getElementById でとったオブジェクトは (0) は不要。
    ID がなければ、getElementsByTagName で td を検索して条件に該当するものを探すか、
    表示位置が固定であれば、DOM の パスで指定するなど、
    状況次第かな。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません