プロが教える店舗&オフィスのセキュリティ対策術

Excelで条件付き書式を設定しています。
ある数式の結果に基づいて、該当のセルがグレーアウト(RGB(128,128,128))するようにしています。

このグレーアウトしているセルの値をVBAで全削除したいと考えておりますが
IF( Range.Interior.Color = RGB(128, 128, 128))的なVBAでは、元々グレーアウトされているセルしか値削除されず、条件付き書式の結果グレーアウトされたセルは、処理の対象外でした。

条件付き書式に設定している数式をベースに、IF構文でVBAに設定する方法もあるかと思いますが
条件付き書式の量がかなり多くて断念しています。。。

A 回答 (3件)

No.2です。



グレーのRGB値が違っていましたね。
(128,128,128)に変更してください。

どうも失礼しました。m(_ _)m
    • good
    • 0
この回答へのお礼

頂いた回答を元に無事VBAを作成する事が出来ました!
ありがとうございます!

お礼日時:2018/06/04 13:14

こんにちは!



お使いのバージョンがExcel2010以降であれば
DisplayFormatオブジェクトが使えます。

>VBAで全削除したいと・・・
「消去」で良いのですよね?
一例です。

Sub Sample1()
Dim c As Range
For Each c In ActiveSheet.UsedRange
If c.DisplayFormat.Interior.Color = RGB(125, 125, 125) Then
c.ClearContents
End If
Next c
End Sub

こんな感じではどうでしょうか?

※ 条件付き書式の設定に限らす塗りつぶしの色のRGB値が(125,125,125)のセルのデータがすべて消去されます。
条件付き書式のセル限定であれば
そのセルに条件付き書式が設定してあるかどうかの判断も必要になります。m(_ _)m
    • good
    • 0

こんにちは



ちゃんと確認してはいませんので、ご確認の上でご利用ください。

結果のセル色は
 Range.DisplayFormat.Interior.Color
で取得できるみたいです。
https://msdn.microsoft.com/ja-jp/vba/excel-vba/a …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!