【Excelマクロ】入金消込をマクロで自動化する方法

入金消し込みの自動化

日々の請求処理や経理業務において、「入金消込(にゅうきんけしこみ)」は重要な作業です。

請求データと入金データを照らし合わせて、正確に突き合わせる作業は、手作業だと時間がかかり、ミスも発生しがちです。

そこで今回は、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の力で、煩雑な業務から少しずつ解放されていきましょう!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール