Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9297 / 13646 ツリー ←次へ | 前へ→

【28177】色つきのセルを含む行の削除 ハル 05/8/30(火) 14:39 質問[未読]
【28183】Re:色つきのセルを含む行の削除 だるま 05/8/30(火) 15:54 回答[未読]
【28187】Re:色つきのセルを含む行の削除 ハル 05/8/30(火) 16:43 質問[未読]
【28188】Re:色つきのセルを含む行の削除 だるま 05/8/30(火) 17:05 回答[未読]
【28190】Re:色つきのセルを含む行の削除 ハル 05/8/30(火) 17:28 お礼[未読]

【28177】色つきのセルを含む行の削除
質問  ハル  - 05/8/30(火) 14:39 -

引用なし
パスワード
   こんにちは、いつも参考にさせていただいています。

シートにあるデータのうち、E列のデータの一部に色のついたセルがあります。
色つきセルに入力されているデータに規則性はなく、同じ名前の入ったデータも、
色がついている場合といない場合があります。
この色つきセルを含む行のみを、一括で削除したいのですがどのようなコードを
記述すればよいのでしょうか?

   A   B   C   D   E
1  フリガナ  担当  コード  記号  名前
2  ヤマダ  東京  0001   A   山田
3  マツモト  大阪  1112   B   松本
4  モリモト  大阪  1456   C   森本  ← 色つき
5  ヤマダ  東京  0001   D   山田  ← 色つき
6  モリモト  大阪  1456   D   森本  
 
 4、5行目を削除して、残りのデータを上につめる

質問ばかりで申し訳ないのですが、どなたかお解りになるかたがいましたら
教えていただけないでしょうか?
よろしくお願いします。

【28183】Re:色つきのセルを含む行の削除
回答  だるま WEB  - 05/8/30(火) 15:54 -

引用なし
パスワード
   こんな感じでいかがでしょうか。^d^

Sub test()
  Dim i As Long
  Dim LastRow As Long
  
  With ActiveCell.Worksheet.UsedRange
    LastRow = .Row + .Rows.Count - 1
  End With
  
  Application.ScreenUpdating = False
  
  For i = LastRow To 1 Step -1
    With Range("E" & i)
      If .Interior.ColorIndex <> xlNone Then
        .EntireRow.Delete
      End If
    End With
  Next
  
  Application.ScreenUpdating = True
End Sub

【28187】Re:色つきのセルを含む行の削除
質問  ハル  - 05/8/30(火) 16:43 -

引用なし
パスワード
   ▼だるま さん:

早速の回答ありがとうございました。
試してみたところ、うまく処理出来るようになりました。

重ねてで申し訳ないのですが、もし特定の色のセルだけを
指定したい場合は、どうすればいいのでしょうか?

>      If .Interior.ColorIndex <> xlNone Then
>        .EntireRow.Delete

恐らくここを書き換えればいいのではないかと思ったのですが・・・。

もしよろしければ教えていただけないでしょうか?
自分でもちょっと試してみます。

ありがとうございます。

【28188】Re:色つきのセルを含む行の削除
回答  だるま WEB  - 05/8/30(火) 17:05 -

引用なし
パスワード
   >特定の色のセルだけを指定したい場合は
実際に対象にしたい色を塗る操作をマクロ記録すれば、.ColorIndex をいくつに指定
すれば良いかわかると思います。^d^

【28190】Re:色つきのセルを含む行の削除
お礼  ハル  - 05/8/30(火) 17:28 -

引用なし
パスワード
   ▼だるま さん:

ありがとうございます。下記の記述でうまくいきました。

   If .Interior.ColorIndex = 38 Then
     .EntireRow.Delete

助かりました。本当にありがとうございました。

9297 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free