重複セルの削除(Microsoft Excel)
あるプログラムまたはある人から生データを受け取った回数はわかりません。最初に行う必要があるのは、リストから重複を削除することです。同じ状況に陥った場合は、次のマクロが非常に役立ちます。
Sub DelDups() Dim rngSrc As Range Dim NumRows As Integer Dim ThisRow As Integer Dim ThatRow As Integer Dim ThisCol As Integer Dim J As Integer, K As Integer Application.ScreenUpdating = False Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address) NumRows = rngSrc.Rows.Count ThisRow = rngSrc.Row ThatRow = ThisRow + NumRows - 1 ThisCol = rngSrc.Column 'Start wiping out duplicates For J = ThisRow To (ThatRow - 1) If Cells(J, ThisCol) > "" Then For K = (J + 1) To ThatRow If Cells(J, ThisCol) = Cells(K, ThisCol) Then Cells(K, ThisCol) = "" End If Next K End If Next J 'Remove cells that are empty For J = ThatRow To ThisRow Step -1 If Cells(J, ThisCol) = "" Then Cells(J, ThisCol).Delete xlShiftUp End If Next J Application.ScreenUpdating = True End Sub
マクロは、呼び出す前に行った選択に対して機能します。したがって、C15:C59の範囲から重複セルを削除する必要がある場合は、その範囲を選択してからマクロを実行するだけです。範囲内で複数の列を選択した場合(たとえば、C15:E59)、範囲内の最初の列のみが影響を受けます。マクロが完了すると、空白のセルと同様に、重複するセルが削除されます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2109)は、Microsoft Excel 97、2000、2002、および2003に適用されます。