📘 Excel逆引き事典

【VBA】重複データを確認メッセージを出さずに配列に格納する方法

日々の業務では、大量のデータから重複を排除して処理することが多いでしょう。しかし、その過程で頻繁に出る確認メッセージは作業効率を著しく低下させます。この記事では、VBAを使用して重複データを配列に格納する方法を紹介します。これにより、確認メッセージが出ることなくスムーズな業務処理が可能になります。

サンプルコード

VBA
Option Explicit
Sub DuplicateDataToArray()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim lastRow As Long, i As Long
    Dim dataRange As Range
    Dim dataArray() As Variant
    Dim uniqueArray() As Variant
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' データ範囲を取得
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    Set dataRange = ws.Range("A2:A" & lastRow)
    
    ' 配列にデータを格納
    dataArray = Application.Transpose(dataRange.Value)
    
    ' ディクショナリを使用して重複を排除
    ReDim uniqueArray(1 To dataRange.Count)
    i = 0
    For Each item In dataArray
        If Not dict.exists(item) Then
            i = i + 1
            uniqueArray(i) = item
            dict.Add item, Nothing
        End If
    Next item
    
    ' 結果を表示(実際の業務では適切な処理に変更してください)
    ws.Range("B2:B" & i + 1).Value = Application.Transpose(uniqueArray)
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。