webdevqa.jp.net

これらのセルの値を変更するときのExcelのセルの色の修正

これが私のワークブックの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の右側の値が最初の行列と同じであることに注意してください)

条件付き書式ルールにより、新しい値を貼り付けると色が消えます。

2
Jacob

Q=E=0.0,Q=99の後の値に基づいて、いつでも100のフォーマット条件を追加できます。これは、選択したセルに対して、各ベアセルの値を1〜100と直接比較するか、最初の比較でエラーが発生した場合にQ=の後の値と比較することにより、これを実行するマクロです。

実行後にマクロを削除して、ファイルをXLSMとして保存する必要がないようにすることができます。現在のフォーマット条件も削除する場合は、アポストロフィを削除してSelection.FormatConditions.Delete行のコメントを解除します。

これは、数値が常に1から100までの整数であることを前提としています(ベアセル値として、またはQ=の後)。 10進値では機能しません。

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
1
Jason Clement
  • 仮定:条件付き書式を使用する(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をヘッダーなどとして使用し、すべての数値を別々のセルに保持します。

0
Guido Hoogslag