ビットコイン収益計算表(エクセル)
はじめに、この収益計算表はニーズを満たさない可能性が高いです。
各取引所からデータをひっぱってくるようなものではなく手入力用です。マクロの練習で趣味で作ったものになります。もっと便利なウェブサービスや他の方が作った便利なものがあるとは思います。
とくに確定申告についての知識はありません。とりあえず損益がわかればよいのではという思いで作りました。
ビットコイン収益計算表をダウンロードする
内容としては、どの通貨を買ったか選択、どの通貨を売ったかを選択して、通貨枚数に関係なく、日本円でいくら売り買いしたかだけを記録するような表になっています。
こんな感じです。
プロシージャの公開
このファイルはlibreofficeで作っており、拡張子は.odsです。
もしかするとエクセルではうまく動作しないかもしれないので、プロシージャを公開しておきます。(色付けやセレクトボックスの作成は手作業でやったほうが速い可能性があります。)
sheet名を連番に
sub sheet_name_step for i = 1 to sheets.count sheets(i).name = cstr(i) + "月" next i end sub
各シートにタイトルをつける
sub sheets_title_name for i = 1 to sheets.count with sheets(i) .range("a1").value = "ビットコイン/アルトコイン収支 " + cstr(i) + "月" .range("a3").value = "日付" .range("b3").value = "通貨種類(買)" .range("c3").value = "購入" .range("d3").value = "通貨種類(売)" .range("e3").value = "売却" .range("f3").value = "損益" .range("g33").value = "合計収支" end with next i end sub
各シートに日付を入力する
sub sheets_date_write dim day as string dim x as integer for i = 1 to sheets.count for j = 4 to 34 x = j - 3 day = "2018/" + cstr(i) + "/" + cstr(x) sheets(i).cells(j, 1).value = day sheets(i).cells(j, 1).numberformatlocal = "yyyy/m/d" sheets(i).cells(j, 3).value = 0 sheets(i).cells(j, 5).value = 0 next j: next i end sub
各シートをクリアする
sub sheets_clear for i = 1 to 12 sheets(i).cells.clear next i end sub
セルを足し算する
sub cells_sum for i = 1 to sheets.count for j = 4 to 34 sheets(i).cells(j, 6) = "=c"+cstr(j)+"+e"+cstr(j) next j: next i end sub
月々の合計収支
sub month_money for i = 1 to sheets.count sheets(i).range("g34") = "=sum(f4:f34)" next i end sub
年収支を計算する
sub year_money dim yearmoney as long for i = 1 to sheets.count yearmoney = yearmoney + sheets(i).range("g34") next i sheets(12).range("g31").value = yearmoney end sub
通貨種類のセレクトボックスcopy
sub copy_cell for i = 1 to sheets.count sheets(i).range("b4").copy for j = 4 to 34 sheets(i).paste destination:=cells(j, 2) sheets(i).paste destination:=cells(j, 4) next j: next i end sub
セルの色を変える
sub cells_color_change for i = 1 to sheets.count for j = 4 to 34 with sheets(i) .cells(j, 2).interior.color = rgb(20, 200, 200) .cells(j, 3).interior.color = rgb(20, 200, 200) .cells(j, 4).interior.color = rgb(250, 200, 200) .cells(j, 5).interior.color = rgb(250, 200, 200) end with next j: next i end sub
おまけ
VBAのプロシージャは他の言語でいうメソッドと同じなので、プロシージャ名を列挙するだけで、全てのプロシージャを実行してくれます。
sub call_all_sub sheet_name_step sheets_title_name sheets_date_write cells_sum month_money year_money cells_color_change end sub
コメント