• ベストアンサー

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

  • microsoft excel セルの色

    以下のことをしたいのですがどうすればよいでしょうか。 あるセル(例:F12)の数値が30(%)以下だと、そのセルの含む行の一部(例:A12,B12,C12,D12,E12,F12)が赤色になる。 あるセル(例:F12)の数値が70(%)以上だと、そのセルの含む行の一部(例:A12,B12,C12,D12,E12,F12)が青色になる。 教えてください。お願いします。

  • 英字を含まない文字行を削除

    英字を含まない文字行を削除 1491 1492 1493 1494 1495 1496 1497 1498 1499 149A 149B 149C 149D 149E 149F このような16進数が書かれたテキストファイルがあります。 149A 149B 149C 149D 149E 149F このように英字が含まれていない数字のみの行を削除する方法を教えてください。

  • VBA 行のセルに色をつける

    例えば、A1が選択されたらA1~A30までをセルの色は赤、フォントは白に 例えば、B1が選択されたらA1~B30までをセルの色は赤、フォントは白に といった感じで、選択された列の1行目を選択した場合にセルや文字の色を変更することは可能でしょうか?

  • エクセル VBAにて行削除をしたい…

    エクセル2003にて VBA初心者です。 A列1~100に101~200までに番号が振ってあります。 Z列に記入がない場合はその行を削除するVBAを教えてください。 例  A  B  C  D  E  F …… Z 1  101               文字有り 2  102               ブランク 3  103               ブランク 4  104               文字有り 5  105               文字有り … 99  199              文字有り 100  200              ブランク この様な場合2,3,100の行ごと削除をするという形式のものです。 また、この場合A列の番号も自動で変われば(104が102になる等)最高です。 詳しい方教えてください。よろしくお願いします。

  • 空白セルと行に色をつけるVBA Excel2010

    VBAの超初心者です。 条件が一致した時に、セルの背景を黄色にしたいのですが、VBAで教えて下さいませんか? D1が空白セルの場合には、C1のみを黄色。 D1とB1の両方が空白の場合は、A1からC1を黄色にしたいのです。 尚、行はどんどん増えて行く予定です。 「条件付き書式」では考えておりません。 よろしくお願いします。

  • エクセルで空白セルを寄せたい

    エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・   A|B|C|D|E|F|G 1 あ い う え お か き 2 ○   ○ ○   ○ の表を   A|B|C|D|E|F|G 1 あ う え か  2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。

  • VBA 条件の一致する行の特定のセルの削除について

    VBA初心者です。よろしくお願いします。 <sheet1>     A  B   C  D  E 1   1 1211 佐藤 10 100 2   2 1344  山田 25 150 3   3 1522 田中  5 80 4   4 1655  高橋 35 200 ・ ・ 100 100 3682 小林 40 300 <sheet2>    A   B 1 1344 2 この様な表があったとします。(見辛くてすみません) "sheet2"A1セルに入力した内容と同じ内容を"sheet1"のB列から検索し、その行のB~Eのセルを削除するにはどのようにしたら良いでしょうか? 例えば"sheet2で"「1344」と入力した場合、"sheet1"の「1344」のある2行目のB~Eのセルを削除するといった感じです。 削除後の空白は詰める必要はなく、マクロを記録させるボタンは"sheet2"に貼り付けます。 色々調べましたがどうにも分からない為質問させていただきます。 よろしくお願い致します。

  • VBA 行の削除

    全くの初心者で、初めて質問させていただきます。 A列には、数字・空白・文字を入力したセルが混在しています。 そのA列の数字の内 0 のセルが入力されている行のみを削除するVBAの記述の仕方を教えて下さい。 宜しく御願い致します。

  • エクセルの条件付き書式を使ってセルに色を付けたい

    A2~D2以下のセルにある数字がランダムで並んでいるとします(各セルには一桁の数字のみ)。E1~H1にもある数字が並んだ時、同じ数字があれば、A2行のセル数字に色を付けたいんです。条件付き書式の数式を・・・でやると思うのですが、イマイチよく解りません。他の質問でも調べて自分なりに関数を使っているのですが、うまくいきません・・・?すいませんがどなたか教えて下さい、よろしくお願いします。 こんな感じで・・・    A B C D  E F G H 1             1 7 3 8 2   0 9 4 7(←色塗) 3 ・ ・

  • VBA  セルの色づけ

    Excel知識が乏しく、質問させていただきます。 まったくの初心者です… セルのA5~A30までの セルごとにそれぞれ色をつけます。 色は、無色または赤です。 セルA5に赤色をつけたときには、同一シート内のセルC10からC13とD10からD12までセルA5と同じ色になるように。 A5が、無色のときには上記同一セルも無色にするようなイメージです。 同様にA6が赤色の時に、E3~E7、F3~F6に赤色がつく。 そんな設定ができるようにするマクロが必要です。 日々変わる色設定を手作業で行うのが困難になってきました…。 方法についで教えていただきたいです。

専門家に質問してみよう