個人事業主・フリーランスや法人などの事業形態を問わず、現金管理をしている場合には計算上の現金残高(帳簿上残高)と実際にある現金残高が一致しているかどうかを定期的に確認する必要があります。
Excelで帳簿上の残高と実際の残高をチェックする仕組みを考えましたので整理しておきます。
Excelで小口現金の計算上の残高と実際の残高をチェックする仕組み
作成したExcelの仕組みは下記のようなもので、テーブル形式で管理している現金出納帳が右側に、そして実際の現金残高を入力するテーブルが左側にあります。
日々の現金取引に関してはこの右側に随時データを入力していく形になります。

そして、毎週や、毎月など、現金の実際の残高をチェックする際には左側のテーブルに実際にお金を数えた枚数を記載していく流れになります。
作業イメージを動画にしてみました↓
組み込んでいるExcel関数とマクロについて
さきほどの、Excelの仕組みですが、一部Excel関数とマクロを組み込んでみました。
組み込んだマクロの内容は下記のものです↓
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | Option Explicit Sub money_check() Dim flag As Long flag = MsgBox( "前回のデータをクリアしてチェック作業をはじめますか?" , vbYesNo + vbQuestion) If flag = vbYes Then Call record_data With Sheets( "小口現金" ) .Range( "d4" ).Value = Now() .Range( "c9:c17" ).Value = "" .Range( "d6" ).Value = .Range( "M8" ). End (xlDown).Value End With End If End Sub Sub record_data() Dim lastrow As Long lastrow = Sheets( "チェック履歴" ).Cells(Rows.Count, 1). End (xlUp).Row Sheets( "チェック履歴" ).Range( "a" & lastrow + 1).Value = Sheets( "小口現金" ).Range( "d4" ).Value End Sub |
画面の上部にある「作業開始」ボタンをクリックすると、メッセージが表示されるようにしています。

ここで「はい」をクリックすると
- 作業開始日時をセルに入力し、
- 左側のテーブルデータを削除し、
- 右側のテーブルデータの最終残高を転記してくるようにしています。
それと同時に、現金の残高をチェックした履歴を別シート(チェック履歴シート)に残すようにしています。

また、「左側のテーブルに記載した金額の合計額」が「左側の帳簿上の残高」と一致した場合にはセルに「☆残高一致☆」と表示されるようにしています↓
こちらは条件付き書式とExcel関数で対応しています。

まとめ
現金管理をしている場合に、計算上の残高と実際の有り高をExcelでチェックする仕組みを考えました。
別にマクロを組み込む必要はないといえばないのですが、前回のデータをクリアしたり、データを転記したりする等、地味に面倒な作業はマクロを組み込んで効率化してみるといいかと思います。
今回のマクロは難しいものはありませんので、こういった形からマクロに触れるというのもお勧めです。
【本日の近況報告】
今年もプロ野球が開幕しました。関西にいると阪神戦が常に放送されていたのですが、こちらでは全く放送がなく。。。
毎回欠かさず見ている熱心なファンというわけではないのですが、ないと物足りない感じがしますね。
【本日の1曲】
スピッツ/春の歌
毎年、春になったら必ず聴くスピッツの1曲。
個人的な春の代表曲。