Microsoft 製品に組み込まれている Visual Basic の実装。
VBAでの対応方法は無いのですね…
残念です。
検証して頂きまして本当にありがとうございました。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Excel2003にて作成された数式判定の条件付き書式を含むブックを読み込んで
背景色が変更されているか否かを順に判定するExcelVBAを作成していますが,
Excel2010環境で実行すると正しい結果となりません。
Excel2003環境ではFormatConditionオブジェクトのFormula1プロパティにて数式を判定し,
Evaluateメソッドにて数式を評価することが出来るのですが,
Excel2010環境ではFormatConditionオブジェクトのFormula1プロパティにて取得できる数式
がExcel2003環境と異なり「条件付き書式ルール」の数式が返却されてしまい,正しく評価する
事が出来ません。
読み込むブックに設定されている条件付き書式の数式は相対参照の数式となっており,
Excel2010では「条件付き書式ルール」にて纏められています。
「条件付き書式ルール」にて纏められていることにより,ルール適用範囲内ではどこで数式を
取得しようとしても同じ可変前の数式が返却されることにより正しく評価できないことが分かりました。
試しに,数式を取得する直前にModifyAppliesToRangeメソッドを使用し,ルール適用範囲を
ターゲットとなるセルのみにしてFormula1プロパティより数式を取得すると,そのセル用に可変した
数式が取得できたのですが,条件付き書式ルールが複数設定されているセルの場合,FormatConditionsコレクション
の中身が入れ替わるまたは書き換わるといった事象が発生しました。
読み込むブックは外部より都度送付されるブックなので条件付き書式を絶対参照に変更する等の手作業は
避けたいです。
また,検証用にExcel2003環境を使用しましたが,実行環境はExcel2010環境のみとなります。
長文となり申し訳ありません。
正しく処理出来る様にしたいのですが,条件付き書式のVBAでの扱いに明るい方,
ご教示下さいます様よろしくお願い致します。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。