Excel VBA質問箱 IV

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

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


2351 / 13644 ツリー ←次へ | 前へ→

【68489】特定の色のセルを探して塗りつぶしなしに変更する方法 ゆかわ 11/3/10(木) 9:13 質問[未読]
【68491】Re:特定の色のセルを探して塗りつぶしなし... はーばー 11/3/10(木) 9:59 回答[未読]
【68492】Re:特定の色のセルを探して塗りつぶしなし... UO3 11/3/10(木) 11:32 発言[未読]
【68493】Re:特定の色のセルを探して塗りつぶしなし... n 11/3/10(木) 13:50 発言[未読]
【68494】Re:特定の色のセルを探して塗りつぶしなし... UO3 11/3/10(木) 16:07 発言[未読]
【68495】Re:特定の色のセルを探して塗りつぶしなし... UO3 11/3/10(木) 18:13 回答[未読]
【68559】Re:特定の色のセルを探して塗りつぶしなし... ゆかわ 11/3/24(木) 18:15 お礼[未読]

【68489】特定の色のセルを探して塗りつぶしなしに...
質問  ゆかわ  - 11/3/10(木) 9:13 -

引用なし
パスワード
   特定の色のセルを探して塗りつぶしなしに変更するマクロを教えていただけないでしょうか。
以下のマクロで
作業者がシートのセルが変更すればピンク色になるようにしているのですが、
精査者が内容確認後、一気にピンク色のセルを塗りつぶしなしにできるマクロがほしいです。
すみませんがよろしくお願いします。

Private Sub Worksheet_Change(ByVal Target As Range)
  Target.Interior.ColorIndex = 38
End Sub

【68491】Re:特定の色のセルを探して塗りつぶしな...
回答  はーばー  - 11/3/10(木) 9:59 -

引用なし
パスワード
   こんにちは。
これでどうでしょう?

Sub test()
  Dim t As Range
  For Each t In ActiveSheet.UsedRange
    If t.Interior.ColorIndex = 38 Then t.Interior.ColorIndex = xlNone
  Next t
End Sub

【68492】Re:特定の色のセルを探して塗りつぶしな...
発言  UO3  - 11/3/10(木) 11:32 -

引用なし
パスワード
   ▼ゆかわ さん:

こんにちは

既にはーばーさんから適切な回答がありますので蛇足です。

少なくとも2003までは、書式検索におけるFindNextにバグがあり
検索系の定番、Find/FindNextの構文が使えませんので、むりやり
Findのみでまわすコードです。(お勧めはしません。ご参考程度に)

Sub Test2()
  Dim c As Range
  
  With ActiveSheet.UsedRange
    Set c = .Cells(1)
    Do
      Application.FindFormat.Interior.ColorIndex = 38
      Set c = .Find(What:="", after:=c, LookIn:=xlFormulas, LookAt:=xlPart, _
        SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, _
        MatchByte:=False, SearchFormat:=True)
      If c Is Nothing Then Exit Do
      c.Interior.ColorIndex = xlNone
    Loop
  End With
  
  Set c = Nothing
  
End Sub

【68493】Re:特定の色のセルを探して塗りつぶしな...
発言  n  - 11/3/10(木) 13:50 -

引用なし
パスワード
   >Application.FindFormat..
2002以降限定でよければApplication.ReplaceFormatプロパティを使ったReplaceで良いと思います。

【68494】Re:特定の色のセルを探して塗りつぶしな...
発言  UO3  - 11/3/10(木) 16:07 -

引用なし
パスワード
   ▼n さん:

ReplaceFormat + Replace

なぁるほど!!
また1つ、賢くなりました(気のせい?)

ありがとうございます!!

▼ゆかわさん

ということです。
これで処理すればループなしで一発でOKですね!

【68495】Re:特定の色のセルを探して塗りつぶしな...
回答  UO3  - 11/3/10(木) 18:13 -

引用なし
パスワード
   ▼ゆかわ さん:

上で、nさんにアドバイスいただいたコード、念のためにアップしておきます。
こんなにシンプルになります。

Sub Test3()
  Application.FindFormat.Interior.ColorIndex = 38
  Application.ReplaceFormat.Interior.ColorIndex = xlNone
  Cells.Replace What:="", Replacement:="", _
    SearchFormat:=True, ReplaceFormat:=True
End Sub

【68559】Re:特定の色のセルを探して塗りつぶしな...
お礼  ゆかわ  - 11/3/24(木) 18:15 -

引用なし
パスワード
   ▼UO3 さん:
お返事遅くなってすみません。
できました!!
ありがとうございました
>▼ゆかわ さん:
>
>上で、nさんにアドバイスいただいたコード、念のためにアップしておきます。
>こんなにシンプルになります。
>
>Sub Test3()
>  Application.FindFormat.Interior.ColorIndex = 38
>  Application.ReplaceFormat.Interior.ColorIndex = xlNone
>  Cells.Replace What:="", Replacement:="", _
>    SearchFormat:=True, ReplaceFormat:=True
>End Sub

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