ここから本文です

VBAのIE操作 エクセル

ndu********さん

2012/6/1921:36:37

VBAのIE操作 エクセル

エクセルマクロで、ヤフーサイトの、下記画像「ショッピング」をクリックしてページを表示させるにはどうしたらいいでしょうか。Submit で良いんでしょうか。やり方が分かりません。ご存知の方、よろしくお願いします。

エクセルエクセル,Set objTag,nduodjakdkuado,Set objIE,li&gt,cbysC1&quot,A&quot

閲覧数:
1,069
回答数:
3
お礼:
500枚

違反報告

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

xls********さん

編集あり2012/6/2022:22:38

関係する処だけですが
ソースを見ると
'<li><a href="r/c1" class="cbysC1">ショッピング</a><!--1--></li>
'<li><a href="r/c2" class="cbysC2">オークション</a><!--2--></li>


となっています。

★aタグのclass属性を探ってみます。
(例1)
Dim objIE
Dim objTag As Object
Dim tmp As Object

Set objTag = objIE.document.all.tags("a")
For Each tmp In objTag
If tmp.className = "cbysC1" Then
tmp.Click
Exit For
End If
Next

★divタグのid属性(Yahoo!サービス)からaタグ(ショッピング)をクリックしてみます。
(例2)
objIE.document.all("yahooservice").all.tags("a").Item(3).Click

★選択するようにしてみました。
(例3)
Set objTag = objIE.document.all("yahooservice").all.tags("a")
For Each tmp In objTag
If tmp.className Like "cbysC*" Then
If MsgBox(tmp.innerText, vbOKCancel) = vbOK Then
tmp.Click
Exit For
End If
End If
Next

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

2012/6/20 22:46:45

抱きしめる できました!
その上、とても分かり易い説明有難うございます。
現在勉強中です。またお世話になるかもしれませんが、お願いします。

回答頂いたお二人も有難うございます。
特に、kamicha1様の回答、とても勉強になりました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

kam********さん

2012/6/1922:22:58

nduodjakdkuadoさん

> ヤフーサイトの、下記画像「ショッピング」をクリックしてページを表示させる

方法はいろいろありますが、該当のAタグをClickするという方法があります。
以下のような感じでできると思います。

Sub Sample()
Dim objIE As Object
Dim objTag1 As Object
Dim objTag2 As Object

Set objIE = CreateObject("InternetExplorer.Application")

objIE.Visible = True

objIE.Navigate "http://www.yahoo.co.jp/"

While objIE.ReadyState <> 4 Or objIE.Busy = True
DoEvents
Wend
While objIE.Document.ReadyState <> "complete"
DoEvents
Wend

For Each objTag1 In objIE.Document.body.getElementsByTagName("DIV")
'Yahoo!サービスの一覧
If objTag1.ID = "yahooservice" Then
For Each objTag2 In objTag1.getElementsByTagName("A")
If objTag2.innerTEXT = "ショッピング" Then
objTag2.Click
Exit For
End If
Next
Exit For
End If
Next

Set objIE = Nothing
End Sub

kabuto_yhさん

2012/6/1922:11:32

マクロではなくハイパーリンクではダメでしょうか。

任意のどこかのセルで右クリックから「ハイパーリンク」
表示された「アドレス(E)」の枠の中に
http://shopping.yahoo.co.jp/
とURLを入力。
「表示文字列」の枠の中に任意のページ名を入力(入力しなくてもよい)
として「OK」

これでそのセルに表示名が青色で表示されますので、青色の表示名をクリックすればそのページが開かれます。

マクロではなくハイパーリンクではダメでしょうか。

任意のどこかのセルで右クリックから「ハイパーリンク」...

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

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

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

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

閉じる

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

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

閉じる