ビットコイン収益計算表(エクセル)
はじめに、この収益計算表はニーズを満たさない可能性が高いです。
各取引所からデータをひっぱってくるようなものではなく手入力用です。マクロの練習で趣味で作ったものになります。もっと便利なウェブサービスや他の方が作った便利なものがあるとは思います。
とくに確定申告についての知識はありません。とりあえず損益がわかればよいのではという思いで作りました。
ビットコイン収益計算表をダウンロードする
内容としては、どの通貨を買ったか選択、どの通貨を売ったかを選択して、通貨枚数に関係なく、日本円でいくら売り買いしたかだけを記録するような表になっています。
こんな感じです。
プロシージャの公開
このファイルは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のプロシージャは他の言語でいうメソッドと同じなので、プロシージャ名を列挙するだけで、全てのプロシージャを実行してくれます。
sheet_name_step
sheets_title_name
sheets_date_write
cells_sum
month_money
year_money
cells_color_change
end sub