注目の投稿

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

2018/02/12

Excelで仮想通貨の資産管理6 -Excel VBA


追記:この記事のプログラムの修正をしました。
プログラム修正 Excelで仮想通貨の資産管理6-2 -Excel VBA


さあ、だんだん完成に近づいてきました。
前回は仮想通貨の保有銘柄の投資額と評価資産額から投資額(元本)を引いた損益額を表示しました。

Excelで仮想通貨の資産管理5 -Excel VBA

今回は各銘柄の損益額の割合をパーセントにして損益率を表示し、その棒グラフも表示したいと思います。

・コード
グラフの参照先は2か所なのでrange同士をunionでまとめています。
円グラフがすでに出ているので棒グラフに"グラフ 2"と名前を付けています。

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

        Next
     
       val_jpy = Cells(trow, 4) * Cells(trow, 5)
       tickerSheet.Cells(trow, 6) = Application.WorksheetFunction.RoundDown(val_jpy, 0)
     
       val_sum = Cells(trow, 6) + val_sum

       tickerSheet.Cells(trow, 9) = Cells(trow, 6) - Cells(trow, 8)
       ivm = Cells(trow, 8) + ivm
       pl = Cells(trow, 9) + pl
       trow = trow + 1
    GoTo back1:

    Else: End If
     
    Next
 
    tickerSheet.Cells(trow, 6) = val_sum
    tickerSheet.Cells(trow, 8) = ivm
    tickerSheet.Cells(trow, 9) = pl
    col = i
 
    For i = 2 To trow - 1
    tickerSheet.Cells(i, 4).NumberFormatLocal = "0.000"

    tickerSheet.Cells(i, 7) = Cells(i, 6) / val_sum
    tickerSheet.Cells(i, 7).NumberFormatLocal = "0.0%"

    tickerSheet.Cells(i, 10) = (Cells(i, 6) - Cells(i, 8)) / Cells(i, 8)
    tickerSheet.Cells(i, 10).NumberFormatLocal = "0.0%"
 
    Next
     
'bar chart
Set rng = Range(Cells(2, 2), Cells(trow - 1, 2))
Set rng = Union(rng, Range(Cells(2, 10), Cells(trow - 1, 10)))

    ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
    ActiveChart.SetSourceData Source:=rng
    ActiveSheet.ChartObjects(2).name = "グラフ 2"

    ActiveChart.ApplyLayout (11)
    ActiveChart.SetElement (msoElementDataLabelOutSideEnd)
    ActiveChart.ChartColor = 13
    ActiveSheet.ChartObjects(2).Top = Range("H12").Top
    ActiveSheet.ChartObjects(2).Left = Range("H12").Left

●実行結果
J列に損益率が表示されました。円グラフの右隣に損益率の棒グラフが表示されました。


VBAを使っているため1シートのみでデータを表示しており、他のシートは使用しておりません。通貨のシンボルと保有通貨量と投資額を入力すればあとはボタンを押すだけで自動で表示できます。

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

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