大きなデータテーブルで作業している場合、本質的に重複する情報がテーブルに含まれることは珍しくありません。テーブル内の情報を処理するには、重複していると思われる行を削除して、処理する必要のある情報の量を減らすことができます。

たとえば、各行の最初のセルに部品番号が含まれているとします。最初のセルに重複する部品番号がある行を削除する場合はどうなりますか?このソリューションが必要な場合は、次のマクロが適しています。

Sub DelDupRows()

Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim RightCol 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     RightCol = ThisCol + rngSrc.Columns.Count - 1

'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 rows with empty key cells     For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = "" Then             Range(Cells(J, ThisCol), _               Cells(J, RightCol)).Delete xlShiftUp         End If     Next J     Application.ScreenUpdating = True End Sub

マクロは、呼び出す前に行った選択に対して機能します。したがって、範囲D7:G85から重複する行を削除する必要がある場合は、その範囲を選択してからマクロを実行するだけです。 D7:D85の範囲から重複を削除してから、D列のセル​​が空白であるD7:G85のすべての行(行ごとに4列)を削除します。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2108)は、Microsoft Excel 97、2000、2002、および2003に適用されます。