エクセル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回まで
  • 13歳以上
  • 登録:2013/05/15 14:11:45
  • 終了:2013/05/22 14:15:03
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

きゃづみぃ回答回数13537ベストアンサー獲得回数11982013/05/15 14:35:14

ポイント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

きゃづみぃ回答回数13537ベストアンサー獲得回数11982013/05/15 14:35:14ここでベストアンサー

ポイント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ベストアンサー獲得回数1222013/05/15 23:14:07

ポイント50pt

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

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

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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません