プロが教える店舗&オフィスのセキュリティ対策術

VBAを独学で学んでいる者です。IEを操作させたく、学んでいます。
色々と検索などをしていましたが行き詰ってしまいました。
どうぞご助力願います。

学び始めて1週間程度ですので、うまく説明できないかもしれませんがご容赦ください。

VBAでIEを操作し、特定のURLを表示。←これは大丈夫です
表示されたウェブサイトのHTML内の特定の文字列(リンク)と、
アクティブなセル内のテキストが合致したリンクをクリックする、
・・・といったマクロは書けるものでしょうか?


<INPUT TYPE="submit" NAME="btn01" VALUE="ログイン">

上記のようなHTMLソースですと「NAME="btn01"」を探せば、「objIE.document.all.btn01.Click」というものでできるかと思いますが、
動的に変化するウェブサイトの文字列と、あらかじめ用意していたセル内の文字列が合致した時にだけクリックするような方法を求めています。

例えば
・夏にしか出現しないウェブサイトコンテンツ「水着」。
・エクセルのシートC2に「水着」。
・IE起動。サイト内に「水着」という文字列があり、セルと合致するので「水着(リンク)」の箇所をクリック。

・・・といった感じなのですが・・・。やはり難しいでしょうか・・・。
「水着」といった単語ではなく、もっと複雑な文字列を扱う予定です。

稚拙な表現ですみません。
皆様、どうぞ宜しくお願いいたします。

A 回答 (1件)

開いたHTMLから、全てのリンクURLと表示テキストを抽出し、列挙。


そのテキストに検索をかけて一致したリンク先URLを開く

ではダメなんでしょうか?

参考URL:http://www.ken3.org/vba/backno/vba170.html

この回答への補足

ご回答ありがとうございます!!
ご回答いただいた方法で大丈夫とおもうのですが、記述の仕方はどうすればいいでしょうか??

検索エンジンや参考URL先などで調べましたが、突破口がつかめずにいます。
お忙しいところ失礼ですが、記述方法をご教授願えたら・・・と思います。
宜しくお願い致します。

補足日時:2007/08/02 23:49
    • good
    • 0
この回答へのお礼

ご回答がヒントになり、試行錯誤の末、やりたいことができました!!

参考URL先のソースを以下のように改変いたしました。

'リンク情報からオブジェクトを探し.Clickする
For n = 0 To objIE.document.Links.Length - 1 'リンク数分まわす
Debug.Print objIE.document.Links(n).innerText 'デバックで表示する
'リンク先(.text)をチェックする(文字列比較する)
If objIE.document.Links(n).innerText = "水着" Then
objIE.document.Links(n).Click '.Clickでクリックしてみた
Exit For '見つかったので強制的にループを抜ける
End If
Next

お礼日時:2007/08/03 05:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!