ExcelのVBAで、InternetExplorerで現在開いているWebサイトの、

あるリンクのリンク先の取得方法について教えてください。

・閲覧先のページのURLは固定(候補は複数ありますが・・・)
・その閲覧先のページには常に2つのリンクが貼られており、
 取得したいのは1つめ(html的に先)の方のみ
 (どちらも文字列リンクです。<a href="・・・">文字列</a>というタイプ。)
・この取得したいリンク先は、このページをリロード
 する度にランダムに変わるため、ページを開かないと
 確定しない。
・私が使用しているブラウザはIE8(←すいませんが固定)

VBA初心者で基本的なこともわからないことが多いですが、
どのような記述方法になるか、ご教授頂ければ幸いです。

※下のコメント欄もよければご活用ください

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2010/07/20 17:09:26
  • 終了:2010/07/24 06:43:56

ベストアンサー

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692010/07/20 17:40:24

ポイント70pt

XMLHTTPオブジェクトを使った簡単な方法なら、

http://officetanaka.net/other/extra/tips02.htm

こちらの方法を利用して、こんな感じで簡単にできます。


Sub Sample()
    Dim Http, buf As String
    Dim stP As Long
    Dim edP As Long
    
    Set Http = CreateObject("MSXML2.XMLHTTP")
    Http.Open "GET", "http://q.hatena.ne.jp/1279613364", False
    Http.Send
    buf = StrConv(Http.ResponseBody, vbUnicode)
    
    stP = InStr(1, buf, "<a href=") + 9
    edP = InStr(stP, buf, ">") - 1
    
    MsgBox Mid(buf, stP, edP - stP)
    
    Set Http = Nothing
End Sub
id:miku1973

ありがとうございます!いろいろなURLでやってみましたが、上手くできそうです!

しかし、ちょっと私がやりたいことができなかったので、追加質問を出しました。

http://q.hatena.ne.jp/1279686152

どうぞよろしくお願い致します!!

2010/07/21 13:23:40

その他の回答(1件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692010/07/20 17:40:24ここでベストアンサー

ポイント70pt

XMLHTTPオブジェクトを使った簡単な方法なら、

http://officetanaka.net/other/extra/tips02.htm

こちらの方法を利用して、こんな感じで簡単にできます。


Sub Sample()
    Dim Http, buf As String
    Dim stP As Long
    Dim edP As Long
    
    Set Http = CreateObject("MSXML2.XMLHTTP")
    Http.Open "GET", "http://q.hatena.ne.jp/1279613364", False
    Http.Send
    buf = StrConv(Http.ResponseBody, vbUnicode)
    
    stP = InStr(1, buf, "<a href=") + 9
    edP = InStr(stP, buf, ">") - 1
    
    MsgBox Mid(buf, stP, edP - stP)
    
    Set Http = Nothing
End Sub
id:miku1973

ありがとうございます!いろいろなURLでやってみましたが、上手くできそうです!

しかし、ちょっと私がやりたいことができなかったので、追加質問を出しました。

http://q.hatena.ne.jp/1279686152

どうぞよろしくお願い致します!!

2010/07/21 13:23:40
id:yamaneroom No.2

yamaneroom回答回数1040ベストアンサー獲得回数612010/07/20 17:23:30

VBAで直接URL(固定の方)にアクセスして、正規表現でリンク先URLを取り出す方が簡単。

手順は下記参照。

http://www.ken3.org/vba/backno/vba120.html

http://oshiete.goo.ne.jp/qa/5661746.html

id:miku1973

ありがとうございます!難しそうですが読んでみます。

追加質問を出しました。

http://q.hatena.ne.jp/1279686152

どうぞよろしくお願い致します!!

2010/07/21 13:24:14

コメントはまだありません

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

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

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

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