Home » ExcelVBA Rangeオブジェクト » 条件付き書式 » 条件付き書式の数式を取得するExcelマクロ

条件付き書式の数式を取得するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「vba 条件付き書式 数式 取得」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。

Excel VBA(Visual Basic for Applications)で、
[数式を使用して、書式設定するセルを決定]
で設定された条件付き書式の、

条件付き書式の数式を取得するExcelマクロ

条件に指定されている数式を取得するためには、どのようなコードを書けばいいのかを探していた方による検索でしょうか。

[スポンサードリンク]

条件付き書式の数式を取得するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブシート上の[数式を使用して、書式設定するセルを決定]で設定された条件付き書式の、セル番地と数式がイミディエイトウィンドウに出力されます。

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オブジェクトを取得して、

条件付き書式の数式を取得するExcelマクロ

RangeオブジェクトのAddressプロパティを利用しています。

検索キーワード、
「vba 条件付き書式 数式 取得」
の本目的である数式を取得するために、FormatConditionオブジェクトのFormula1プロパティを、

条件付き書式の数式を取得するExcelマクロ

利用しています。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 条件付き書式 » 条件付き書式の数式を取得するExcelマクロ

Copyright © インストラクターのネタ帳 All Rights Reserved.

.