SSブログ

ビットコイン(bitFlyer)の過去チャートをExcelで取得 [VBA/VBS]

  Excel VBAの勉強のためJSONデータを取得してみようと思い立ち、何か面白いものはないかと探していました。最近何かと世間をにぎわせているbitCoinの過去チャートがJSONデータで公開さしているサイトがあることをここで見つけました。この記事を参照させてもらいbitFlyerの過去チャートをダウンロードするExcel マクロをVBAで作成してみました。

サンプル画像
ここで公開しています。
bitcoin20180129.png

コード
Sub get_chart()
  '過去データの取得
  Dim targetURI
  Dim HttpReq
  Dim oXML
  Dim sc, objJSON, rcd
  Dim i As Integer
  
  targetURI = "https://min-api.cryptocompare.com/data/histohour?fsym=BTC&tsym=JPY&limit=2000&e=bitFlyer"
  Set HttpReq = CreateObject("MSXML2.XMLHTTP")
  HttpReq.Open "GET", targetURI, False
  HttpReq.send (Null)
  
  Dim restext As String
  With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", targetURI, False
    .send
    Set oXML = .responseXML
    restext = .responseText
  End With

  Set sc = CreateObject("ScriptControl")
  sc.Language = "JScript"
  sc.AddCode "function jsonParse(s) { return eval('(' + s + ')'); }"
  Set objJSON = sc.CodeObject.jsonParse(restext)
  
  i = 5 'データ先頭行
  For Each rcd In objJSON.Data
    Cells(i, 1) = (CallByName(rcd, "time", VbGet) + 32400) / 86400 + 25569
    Cells(i, 2) = CallByName(rcd, "open", VbGet)
    Cells(i, 3) = CallByName(rcd, "close", VbGet)
    Cells(i, 4) = rcd.high
    Cells(i, 5) = rcd.low
    Cells(i, 6) = rcd.volumefrom
    Cells(i, 7) = rcd.volumeto
    i = i + 1
  Next
End Sub

Sub get_rate()
  '現在のレート
  Dim targetURI
  Dim HttpReq
  Dim oXML
  Dim sc, objJSON, rcd

  targetURI = "https://api.bitflyer.jp/v1/ticker?product_code=BTC_JPY"
  Set HttpReq = CreateObject("MSXML2.XMLHTTP")
  HttpReq.Open "GET", targetURI, False
  HttpReq.send (Null)

  Dim restext As String
  With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", targetURI, False
    .send
    Set oXML = .responseXML
    restext = .responseText
  End With

  Set sc = CreateObject("ScriptControl")
  sc.Language = "JScript"
  sc.AddCode "function jsonParse(s) { return eval('(' + s + ')'); }"
  Set objJSON = sc.CodeObject.jsonParse(restext)
  
    Cells(3, 4) = objJSON.timestamp
    Cells(3, 7) = objJSON.ltp
    Cells(3, 8) = objJSON.best_bid
    Cells(3, 9) = objJSON.best_ask
End Sub

nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。