エクセルで作成した帳簿で確定申告は可能かどうか ~ 実際にやってみた ~

 

「エクセルで帳簿をつけているけど、これって確定申告に使えるの?」

「手作業で入力を続けているけど、ちゃんと申告できるか不安…」

 

そんな疑問を抱えていませんか?

 

結論から言うと、

エクセルで作成した帳簿でも確定申告はできます。ただし、「どの申告方法か」「どんな帳簿か」によって、使える範囲が変わってくる

です。

 

私は2020年に10年勤めた会社を辞め、個人事業主として独立しました。

最初は経理の知識がゼロで、エクセルで仕訳帳を自作するところからスタート。

そこからVBAで自動化を試みたり、年末に集計ミスに気づいて深夜まで修正したりと、さんざんな思いをした末に、今はまったく別のやり方に落ち着いています。

 

この記事では、エクセル帳簿で確定申告ができるのか、どこまで使えてどこから使えないのかを、私の実体験とVBAコードを交えながら詳しく解説します。

 

広告

エクセルで帳簿をつけている人が抱える「あるある悩み」

個人事業主として仕事をしながら、経理まで自分でこなすのは想像以上にしんどいもの。

「簿記なんて習ったことない」「勘定科目ってどれ選べばいいの?」という状態でスタートした人は多いはずです。

 

まずは、エクセル帳簿を使い続けている多くの方が感じているリアルな悩みを整理してみましょう。

 

こんな悩み、いくつ当てはまりますか?

次の項目をチェックしてみてください。

  • 毎月のレシートや領収書をエクセルに手入力するのに1〜2時間以上かかる
  • 勘定科目の選び方がわからず、そのたびにネットで調べている
  • 数式がいつの間にか壊れて、合計金額がおかしくなっていた
  • 月末にまとめて入力するため、記憶が曖昧になって間違いが増える
  • 確定申告の直前に「金額が合わない!」となって深夜まで作業した
  • 青色申告決算書の書き方がわからず、毎年ゼロから調べ直している
  • 本業が繁忙期に入ると経理が後回しになり、年末に書類の山と格闘する

 

私は独立した当初、これらすべてに悩んでいました。

 

特につらかったのは、仕事が一番忙しいタイミングに確定申告の準備まで重なること。

年末になると憂うつな気持ちがずっと続いて、「経理だけは本当に嫌い…」と何度もつぶやいていました。

 

「エクセル帳簿で確定申告ができるか不安」な理由はここにある

エクセルで帳簿をつけているとき、こんな場面で特に不安を感じませんか?

  • 「この数字で本当に大丈夫?」という漠然とした不安がぬぐえない
  • 青色申告の65万円控除を受けられるかどうかわからない
  • 複式簿記になっているか自信がない
  • 税務署に指摘されたらどうしようという恐れがある

 

この不安の正体は、「エクセルは確認してくれない」ことにあります。

 

入力ミスをしてもエラーにならず、勘定科目の選択が間違っていても指摘してくれない。

正しいかどうかは、すべて自分で確認しなければなりません。

 

なぜエクセル帳簿で確定申告がしんどくなるのか?根本原因を解説

エクセルは「表計算ソフト」であって「会計ソフト」ではありません。

この根本的な違いが、経理業務でエクセルを使い続けることの悩みを生み出しています。

 

具体的にどんな問題が起きるのか、見ていきましょう。

 

エクセル経理で起きる3つの根本問題

【問題①】自動仕訳ができないため、ヒューマンエラーが起きやすい

エクセルでは、銀行口座やクレジットカードの明細を自動で取り込む機能がありません。

そのため、毎月の取引データはすべて手入力することになります。

 

1件1件入力していると、キーの打ち間違いや桁間違いが必ず起きます。

私も実際に「¥5,400」と入力すべきところを「¥54,000」と入力し、月次の合計が大幅にズレて気づいた経験があります。

 

最悪の場合、入力ミスに気づかずそのまま確定申告してしまう可能性があるので注意しましょう。

 

【問題②】確定申告書類と連動しておらず、データ連携が難しい

エクセルに仕訳データを入力しても、そのデータが自動的に青色申告決算書に反映されるわけではありません。

別途、国税庁のe-Taxや申告書類に数字を転記する作業が必要になります。

 

この「転記」という作業がまた一つのミスの温床になります。

同じデータを二度入力する工程は、手間が倍になるだけでなく、転記ミスのリスクも抱えることになります。

 

【問題③】管理が属人化してしまい、後から見直すのが大変

「自分だけがわかるルール」でエクセルを組んでしまうと、少し時間が経ったときに「このシートは何のためにあるんだっけ?」となります。

 

私もかつて、3ヶ月ぶりに自分の仕訳帳を見直したとき、列の意味がわからなくなって焦った経験があります。

