注目の投稿

今まで作成したエクセルツールまとめ

2018/02/10

プログラム修正版)Excelで仮想通貨の資産管理 -Excel VBA

coinmarketcap.comのAPIを利用してExcelで仮想通貨の資産をまとめられるようにしています。今回はプログラムの修正の記事となります。


今まではB列に銘柄のシンボルをcoinmarketcapのランキング順に上のセルから入力して実行すると正常に表示されました。しかし、ランキングを無視して順番を入れ替えてセルにシンボルを入力すると空欄になってしまいその下の行も表示されませんでした。

・上からランキング順だと正常に表示。(C列にランキングを出しました。)

・ランキングの順番を入れ替えてLSKをXRPの上に入力して実行すると・・・

・LSKまでしか表示されず、その下は表示されない。


今回は銘柄の順番を入れ替えても正常に表示されるようにプログラムを修正しました

・コード
B列のセルに入力されたシンボルとAPIで読み込んだシンボルを照合してデータを表示するようにしています。修正前のプログラムでは、APIのデータを入れた配列は1位のBTCの照合が終わったあと下の行に移動し、2位のETHから照合していました。修正後は1位のBTCの照合が終わって下の行に移動したあとでもう一度1位のBTCから照合するようにしています。

   i = 0
    trow = 2
    val_sum = 0
back1:
    For Each CryptoCurrencyNode In CryptoCurrencyJSON
    If UCase(Cells(trow, 2)) = CryptoCurrencyNode(arr(2)) Then
 
        For i = 1 To 9
     
            If i <> 4 Then
           
            tickerSheet.Cells(trow, i) = CryptoCurrencyNode(arr(i))
            Else
             
            End If

        Next
     
       val_jpy = Cells(trow, 3) * Cells(trow, 4)
       tickerSheet.Cells(trow, 5) = Application.WorksheetFunction.RoundDown(val_jpy, 0)
     
       val_sum = Cells(trow, 5) + val_sum 
       trow = trow + 1
    GoTo back1:

    Else: End If
     
    Next
 
    tickerSheet.Cells(trow, 5) = val_sum
    col = i
 
    For i = 2 To trow - 1
    tickerSheet.Cells(i, 6) = Cells(i, 5) / val_sum
    tickerSheet.Cells(i, 6).NumberFormatLocal = "0.0%"
    Next

実行結果
LSKがXRPより上の行でも正常に表示されました。


いつも同じ通貨ばかり表示していてもどうかと思ったので通貨を変えた画像も載せておきます。こんな感じです。こちらもランキング順ではなく順番を入れ替えたものです。


無料・ダウンロード可) 仮想通貨エクセルツール2 各国法定通貨換算可能!仮想通貨価格・時価総額データ表示アプリケーション -Excel VBA

bitFlyer ビットコインを始めるなら安心・安全な取引所で


追記:プログラムの修正箇所を赤字に変更しました。