前回はcoinmarketcap.comからAPIを利用してデータを読み込み、任意の銘柄のみを表示するようにしました。
ExcelにCryptocurrency market capのデータを出力する5 -Excel VBA
今回は自分の保有通貨の数量を入力し、日本円換算の資産額を表示したいと思います。
D列に保有分の通貨数量を入力します。B列のシンボルも間違えないで正確に入力します。下記のように入力すればOKです。
コードは下記となります。
Sub Crypto_JSON_In_Excel()
Dim CryptoCurrencyJSON As Object, CryptoCurrencyNode
Dim WinHttpReq As Object, TickerJSON As String
Dim tickerSheet As Worksheet, arr(8) As Variant
Dim val_jpy As Long
Set tickerSheet = ThisWorkbook.Sheets(1)
arr(1) = "name"
arr(2) = "symbol"
arr(3) = "price_jpy"
arr(4) = "holding"
arr(5) = "value_jpy"
arr(6) = "percent_change_1h"
arr(7) = "percent_change_24h"
arr(8) = "percent_change_7d"
Set WinHttpReq = CreateObject("MSXML2.XMLHTTP")
WinHttpReq.Open "GET", "https://api.coinmarketcap.com/v1/ticker/?convert=JPY&limit=30", False
WinHttpReq.send
TickerJSON = WinHttpReq.responseText
Set WinHttpReq = Nothing
Set CryptoCurrencyJSON = ParseJson(TickerJSON)
For i = 1 To 8
tickerSheet.Cells(1, i) = arr(i)
Next i
trow = 2
For Each CryptoCurrencyNode In CryptoCurrencyJSON
If UCase(Cells(trow, 2)) = CryptoCurrencyNode(arr(2)) Then
For i = 1 To 8
If i = 4 Then
GoTo skip1
Else: End If
tickerSheet.Cells(trow, i) = CryptoCurrencyNode(arr(i))
skip1:
Next
val_jpy = Cells(trow, 3) * Cells(trow, 4)
Cells(trow, 5) = Application.WorksheetFunction.RoundDown(val_jpy, 0)
trow = trow + 1
Else: End If
Next
With Range(Cells(2, i - 3), Cells(trow - 1, i - 1))
.FormatConditions.AddColorScale ColorScaleType:=3
.FormatConditions(Range(Cells(2, i - 3), Cells(trow - 1, i - 1)).FormatConditions.Count).SetFirstPriority
.FormatConditions(1).ColorScaleCriteria(1).Type = xlConditionValueNumber
.FormatConditions(1).ColorScaleCriteria(1).Value = -100
.FormatConditions(1).ColorScaleCriteria(1).FormatColor.Color = 7039480
.FormatConditions(1).ColorScaleCriteria(2).Type = xlConditionValueNumber
.FormatConditions(1).ColorScaleCriteria(2).Value = 0
.FormatConditions(1).ColorScaleCriteria(2).FormatColor.ThemeColor = xlThemeColorDark1
.FormatConditions(1).ColorScaleCriteria(3).Type = xlConditionValueNumber
.FormatConditions(1).ColorScaleCriteria(3).Value = 100
.FormatConditions(1).ColorScaleCriteria(3).FormatColor.Color = 8109667
End With
End Sub
●実行結果
実行するとcoinmarketcap.comのサイトからデータを読み込んで表示します。
E列には各通貨の日本円換算した資産額が表示されます。
Excelで仮想通貨の資産管理2 -Excel VBA
無料・ダウンロード可) 仮想通貨エクセルツール2 各国法定通貨換算可能!仮想通貨価格・時価総額データ表示アプリケーション -Excel VBA