年末に全データをまとめて確認しようとしたとき、どのシートの数字が正しいのか判断できなくなる。

これが「属人化」の怖さです。

 

エクセル帳簿でも確定申告できる範囲・できない範囲

実は、エクセル帳簿で確定申告できるかどうかは、申告の種類によって変わります。

 

  • 白色申告の場合

収支内訳書を作れる程度の単式簿記であれば、エクセル帳簿で申告できます。

取引件数が少なく、経費の種類が少ない方であれば現実的な選択肢です。

 

  • 青色申告(10万円控除)の場合

簡易な帳簿(単式簿記)でも10万円の特別控除は受けられます。

ただし、エクセルで複式簿記の形式を再現するのは、簿記の知識が必要です。

 

  • 青色申告(65万円控除)の場合

複式簿記による記帳が必須です。

仕訳帳と総勘定元帳を作成し、損益計算書と貸借対照表を添付する必要があります。

エクセルでこれをすべてこなすのは、かなりの知識と手間が必要です。

 

ExcelVBAで帳簿作業を自動化してみる【サンプルコード付き】

独立してすぐ取り組んだのが、ExcelVBA(マクロ)による自動化でした。

本業でVBAを使ったマクロを多数開発していたこともあり、そのスキルを経理処理にも応用しようと考えたのです。

 

VBAを使えば「ある程度」の自動化は実現できます。

具体的な方法を見ていきましょう。

 

VBA自動化①:別シートへ仕訳データを自動転記するマクロ

入力シートに記入した仕訳データを、仕訳帳シートへ自動転記するマクロです。

手入力の手間を大幅に削減でき、転記ミスもなくなります。

 

■ サンプルコード

Sub TransferToJournal()

Dim wsInput As Worksheet
Dim wsJournal As Worksheet
Dim lastRow As Long
Dim newRow As Long

' 入力シートと仕訳帳シートを指定
Set wsInput   = ThisWorkbook.Sheets("入力")
Set wsJournal = ThisWorkbook.Sheets("仕訳帳")

' 入力シートのデータ終端行を取得
lastRow = wsInput.Cells(wsInput.Rows.Count, "A").End(xlUp).Row

' 仕訳帳の次の空行を取得
newRow = wsJournal.Cells(wsJournal.Rows.Count, "A").End(xlUp).Row + 1

' 2行目からデータ終端まで1行ずつ転記
Dim i As Long
For i = 2 To lastRow
wsJournal.Cells(newRow, 1).Value = wsInput.Cells(i, 1).Value  ' 日付
wsJournal.Cells(newRow, 2).Value = wsInput.Cells(i, 2).Value  ' 借方科目
wsJournal.Cells(newRow, 3).Value = wsInput.Cells(i, 3).Value  ' 借方金額
wsJournal.Cells(newRow, 4).Value = wsInput.Cells(i, 4).Value  ' 貸方科目
wsJournal.Cells(newRow, 5).Value = wsInput.Cells(i, 5).Value  ' 貸方金額
wsJournal.Cells(newRow, 6).Value = wsInput.Cells(i, 6).Value  ' 摘要
newRow = newRow + 1
Next i

MsgBox "仕訳データの転記が完了しました。"

End Sub

 

■ コードの動作を解説します

このマクロは、3つのステップで動作します。

  • 「入力」シートのA列のデータ終端行をEnd(xlUp).Rowで自動検出する
  • 「仕訳帳」シートの最終行の次の行を起点として、For〜Nextループで1行ずつ転記を実行する
  • 転記が終わったら完了メッセージを表示する

 

実行するには、ExcelのVBAエディター(Alt+F11)を開いてこのコードを貼り付け、F5キーを押すだけ。

プログラミング初心者でも、コピー&ペーストで試せる簡単なコードです。

 

→ → → 経理処理に応用できる「転記マクロ」のダウンロードはこちら

 

VBA自動化②:CSVデータを仕訳帳へ自動取込するマクロ

銀行やクレジットカード会社からダウンロードしたCSVファイルを、仕訳帳シートへ自動取込するマクロです。

手入力ゼロで、CSVのデータをそのまま帳簿に反映させられます。

 

■ サンプルコード

 

Sub ImportCSVToJournal()

Dim ws As Worksheet
Dim csvPath As String
Dim lastRow As Long

' CSVファイルのパスを指定(同フォルダ内のbank_data.csvを読み込む)
csvPath = ThisWorkbook.Path & "\bank_data.csv"

' 仕訳帳シートを指定
Set ws = ThisWorkbook.Sheets("仕訳帳")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1

' CSVを別ブックとして開いてデータをコピー
Dim csvBook As Workbook
Set csvBook = Workbooks.Open(csvPath)
Dim csvWs As Worksheet
Set csvWs = csvBook.Sheets(1)
Dim i As Long

