• ベストアンサー

VBAで色の付いているセルの行削除

VBAで色の付いているセルの行を削除することは出来ないでしょうか? 量が多すぎて一つ一つ削除すのは大変で間違えて削除してしまいそうなので・・・ - 文字または数字 ■ 色の付いたセル(赤)  A B C D E F・・・ 1- - - - - - 2- - - - - - 3- - - ■ - - 4- - ■ - - - 5- - ■ - - - 6- - - - - - 7- - - ■ - - 8- - ■ - - - 9- - ■ - - - 10- - - - - -       ↓  A B C D E F・・・ 1- - - - - - 2- - - - - - 6- - - - - - 10- - - - - - よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

No1です。 いちいち行や列数をいれなくともいいように変えました。 Sub test2() x = ActiveCell.SpecialCells(xlLastCell).Row y = ActiveCell.SpecialCells(xlLastCell).Column For i = x To 1 Step -1 For n = 1 To y If Cells(i, n).Interior.ColorIndex <> xlNone Then Rows(i).Delete Next n Next i End Sub

tsu-u-san
質問者

お礼

追加アドバイス有難うございました!

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

Public Sub 色の付いたセルのある行を消す() Dim linePos, i ActiveCell.SpecialCells(xlLastCell).Select linePos = ActiveCell.Row For i = linePos To 1 Step -1 If colored(Range(Rows(i).Address)) Then Rows(i).Delete Shift:=xlUp End If Next End Sub '指定した範囲に色の付いたセルがあるか? Function colored(r As Range) As Boolean Dim x As Range For Each x In r If x.Interior.Color <> RGB(255, 255, 255) Then '白(色がついてない、標準の状態)でない colored = True Exit Function End If colored = False Next End Function

tsu-u-san
質問者

お礼

出来ました! 有難うございました!

  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.2

これでどうでしょうか。 シートモジュールを使用します(Sheet1等をダブルクリックして書きます)。 △と▲は、使っている色のインデックスを取得するために、見本として、色のついているどれかのセルの行番号と列番号を入れてください。 ☆と★は、処理の対象とする範囲の、行の数と列の数を入れてください。 Sub 行削除()   Dim 行, 行数 As Long   Dim 列, 列数 As Integer   Dim 色 As Integer   色 = Cells(△, ▲).Interior.ColorIndex   行数 = ☆   列数 = ★   行 = 1   Do While 行 <= 行数     列 = 1     Do While 列 <= 列数       If Cells(行, 列).Interior.ColorIndex = 色 Then         Rows(行).Delete         列 = 1         行数 = 行数 - 1       Else         列 = 列 + 1       End If     Loop     行 = 行 + 1   Loop End Sub

tsu-u-san
質問者

お礼

有難うございます! VBAはまだ初歩的な事しか分からないので助かりました。

回答No.1

シートの使用範囲を22行(i)9列(n)としてやってみました。 実際のシートにあわせ数字は変えてください。 Sub test() For i = 22 To 1 Step -1 For n = 1 To 9 If Cells(i, n).Interior.ColorIndex <> xlNone Then Rows(i).Delete Next n Next i End Sub

tsu-u-san
質問者

お礼

有難うございます! 何とかできそうです!

関連するQ&A