Excel2010 数式判定の条件付き書式をExcelVBAで取得する方法を教えてください。

Anonymous
2012-06-28T09:50:08+00:00

Excel2003にて作成された数式判定の条件付き書式を含むブックを読み込んで

背景色が変更されているか否かを順に判定するExcelVBAを作成していますが,

Excel2010環境で実行すると正しい結果となりません。

Excel2003環境ではFormatConditionオブジェクトのFormula1プロパティにて数式を判定し,

Evaluateメソッドにて数式を評価することが出来るのですが,

Excel2010環境ではFormatConditionオブジェクトのFormula1プロパティにて取得できる数式

がExcel2003環境と異なり「条件付き書式ルール」の数式が返却されてしまい,正しく評価する

事が出来ません。

読み込むブックに設定されている条件付き書式の数式は相対参照の数式となっており,

Excel2010では「条件付き書式ルール」にて纏められています。

「条件付き書式ルール」にて纏められていることにより,ルール適用範囲内ではどこで数式を

取得しようとしても同じ可変前の数式が返却されることにより正しく評価できないことが分かりました。

試しに,数式を取得する直前にModifyAppliesToRangeメソッドを使用し,ルール適用範囲を

ターゲットとなるセルのみにしてFormula1プロパティより数式を取得すると,そのセル用に可変した

数式が取得できたのですが,条件付き書式ルールが複数設定されているセルの場合,FormatConditionsコレクション

の中身が入れ替わるまたは書き換わるといった事象が発生しました。

読み込むブックは外部より都度送付されるブックなので条件付き書式を絶対参照に変更する等の手作業は

避けたいです。

また,検証用にExcel2003環境を使用しましたが,実行環境はExcel2010環境のみとなります。

長文となり申し訳ありません。

正しく処理出来る様にしたいのですが,条件付き書式のVBAでの扱いに明るい方,

ご教示下さいます様よろしくお願い致します。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

6 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-06-29T14:46:31+00:00

    VBAでの対応方法は無いのですね…

    残念です。

    検証して頂きまして本当にありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません