人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセル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 ブロック変数が設定されていません。
とでてしまいます。

ぜひお教えください。


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

●質問者: 教えてください!
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

質問者から

ソースの一部は追記いたします。
どこがおかしいでしょうか?
なお、<は、全角に変えて表示しています(うまくテキストが表示されないためです)


<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>


1 ● きゃづみぃ
●50ポイント ベストアンサー

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

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


教えてください!さんのコメント
回答ありがとうございました。やってみましたが、やはり、同じ個所、同じエラーがでてしまいました。

きゃづみぃさんのコメント
http://web.biz-prog.net/readme/readme.html ・「Microsoft Internet Controls」 ・「Microsoft HTML Object Library」 この二つは 参照設定してありますよね?

教えてください!さんのコメント
はい。参照設定してあります。再度確認しましたが、しっかりとチェックが入っていました。

きゃづみぃさんのコメント
あ、 Set txtInput = ie.document.getElementById("left")(0) の(0)もはずしていました。 Set txtInput = ie.document.getElementById("left") では?

教えてください!さんのコメント
ありがとうございます。状況がかわりまして、最後のメッセージボックスでエラーがでるようになりました。.valueをつけても、最後がエラーがでます。

きゃづみぃさんのコメント
あと "left"に指定するのって td ALIGN="left" じゃなくて <div id="modAdSct"> とかの id="modAdSct"の箇所のものを セットしないと ダメなんじゃないのかな? getElementByIdじゃなくて違うものを使用する?

教えてください!さんのコメント
ありがとうございました。 leftを変更して、 itemにしてみたところ、メッセージボックスに、[object] aidにしてみたところ、メッセージボックスに、[object] と表示されました。 スキル不足で申し訳ございません。 先ほどの前後のソースは 【追記したものより前部分が】 <tr class="auc_del_style" BGCOLOR="#ffffff"> <td ALIGN="center"> <input type="checkbox" name="item" value="v99999999"> <input type="hidden" name="aid" value="v99999999"> </td> <td ALIGN="center">v99999999</td> 【追記したものより後ろ部分が】 <td ALIGN="right" nowrap><b>1000 円</b></td> <td ALIGN="right" nowrap>5月15日 10時30分</td> のようになっております。どんな変数をいれたらよろしいでしょうか?

きゃづみぃさんのコメント
何を取得したいんでしょうか?

教えてください!さんのコメント
送料無料★クロコ柄ショルダーバッグ★黒★ の文字列を取得したいのです。

2 ● だわかき
●50ポイント

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

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

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

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