■■■明日の日経平均を予想するスし10232■■■

このエントリーをはてなブックマークに追加
220うんこまんへ
Option Explicit
Private Sub CommandButton1_Click()
Dim objReg As Object '正規表現をするために使うオブジェクト
Dim objMatch As Object '正規表現結果を受けるオブジェクト
Dim cellcnt As Integer '出力する行番号
Dim retstr As String 'ネットから受け取ったテキスト
Dim seekcode As String '検索する銘柄コード
Dim d_date As String '日付
Dim d_end As Long '終値
Dim d_gap As Long '前日比
'以下略
Dim str As String
Dim s As String
Dim slen As Long

'シートのA2からA列に銘柄コードがあるとする
cellcnt = 2
seekcode = Cells(cellcnt, 1)

Do While seekcode <> ""
retstr = access_yahoo_finance(seekcode)
slen = InStr(retstr, "<!---/VIEWS_LIST-->")
str = Mid(retstr, slen, Len(retstr) - slen)

Set objReg = CreateObject("VBScript.RegExp")

'日付
objReg.Pattern = "[0-9]+/[0-9]+<"
Set objMatch = objReg.Execute(str)
s = objMatch.Item(0).Value
d_date = Left(s, Len(s) - 1)
slen = objMatch.Item(0).FirstIndex
str = Mid(str, slen, Len(str) - slen)

'終値(現在取引値)
objReg.Pattern = ">[0-9,]+<"
Set objMatch = objReg.Execute(str)
s = objMatch.Item(0).Value
d_end = Mid(s, 2, Len(s) - 2)
slen = objMatch.Item(0).FirstIndex
str = Mid(str, slen, Len(str) - slen)

'前日比
objReg.Pattern = "[+-][0-9,]+"
Set objMatch = objReg.Execute(str)
s = objMatch.Item(0).Value
d_gap = s
slen = objMatch.Item(0).FirstIndex
str = Mid(str, slen, Len(str) - slen)

'以下略

Cells(cellcnt, 2) = d_date
Cells(cellcnt, 3) = d_end
'これも以下略

cellcnt = cellcnt + 1
seekcode = Cells(cellcnt, 1)
Loop
End Sub