VBAでドル円、S&P500、QQQの値をGoogleファイナンスから取得してExcelのセルにセットするプログラムを作りました。
Excelのシートに「更新」ボタンを追加して、SetKabukaを割り当てると、ボタンを押すだけで、ドル円、S&P500、QQQの値が更新されます。
私の保有資産は、おおむねS&P500,QQQまたはそのレバレッジなので、上記の3つの値がわかれば、どのぐらい資産が増減するか概算できます。
Function GetStock(strStock As String) As String
' Summary:引数で指定された銘柄コードの株価をGoogleファイナンスで取得する。
' Argument:strStock as string
' return value:GetStock as string
Dim strURL As String ' URL
Dim oHttp As Object ' オブジェクト
Dim datHtml As String ' 取得データ
Dim strStart As String ' 検索文字列の開始位置
Dim strEnd As String ' 検索文字列の終了位置
Dim longStart, longEnd, longStrLength As Long
Dim strGet As String
' URLを指定
strURL = "https://www.google.com/finance/quote/" + strStock
' オブジェクト生成し変数oHttpへ代入
Set oHttp = CreateObject("Microsoft.XMLHTTP")
' openメソッドで、GET、False(同期通信)を設定
oHttp.Open "GET", strURL, False
' サーバーから oHttpへ送信
oHttp.send
' 受信データを変数datHtmlへ入れる
datHtml = oHttp.responseText
Set oHttp = Nothing
' 株価を取得する
strStart = InStr(datHtml, "<div class=""YMlKec fxKbKc"">")
longStart = Val(strStart)
' 開始文字をずらす
longStart = longStart + Len("<div class=""YMlKec fxKbKc"">")
strEnd = InStr(longStart, datHtml, "</div>")
' strStart及びstrEndを整数型へ変換
longEnd = Val(strEnd)
' 取得する文字列の長さ
longStrLength = longEnd - longStart
' 文字列抜き出し
strGet = Mid(datHtml, longStart, longStrLength)
'関数の戻値を設定
GetStock = strGet
End Function
Sub SetKabuka()
Dim strKabuka As String
strKabuka = GetStock("USD-JPY")
Cells(23, 1) = strKabuka
strKabuka = GetStock(".INX:INDEXSP")
Cells(23, 2) = strKabuka
strKabuka = GetStock("QQQ:NASDAQ")
Cells(23, 3) = strKabuka
End Sub
↓↓↓こちをらのブログも是非ごらんください。