[[20181129153728]] 『マクロで特定の色のセルを含む行以外を削除したい』(じす) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロで特定の色のセルを含む行以外を削除したい』(じす)

特定の色のセルを含む行を残し、それ以外の行をすべて削除するマクロを
ご教示ください。

データ数が多いため、オートフィルタ等での手動の絞込と削除ではなく、
マクロを使用したいと考えています(Excel2010を使用)。
よろしくお願いいたします。


− 色なしセル(文字入力あり)
□ 水色のセル
■ ピンク色のセル(RGB247, 162, 202)

  A B C D E F・・・
1□ − − − − −
2□ − − − − −
3□ − − ■ − −
4□ − ■ − − −
5□ − ■ − − −
6□ − − − − −
7□ − − ■ − −
       ↓
 A B C D E F・・・
1□ − − − − −
2□ − − − − −
6□ − − − − −

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 <> RGB(247, 162, 202) Then Rows(i).Delete
 Next n
 Next i
 End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


質問文で言ってることと図が違っててよくわかりません、、
こういうことですか?

 Sub test2()
    Dim x As Long, y As Long, I As Long, n As Long
     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.Color = RGB(247, 162, 202) Then Rows(I).Delete
        Next n
     Next I
 End Sub

(TAKA) 2018/11/29(木) 16:25


ピンクの方を残す、で正解なら
こんな感じです

 Sub test3()
    Dim x As Long, y As Long, I As Long, n As Long, z As Long
     x = ActiveCell.SpecialCells(xlLastCell).Row
     y = ActiveCell.SpecialCells(xlLastCell).Column
     For I = x To 1 Step -1
        z = 0
        For n = 1 To y
            If Cells(I, n).Interior.Color = RGB(247, 162, 202) Then z = z + 1
        Next n
        If z = 0 Then Rows(I).Delete
     Next I
 End Sub

(TAKA) 2018/11/29(木) 16:29


本件、早々にご回答くださり、誠にありがとうございます。
また、質問文に誤りがあり、大変失礼いたしました。

「ピンクの方を残す」を希望しており、
TAKA様にご教示いただいたマクロを実行したところ、無事に解決できました。
大量のデータを前に本当に困っていたため、大変感謝しています。

お手数をお掛けして、申し訳ございませんでした。
この度は、ありがとうございました。

(じす) 2018/11/29(木) 16:37


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.