プロパティを見つけましたRange.DisplayFormat.Interior.Color
この中に 投稿 、Mrexcelで。このプロパティを使用して、条件付き書式のセルの色を取得し、他の行に使用することができました。キャッチは、Excel 2010以降でのみ機能します。私はExcel 2010を持っているので、それは私のために働いた。正確なコードは次のとおりです-
For i = rowStart To rowEnd
For j = columnStart To columnEnd
Cells(i, j).Interior.Color = Cells(i, 4).DisplayFormat.Interior.Color
Next
Next
私があなたを正しく理解していれば、私は同じ問題と戦っています。これは、1つの列の値に基づいて行全体をフォーマットすることです。この場合、値はExcelのカラースケールでフォーマットされています。
私はこれを本当に見つけました途方もなくカラースケーリングされたセルをWordにコピーしてからExcelにコピーし、その後値を削除して置き換えることができる簡単な回避策書式を変更せずに必要な値:
ユーザーRaystafarianへのすべてのクレジット
本当に、これを行うのにVBAは必要ありません。
ここで心に留めておくべきことの1つは、単一の条件付き書式ルールでは目的の動作を実現できないことです。売上ベースの行の色の定義ごとに個別のルールが必要になります。 2番目のこと:正規の数式の代わりにルールの名前付き範囲を使用すると、Excelで目的の条件付き書式の動作を実現するのがはるかに簡単であることがわかりました。
これらの問題を念頭に置いて、次の手順に従って名前付き範囲を作成し、条件付き書式ルールを作成します。
Formulas
-> _Name Manager
_を選択します。次に、_New..
_を選択します。 _Name:
_にSALES
を入力し、_Refers to:
_に_=$XN
_を入力します。ここで、Xは最初の販売セルの列、Nは行番号です。 Enter
を押します。Home
-> _Conditional Formatting
_-> _New Rule...
_を選択しますUse a Formula to Determine Which Cells to Format
_を選択し、_=SALES=number
_を入力します。ここで、numberは色をトリガーする販売番号ですFormat
およびFill
タブを選択します。次に、選択した販売番号の背景色を決定する必要があります。フォントの色など、他のフォーマットオプションを選択することもできます。=SALES<number
_(<は「より小さい」と入力します。<=、つまり「OR に等しい")。 2つの数値の間でルールを実行する場合は、=AND(SALES<=CEILING, SALES>=FLOOR)
を実行できます。天井と床は上限と下限です。 「すべての売上がXより大きい」ための色が必要な場合は、_=SALES>number
_を実行できます。編集:
条件式の入力を少し簡単にするために、「Trueの場合に停止」機能を使用できます。 Home
-> _Conditional Formatting
_-> _Manage Rules
_に移動し、ドロップダウンメニューで_This Worksheet
_を選択します。これで、シートに適用されるすべてのルールのリストが表示され、各ルールの右側に「Trueの場合停止」チェックボックスが表示されます。
行の色ルールごとに、[Trueの場合停止]チェックボックスをオンにします。これで、数式は次のようになります(たとえば)。
=Sales>25
_は緑のルール=Sales>10
_は黄色のルール用=Sales>0
_赤のルールなど、代わりにこのような:
=AND(Sales>0,Sales<=10)
赤のルール=AND(Sales>10,Sales<=25)
=Sales>25
_は緑のルール_Stop If True
_ボックスは、書式ルールがセルに適用されると、そのセルは適用される他のルールに基づいて再度書式設定されないことを意味します。これは、_Stop If True
_を使用する場合、ルールの順序が重要であることに注意してください。
これは、VBAを必要としない標準の条件付き書式設定メニューで実行できます。独自の数式を指定するオプションを選択すると、強調表示するセル以外のセルを参照できます(列を '$'でロック)。