色付きセルの行ごと削除

e0080122_14222048.gif

任意の色で塗りつぶされたセルがあって、塗りつぶされたセルが存在する行を削除するマクロ。

Sub 行削除()
Dim r As Integer
Dim c As Integer

For c = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
  For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    If Cells(r, c).Interior.ColorIndex <> xlNone Then
       Rows(r).Delete
    End If
  Next
Next
End Sub

二重ループにしてみたが、なんだか大げさすぎる気もする。

ちなみに、以下の方法では、色付きセルがそのまま取り残された場合が多発。
Dim myrange As Range
For Each myrange In ActiveSheet.UsedRange
  If myrange.Interior.ColorIndex <> xlNone Then
    myrange.EntireRow.Delete
  End If
Next
失敗したことを繰り返さないためにも、あえて晒してみる。
[PR]
by slayer0210 | 2005-11-10 14:31 | マクロ


<< Text関数で時刻表示 重複データ削除 >>