「vba 条件付き書式 数式 取得」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。
Excel VBA(Visual Basic for Applications)で、
[数式を使用して、書式設定するセルを決定]
で設定された条件付き書式の、
条件に指定されている数式を取得するためには、どのようなコードを書けばいいのかを探していた方による検索でしょうか。
条件付き書式の数式を取得するサンプルマクロ
以下のSubプロシージャを実行すると、アクティブシート上の[数式を使用して、書式設定するセルを決定]で設定された条件付き書式の、セル番地と数式がイミディエイトウィンドウに出力されます。
Dim fc As FormatCondition For Each fc In Cells.FormatConditions
If fc.Type = xlExpression Then
Debug.Print _
fc.AppliesTo.Address(False, False) & vbTab & _
fc.Formula1
End If
Next fc
End Sub
サンプルマクロの解説
「vba 条件付き書式 数式 取得」
ということですが、どのセルに設定されているのかという情報も重要だと思いますので、セル番地も出力するようにしました。
アクティブシートの、すべての条件付き書式を表すFormatConditionsコレクションオブジェクトに対して、For Each~Nextループを回して、
For Each fc In Cells.FormatConditions
条件付き書式の種別が演算だったときに、
If fc.Type = xlExpression Then
セル番地と、数式をイミディエイトウィンドウに出力しています。
Debug.Print _
fc.AppliesTo.Address(False, False) & vbTab & _
fc.Formula1
セル番地を取得するために、FormatConditionオブジェクトのAppliesToプロパティを使ってRangeオブジェクトを取得して、
RangeオブジェクトのAddressプロパティを利用しています。
検索キーワード、
「vba 条件付き書式 数式 取得」
の本目的である数式を取得するために、FormatConditionオブジェクトのFormula1プロパティを、
利用しています。
Home » Excel VBA Rangeオブジェクト » 条件付き書式 » 条件付き書式の数式を取得するExcelマクロ