' 2行目からデータ終端まで繰り返し転記
For i = 2 To csvWs.Cells(csvWs.Rows.Count, "A").End(xlUp).Row
ws.Cells(lastRow, 1).Value = csvWs.Cells(i, 1).Value  ' 日付
ws.Cells(lastRow, 2).Value = csvWs.Cells(i, 2).Value  ' 内容
ws.Cells(lastRow, 3).Value = csvWs.Cells(i, 3).Value  ' 金額
lastRow = lastRow + 1
Next i
csvBook.Close SaveChanges:=False
MsgBox "CSVデータの取り込みが完了しました。"

End Sub

 

■ コードの動作を解説します

このマクロは、4つのステップで動作します。

  • csvをThisWorkbook.Pathと同じフォルダから自動的に探して開く
  • CSVの2行目(1行目はヘッダーを想定)からデータが終わる行まで、For〜Nextループで1行ずつ仕訳帳シートへ転記する
  • 転記が完了したらCSVブックを保存せずに閉じる
  • 完了メッセージを表示する

 

CSV形式の列の並びは金融機関によって異なります。

実際に試す際は、ダウンロードしたCSVを開いて列の順番を確認してから、コードの列番号(i, 1)(i, 2)(i, 3)の数字を調整してください。

 

→ → → 経理処理に応用できる「CSV出力マクロ」のダウンロードはこちら

 

VBA自動化③:勘定科目を自動判定するマクロ

取引内容のキーワードをもとに、勘定科目を自動で割り当てるマクロです。

「交通費」「通信費」「消耗品費」など、よく使う勘定科目をキーワードで自動判定させることで、手動選択の手間を省けます。

 

■ サンプルコード

 

Sub AutoCategorize()

Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim content As String

Set ws = ThisWorkbook.Sheets("仕訳帳")
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

' B列(取引内容)を読み取り、D列(勘定科目)に自動記入
For i = 2 To lastRow
content = ws.Cells(i, 2).Value  ' B列:取引内容

' キーワードに基づいて勘定科目を自動割り当て
Select Case True
Case InStr(content, "電車") > 0 Or InStr(content, "バス") > 0 Or InStr(content, "交通") > 0
ws.Cells(i, 4).Value = "旅費交通費"
Case InStr(content, "通信") > 0 Or InStr(content, "インターネット") > 0 Or InStr(content, "携帯") > 0
ws.Cells(i, 4).Value = "通信費"
Case InStr(content, "文具") > 0 Or InStr(content, "消耗品") > 0 Or InStr(content, "コンビニ") > 0
ws.Cells(i, 4).Value = "消耗品費"
Case InStr(content, "書籍") > 0 Or InStr(content, "本") > 0
ws.Cells(i, 4).Value = "新聞図書費"
Case InStr(content, "接待") > 0 Or InStr(content, "会食") > 0
ws.Cells(i, 4).Value = "接待交際費"
Case Else
ws.Cells(i, 4).Value = "要確認"  ' 判定できない場合はフラグを立てる
End Select
Next i

MsgBox "勘定科目の自動入力が完了しました。" & Chr(13) & "『要確認』の項目は手動で修正してください。"

End Sub

 

■ コードの動作を解説します

このマクロはSelect Case文とInStr関数を組み合わせた、シンプルな自動仕訳ロジックです。

  • B列(取引内容)を2行目からデータ終端まで1行ずつ読み取る
  • InStr関数で取引内容の文字列の中に特定のキーワードが含まれているか確認する
  • キーワードに一致した場合、D列(勘定科目)に対応する勘定科目名を自動入力する
  • どのキーワードにも一致しない場合は「要確認」と入力し、後から手動確認できるようにフラグを立てる

 

キーワードのリストを増やせば増やすほど、自動仕訳の精度が上がります。

自分の事業でよく使う取引内容のキーワードを事前に登録しておくと便利です。

 

→ → → 経理処理に応用できる「条件分岐Select Case」の解説記事はこちら

 

VBAで自動化しても越えられない「4つの限界」

VBAを駆使してエクセル帳簿を自動化することは可能です。

しかし、しばらく使い続けるうちに「これ以上はVBAでは無理だ」と感じることになります。

 

実際に私が感じた「越えられない壁」を正直にお伝えします。

 

限界① 銀行・クレジットカードとのリアルタイム連携ができない

VBAでCSVを取り込むマクロは作れますが、それでも「銀行サイトからCSVをダウンロードする」という手作業は毎月発生します。

口座やカードの枚数が増えれば増えるほど、ダウンロードの手間が増える。

 

会計ソフトなら、銀行口座やクレジットカードと直接API連携しているため、取引データの自動取込が可能です。

CSVのダウンロード作業すら不要になります。

 

