
以下は私のワークブック内の 4 つのセルの例です。
26 99
2 1
ワークブックは、100=赤、0=黄というルールに従って色分けされます。つまり、0 に近いほど黄色が強くなり、100 に近いほど赤が強くなります (これは、値に基づいて色を割り当てる条件付き書式設定ルールによって定義されます)。
この例では、99 は非常に赤く、1 と 2 は非常に黄色く、26 はオレンジがかった色になります。
セルの色はそのままにして、セルの値を変更したい。この例では、
E=0.0,Q=26 E=0.0,Q=99
E=2.10e-11,Q=2 E=1.02e-08,Q=1
(qの右側の値が最初の行列と同じであることに注目してください)
条件付き書式ルールのため、新しい値を貼り付けると色が消えてしまいます。
答え1
Q=
の後の数値に基づいて、常に 100 の書式設定条件を追加できます。ここでは、各セルの数値を 1 ~ 100 と直接比較するか、最初の比較でエラーが発生した場合は のE=0.0,Q=99
後の数値と比較することによって、選択したセルに対してこの処理を実行するマクロを示します。Q=
マクロを実行した後で削除すると、ファイルを XLSM として保存する必要がなくなります。Selection.FormatConditions.Delete
現在の書式条件も削除する場合は、アポストロフィを削除して行のコメントを解除します。
これは、数値が常に 1 から 100 までの整数 (セル値として、または の後Q=
) であることを前提としています。小数値では機能しません。
Sub FormatMe()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
'Selection.FormatConditions.Delete
Dim addr As String
addr = Replace(Selection.Cells(1).Address, "$", "")
For i = 1 To 100
With Selection.FormatConditions.Add(xlExpression, Formula1:= _
"=OR(" & addr & " = " & i & ", IFERROR(RIGHT(" & addr & _
", LEN(" & addr & ") - FIND(""Q"", " & addr & ", 2) - 1) = """ & i & """, FALSE))")
.Interior.Color = RGB(255, 255 - Int(i / 100 * 255), 0)
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
答え2
- 予測: 条件付き書式を使用したい(VBAは使用しない)
予測: 色付けしたいセルには、「E=0.0,Q=26」のような「複雑な」値が含まれています
答え: 1 つ選択してください - Excel の条件付き書式は、値「E=0.0,Q=26」を「読み取り」、数値 26 を見つけるほどスマートではありません。
- 独自の書式設定式を使用することはできますが、条件ごとに 1 つの色しか使用できないため、グラデーションを適用できません。つまり、「数字が 29 の場合は、この色に正確にする」ということになります。(私の知る限りでは、間違いがあれば訂正してください)
- Excel はセルから数字 26 を自動的に抽出し、その (隣接する) セルを書式設定できます (セル F4 を使用
=NUMBERVALUE(RIGHT(F4,LEN(F4)-FIND(",",F4)-2))
)
私のおすすめデータを別の方法で提示し、E と Q をヘッダーなどとして使用し、すべての数字を別々のセルに保持します。
答え3
貼り付け値を使用すると、数字のみが貼り付けられます。そうでない場合は、書式も貼り付けられます。