同一値が連続している列の削除
エクセルで以下のようにA列にデータがあります。
sss
qqq
sss
sss
sss
qqq
fff
ttt
ttt
sss
sss
連続して同じデータが入っている列は最初の行だけのこしそれ以外は削除し以下のように表示したいと思っています。
sss
qqq
sss
qqq
fff
ttt
sss
あるサイトで連続データある場合は最初の行の値を表示して残りの同じ値のデータは背景色と同じにして見えないようにするマクロがありました、が私のやりたい事は不要な行を削除したいのです、
どなたかお知恵をお貸し下さい。
以下参照
##############################
Macro 同じ値が連続している時二番目以降のデータを見えなくする方法
(Excel97,Excel2000,Excel2002)
CSV ファイルや他のデータベースなどから、Excel のデータを作った場合 (データベース形式) 、
分類や区分などが連続して表示され、ごちゃごちゃと見にくいときがあります。
以下のマクロは、上の行と同じデータが入力されていた場合、下の行のデータを見えなくします。
削除するのではなく、背景色と同色にしますので、数式バーには元のデータが表示されます。
以下のコードを標準モジュールに貼り付けて、
該当するワークシートで、このマクロを実行してください。
対象は 「A列」 です。
Sub SetFontColor()
'同じ値が連続している時二番目以降のデータを見えなくする。
'(Fontの色を背景色と同一にする) A列のデータが無くなるまでループ
'2003/10/05 pPoy
Dim i As Integer
Dim myColor As Integer
Dim myC As String
myC = "A" 'A列指定
With ActiveSheet
i = 2 ' 2行目から開始
Do While .Cells(i, myC).Value <> ""
If .Cells(i - 1, myC).Value = .Cells(i, myC).Value Then
myColor = .Cells(i, myC).Interior.ColorIndex
If myColor = xlColorIndexNone Then
'背景色無
.Cells(i, myC).Font.ColorIndex = 2 '白
Else
'背景色
.Cells(i, myC).Font.ColorIndex = myColor
End If
End If
i = i + 1
Loop
End With
End Sub
≪注意≫
この作業は 「A列」 が対象です。 必要に応じて列名を変更してください。
間に空白のセルがあると、そこで終了します。
実行後ワークシートは、無条件で上書きされます。
この作業は元に戻せません。 必ず最初に保存してから実行してください。
データを消去する方法は、こちら です。
################################
お礼
ありがとうございました。