この差は、使い続けるほどに大きく感じるようになりました。

 

限界② 確定申告書類の自動作成は事実上不可能

どれだけ丁寧に仕訳データを整備しても、ExcelVBAだけで青色申告決算書や確定申告書類を自動作成するのは非常に困難です。

国税庁の書類の書式は毎年変わる可能性があり、その都度マクロを修正し続けるのは現実的ではありません。

 

私はこの壁に何度もぶつかり、「ここまで作り込む労力を使うなら会計ソフトを導入すべきだ」と感じました。

会計ソフトなら、日々入力したデータをもとに確定申告書類を自動作成でき、e-Taxへのデータ連携も可能です。

 

限界③ インボイス制度・電子帳簿保存法への対応が難しい

2023年から始まったインボイス制度への対応も、ExcelVBAだけでは困難です。

適格請求書発行事業者番号の管理や、仕入税額控除の計算など、税務処理は年々複雑化しています。

また、電子帳簿保存法では電子取引データの保存要件(検索可能性・改ざん防止)を満たす必要も。。。

 

エクセルで要件を満たすには専門知識と継続的な管理が必要で、個人事業主が一人で対応するのは相当な負担です。

会計ソフトはこれらの法改正に自動対応しており、ユーザー側での対応は基本的に不要です。

 

限界④ 年末にミスが発覚したときの修正が地獄になる

私が一番つらかった経験は、年末にエクセルでまとめた帳簿にミスが発覚したことです。

 

本業が最も忙しい時期に、どのシートのどのセルが間違っているのかを1件1件たどって修正しなければならない。

数式の参照がどこかでズレていて、合計が合わないまま日付をまたいだことも一度や二度ではありませんでした。

 

VBAで自動化していても、元データのミスを防ぐことはできません。

「年末の地獄」から逃れるには、入力ミス自体を発生させない仕組みが必要です。

 

経理の悩みを根本から解決する「最短の方法」

ここまで読んでいただいた方はおわかりかと思いますが、

VBAで頑張って自動化するよりも、最初から会計ソフトを使った方が圧倒的に楽

なのは間違いありません。

 

私の経験を正直にお伝えすると、「最初からエクセルを使わずに会計ソフトを使えばよかった」と後悔しています。

マクロ開発に費やした時間は、今思うと本当にもったいない…。

 

会計ソフトを使えば、ExcelVBAでは実現できなかった以下のことがすべて自動化できます。

  • 銀行口座・クレジットカードとの自動連携(取引データを自動取込)
  • AIによる自動仕訳・勘定科目の自動提案
  • 青色申告決算書・確定申告書類の自動作成
  • インボイス制度(適格請求書)への自動対応
  • 電子帳簿保存法への対応
  • レシートをスマホで撮影するだけで自動仕訳する機能
  • スマホからいつでもどこでも入力・確認が可能

 

実際に私は会計ソフトを導入してから、経理に費やす時間が激減しました。

今では本業の合間の休憩時間にスマホでサッと入力を済ませていて、確定申告書類も1月中旬から準備を始めて余裕をもって申告しています。

 

私が実際に使っている会計ソフト「マネーフォワード」は商工会議所の方や先輩個人事業主の方から、

経理をやったことがない人でも扱えて、「確定申告」「請求書作成」「帳簿作成」「銀行口座連携」など、いろんな機能が使えてコスパもいい

と勧められたものです。

 

実際に使ってみて、「会計ソフトってこんなに便利なものなのかっ」と大感動。

 

会計ソフトの導入を検討している!これから個人として企業する!という方は、「マネーフォワード」是非チェックしてみてください。

【個人事業主おすすめ】マネーフォワードを使うべき7つの理由と導入メリット

 

まとめ|エクセル帳簿で確定申告は「できる」が、限界もある

この記事でお伝えしたことを整理します。

  • エクセルで作成した帳簿でも確定申告はできる。ただし、青色申告65万円控除には複式簿記が必要
  • エクセル経理の根本問題は「自動仕訳ができない」「データ連携が難しい」「管理が属人化する」の3つ
  • ExcelVBAを使えば「別シート転記」「CSV取込」「自動仕訳」などある程度の自動化はできる
  • それでも「銀行口座連携」「確定申告書類の自動作成」「インボイス対応」は会計ソフトでしか実現できない
  • 会計ソフトを使えば、日々の仕訳・口座連携・確定申告がすべて一元管理できる
  • 個人事業主こそ、早めに会計ソフトへ移行することで本業に集中できる

 

エクセルで経理することの限界を感じている方、確定申告のたびに憂うつになっている方は、ぜひ一度会計ソフトの無料トライアルを試してみてください。

 

「こんなにラクになるなら、もっと早く使えばよかった」と感じるはずです。

 

会計ソフトを導入して経理にかかる時間を削減しましょう。