入金消し込みの自動化
日々の請求処理や経理業務において、「入金消込(にゅうきんけしこみ)」は重要な作業です。
請求データと入金データを照らし合わせて、正確に突き合わせる作業は、手作業だと時間がかかり、ミスも発生しがちです。
そこで今回は、Excel VBA を使って入金消込を自動化する方法を解説します。
実装するメリット
このマクロを実装することで、次のようなメリットがあります。
- 消込処理にかかる時間を大幅に短縮できる
- 手作業によるヒューマンエラーを防げる
- 見落としや二重チェックを減らせる
- 毎月の経理業務が効率化できる
処理の概要
今回は簡易的に比較をしたいので、次の2つのシートを使って処理を行います。
- 「請求データ」シート:請求番号・顧客名・金額 などが記録されている
- 「入金データ」シート:入金日・請求番号・金額 などが記録されている
両シートの「請求番号」をキーにして、同じ番号があれば「消込完了」とマークします。
重要なのは、何をキー(目印)にするか?です。
コード例(基本)
Sub 入金消込処理()
' 請求データと入金データのシートを設定
Dim sekyu_sh As Worksheet
Dim pay_sh As Worksheet
Dim i As Long
Dim j As Long
Dim sekyu_num As String
Set sekyu_sh = Worksheets("請求データ")
Set pay_sh = Worksheets("入金データ")
' 請求データの各行を確認
For i = 2 To sekyu_sh.Cells(Rows.Count, 1).End(xlUp).Row
sekyu_num = sekyu_sh.Cells(i, 1).Value
' 入金データの中に一致する番号があるか確認
For j = 2 To pay_sh.Cells(Rows.Count, 1).End(xlUp).Row
If pay_sh.Cells(j, 2).Value = sekyu_num Then
sekyu_sh.Cells(i, 4).Value = "消込済"
Exit For
End If
Next j
Next i
MsgBox "消込処理が完了しました。"
End Sub
- 請求データと入金データの請求番号を比較し、一致するものがあれば「消込済」とマークします。
- 結果は「請求データ」のD列に表示されます。
実装のポイント
- 処理の開始行を明確にする:今回の例では2行目(ヘッダーの次)から処理を開始
- 比較対象の列を正しく指定する:請求番号の列がズレると正常に動作しない
- Exit For を使って無駄なループを避ける(処理速度向上)
応用:金額もチェックする
請求番号だけでなく、金額の一致まで確認したい場合は、次のように条件を追加します。
If pay_sh.Cells(j, 2).Value = sekyu_num And _
pay_sh.Cells(j, 3).Value = sekyu_sh.Cells(i, 3).Value Then
こうすることで、「番号が一致していても金額が異なる入金」は消込対象に含まれなくなります。
まとめ
入金消込は手間のかかる作業ですが、Excel VBA を活用すれば、正確かつ効率的に処理できます。
- 「請求番号」をキーにして、入金との突き合わせが可能
- 消込処理をマクロで行えば、大量データでも高速にチェックできる
- 金額や日付を含めた高度な突き合わせも可能
今回ご紹介したマクロはあくまで基本の形です。 運用に応じて「金額一致」「日付チェック」「未消込リストの出力」など、さらなる工夫を加えてみてください。
VBAの力で、煩雑な業務から少しずつ解放されていきましょう!
