MBAのインデックス投資日記

2014年8月からインデックス投資を始めました。出世しそこねたMBAです。バリュー平均法で2018年3月にアーリーリタイアしました。

VBAでドル円、S&P500、QQQの値をGoogleファイナンスから取得してExcelのセルにセットするプログラムを作りました。

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

↓↓↓こちをらのブログも是非ごらんください。

にほんブログ村 株ブログ インデックス投資へにほんブログ村 株ブログ 米国株へ