経理業務で使えるExcel VBAを使ったデータ比較の自動化

はじめに

経理業務では、日々大量のデータを扱うことが求められます。その中で、特定の列にあるデータが一致しているかどうかを確認する作業は頻繁に行われます。しかし、手作業で行うと時間がかかり、またヒューマンエラーの可能性もあります。そこで、この記事ではExcel VBAを使って、この作業を自動化する方法を紹介します。

VBAコード

以下に、Excel VBAを使ってデータの一致を確認するコードを示します。

Sub CompareData()
    Dim wb1 As Workbook, wb2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim rng1 As Range, rng2 As Range
    Dim lastRow1 As Long, lastRow2 As Long
    Dim i As Long, j As Long

    ' ファイルを開く
    With Application.FileDialog(msoFileDialogOpen)
        .Show
        If .SelectedItems.Count = 1 Then
            Set wb1 = Workbooks.Open(.SelectedItems(1))
            Set ws1 = wb1.ActiveSheet ' アクティブシートを選択
        End If
    End With

    ' 列を選択
    Set rng1 = Application.InputBox("列を選択してください", Type:=8)
    lastRow1 = ws1.Cells(ws1.Rows.Count, rng1.Column).End(xlUp).Row

    ' 2つ目のファイルを開く
    With Application.FileDialog(msoFileDialogOpen)
        .Show
        If .SelectedItems.Count = 1 Then
            Set wb2 = Workbooks.Open(.SelectedItems(1))
            Set ws2 = wb2.ActiveSheet ' アクティブシートを選択
        End If
    End With

    ' 列を選択
    Set rng2 = Application.InputBox("列を選択してください", Type:=8)
    lastRow2 = ws2.Cells(ws2.Rows.Count, rng2.Column).End(xlUp).Row

    ' データを比較
    For i = 1 To lastRow1
        For j = 1 To lastRow2
            If rng1.Cells(i, 1).Value = rng2.Cells(j, 1).Value Then
                ws2.Cells(j, "CA").Value = "データ一致"
            End If
        Next j
    Next i

    ' ワークブックを保存して閉じる
    wb1.Close SaveChanges:=False
    wb2.Close SaveChanges:=True
End Sub

まとめ

このVBAコードを使用することで、Excelの列間でデータの一致を自動的に確認し、一致した場合には”データ一致”と表示することができます。これにより、経理業務の効率化が図られます。ただし、このコードは基本的なものであり、エラーハンドリングなどは含まれていません。また、VBAマクロを使用する際は、必ず事前に重要なデータのバックアップを取るようにしてください。このコードは大量のデータに対しては時間がかかる可能性がありますので、その点もご了承ください。

タイトルとURLをコピーしました