アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2003のマクロで、URLを抜き出すマクロを作っているのですが、なぜかurl_endの値が正確に取得できません。何がいけないのでしょうか?

事象
url_endに格納される値がなぜか1376(くらいだったような・・)になってしまう。
url_startには1260が格納されており、<a href=の部分をきちんと取得している。

ソース
Sub test()
Dim objIE As Object
Dim objTAG As Object
Dim souce As String
Dim url As String
Dim url_start As String
Dim url_end As String
url_end = 1

Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = False
objIE.Navigate "http://dir.yahoo.co.jp/"
Do While objIE.Busy = True
DoEvents
Loop

Application.Wait Time:=Now + TimeValue("00:00:02")
url_start = InStr(url_end, objIE.Document.All(1).Innerhtml,"<a href=", vbTextCompare)
url_end = InStr(url_start,objIE.Document.All(1).Innerhtml, ">", vbTextCompare)
url = Mid(objIE.Document.All(1).Innerhtml, url_start, url_end)
Cells(1, 1).Value = url
End Sub

A 回答 (2件)

URIが100字ほどあって長いだけで、それは問題ないのでは?



#HTML上は次のような構文が許されているが
<p title=">">あいう</p>
RFCのURIの構文自体では許されてないかな、多分。

#気になるのはInStr関数の戻り値は文字列の最初から数えた文字数で
#Mid関数の第3引数は"終了位置"じゃなくて"長さ"であること。
だから第二引数に1300とか与えては駄目。
==========
ところで,
Option Explicit


Sub test()
Dim x As Integer
x = 0
If Left("123456789", 4) = 12345 Then

x = x + 1

End If
If "12345" = 12345 Then
x = x + 2
End If

MsgBox (x)

End Sub

で表示される値はどうなるかわかる?
Mid関数とMid$関数の違いを調べると面白いかもよ?(本題には関係ないけど)
    • good
    • 0
この回答へのお礼

お~っと・・お恥ずかしい。
end-startにしたら無事取れました。
こんな初歩的なミスをやらかすとは・・。

Mid関数とMid$関数の違い
⇒バリアントかstringかの違いでしたっけ?

ありがとうございました。

お礼日時:2009/03/17 17:21

×第二引数


○第三引数
    • good
    • 0

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