【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.
シート名や列番号が正しいか確認してください。