[[20211112125447]] 『条件付き書式で条件を変数にしたい』(8man) ページの最後に飛ぶ

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

 

『条件付き書式で条件を変数にしたい』(8man)

初めて質問させていただきます。
やりたいことはF$6,F$5の値が行追加によって変わるため条件付き書式設定の条件を変数にしたいのですがうまくいきません。

元ソース
Range(A1:B10).select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=or(F$6=""土"",F$6=""日"",COUNTIF(休日!$A$3:$B$52,F$5)>0)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

    With Selection.FormatConditions(1).Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 16777164
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
Selection.FormatConditions(1).StopIfTrue = False

やってみたこと

Str1 = """=or(" & Cel03 & "=""""土""""," & Cel03 & _

       "=""""日"""",COUNTIF(休日!$A$3:$B$52," & Cel02 & ")>0)"""

Cel02,Cel03の内容はシートのセルの値を設定

Selection.FormatConditions.Add Type:=xlExpression, Formula1:=Str1

上記内容に変更しても条件式が設定されない。
対処方法を教えてください。

cel03 = F$6、cel02 = F$5としてstr1の内容を確認すると条件式に設定する内容となっています。

 "=or(F$6=""土"",F$6=""日"",COUNTIF(休日!$A$3:$B$52,F$5)>0)"

よろしくお願いします。

< 使用 Excel:Office365、使用 OS:Windows8 >


 >やりたいことはF$6,F$5の値が行追加によって変わるため条件付き書式設定の条件を変数にしたいので

 1例でいいので「どこに行追加をするとどんな条件式に出来上がればいいのか」について補足説明願います。

(半平太) 2021/11/12(金) 13:19


 Sub Sample()
    Dim rng As Range
    Dim cel02 As String
    Dim cel03 As String
    Set rng = Range("A1:B10")
    cel02 = Split(rng(1).Address, "$")(1) & "$5"
    cel03 = Split(rng(1).Address, "$")(1) & "$6"
    Dim str1 As String
    str1 = "=or(" & cel03 & "=""土""," & cel03 & _
           "=""日"",COUNTIF(休日!$A$3:$B$52," & cel02 & ")>0)"
    With rng.FormatConditions.Add(Type:=xlExpression, Formula1:=str1)
        With .Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 16777164
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        .StopIfTrue = False
        .SetFirstPriority
    End With
 End Sub

(トロンボーン) 2021/11/12(金) 13:32


勝手な想像。

 "=OR(WEEKDAY(" & cel02 & ",2)>5,COUNTIF(休日!$A$3:$B$52," & cel02 & "))"
(トロンボーン) 2021/11/12(金) 13:41

半平太さん、説明不足でした。
例えば3行目に2行追加した場合、F$5,F$6→F$7,F$8に代わればいいのですが
(8man) 2021/11/12(金) 13:55

 3行目に2行追加してみましたところ、

 適用先が、=$A$1:$B$10
            ↓
           =$A$1:$B$12 と2行広がり、 

 条件式が =OR(F$6="土",F$6="日",COUNTIF(休日!$A$3:$B$52,F$5)>0)
         ↓                    ↓
      =OR(F$8="土",F$8="日",COUNTIF(休日!$A$3:$B$52,F$7)>0) 

 と自動的に変わりました。何のアクションも要らない様に思えますが?

(半平太) 2021/11/12(金) 14:07


半平太さん、私の環境では変わらないのですがExcelかVBエディタの設定がありましたら教えていただきたいのですが
(8man) 2021/11/12(金) 16:08

 何か行き違っているかも知れません。

 私は、1回は $A$1:$B$10に条件付き書式を設定した後の話なんですけど。。

 申し訳ありませんが、これ以上お役に立てる情報は持ち合わせておりません。

(半平太) 2021/11/12(金) 16:38


自己解決しました。
変数に設定する内容は、元の式の文字列ではなく条件付き書式のGUIで入力する内容にすればいけました。
ダブルコーテーションの数を間違えていたようです。初歩的なミスでした。

皆さん、ありがとうございました。
(8man) 2021/11/12(金) 17:21


コメント返信:

[ 一覧(最新更新順) ]


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