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

=COUNTIF(祝日管理!$E$2:$L$25, $A6)
上記のような条件付き書式が設定してあります。

祭日で稼働日があると塗りつぶしなしをしたいと思い、VBAコードで

Sub 塗りつぶし削除マクロ()
Dim rng As Range
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeConstants, xlCellTypeFormulas)
On Error GoTo 0

If Not rng Is Nothing Then
' 選択したセルに条件付き書式が適用されている場合、塗りつぶしを削除する
rng.Interior.ColorIndex = xlNone
End If
End Sub
を入れましたが、実行しても塗りつぶしなしにならないのですが、何が原因でしょうか?
教えてください。お願いします。

質問者からの補足コメント

  • うーん・・・

    ありがとうございます。
    条件付き書式の変更とありますが、どのように変更したらいいでしょうか?
    申し訳ないですが教えて頂けるとありがたいです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/10/28 17:17
  • つらい・・・

    河内のおやじ様

    ありがとうございます。やはりならないですね・・・
    なぜなんでしょうか・・・;;

      補足日時:2023/10/28 17:40
  • つらい・・・

    何度もありがとうございます。
    ならないです。
    やはり条件付き書式が悪いのでしょうか?

    No.3の回答に寄せられた補足コメントです。 補足日時:2023/10/28 17:49

A 回答 (5件)

No1です。



>条件付き書式の変更とありますが、どのように変更したらいいでしょうか?
当方には稼働日というのがいつなのか不明なので、式にはできません。

もともとの「祝日管理!$E$2:$L$25」の表を、他では使っていないのなら、その中から稼働日を削除しておけば済む話にも思えますが?

あるいは、「稼働日の表」を別に作成しておいて、同様の条件付き書式を優先順位が高くなるように設定しておいても良いです。
(条件付き書式は複数設定することが可能です)


※ ついでながら、
シートの状態がどうなっているのもわかりませんけれど、
 >SpecialCells(xlCellTypeConstants, xlCellTypeFormulas)
では、何も取得できないように思われます。
(エラー処理を入れてしまっているので、増々わからなくなっているだけかと)
    • good
    • 0

すみません。

それ以上わかりません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

ファイルを使用される方に祝日管理のところで稼働しようとする場合はセルの削除なりしてもらうようにします。
それが簡単かな^^;

お礼日時:2023/10/28 18:11

Sub 塗りつぶし削除マクロ()


Dim rng As Range
Dim cell As Range
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeConstants)
On Error GoTo 0

If Not rng Is Nothing Then
For Each cell In rng
If cell.Value = "特定の値" Then '特定の値には条件付き書式が適用される値を指定します
cell.Interior.ColorIndex = xlNone
End If
Next cell
End If
End Sub
この回答への補足あり
    • good
    • 0

Sub 塗りつぶし削除マクロ()


Dim rng As Range
Dim cell As Range
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeConstants)
On Error GoTo 0

If Not rng Is Nothing Then
For Each cell In rng
If cell.DisplayFormat.Interior.Color <> 16777215 Then '16777215は白の色コードです
cell.Interior.ColorIndex = xlNone
End If
Next cell
End If
End Sub
でやって見てください。
    • good
    • 0

こんにちは



通常セルの色付け書式よりも条件付き書式の方が優先されます。
ですので、セルの色を変更しても条件付き書式で色が着いているセルにはそちらの色が付けられたままになります。

条件付き書式の条件を変更しておくか、あるいはVBAでやるなら、条件付き書式を削除すれば元の色になります。
この回答への補足あり
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A