5

Excelには、[書式]メニューの下に[条件付き書式...]オプションがあり、セルの値に応じてセルのスタイル/色/フォント/その他を変更できます。ただし、許可される条件は3つだけです。

セルの値に応じて、たとえば6つの異なる背景セルの色をExcelに表示させるにはどうすればよいですか?(つまり、値が「赤」の場合はセルを赤にし、「青」の場合は青にします。)

4

4 に答える 4

7

VBAで何かを書く必要があります。

こちらの例を参照してください:条件付き書式設定におけるExcelの3つの基準の制限を回避する

Private Sub Worksheet_Change(ByVal Target As Range)

Dim icolor As Integer

    If Not Intersect(Target, Range("A1:A10")) is Nothing Then

        Select Case Target

            Case 1 To 5
                icolor = 6
            Case 6 To 10
                icolor = 12
            Case 11 To 15
                icolor = 7
            Case 16 To 20
                icolor = 53
            Case 21 To 25
                icolor = 15
            Case 26 To 30
                icolor = 42
            Case Else
                'Whatever
        End Select

        Target.Interior.ColorIndex = icolor
    End If
End Sub
于 2008-11-06T16:14:19.350 に答える
3

Excel 2007 では、3 つ以上の条件を使用できます。このマイクロソフトのページから引用:

編集: ああ、リンク コードに「機能」があります。括弧で引用されたリンクの括弧が正しく処理されていません。そのリンクは次のとおりです。http://msdn.microsoft.com/en-us/library/bb286672(office.11 ​​).aspx

Excel 2007 での条件付き書式の変更によるその他の利点は、3 つ以上の条件を指定したり、条件を並べ替えたり、複数の条件を True に解決したりできることです。

さもないと。説明されているように、面倒な代替案に悩まされていると思います。

于 2008-11-06T16:50:54.597 に答える
2

これを VBA プロジェクトのモジュールに入れます。次に、シート内の範囲を強調表示し、[ツール] > [マクロ] > [マクロ] メニュー項目からサブを実行して、選択した範囲内の各セルに色を付けることができます。

Public Sub ColorCells()

Dim cell, rng As Range
Dim color As Integer
Dim sheet As Worksheet

Application.ScreenUpdating = False
Application.StatusBar = "Coloring Cells"

    Set rng = Application.Selection
    Set sheet = Application.ActiveSheet

For Each cell In rng.cells

        Select Case Trim(LCase(cell))

            Case "blue"

                color = 5

            Case "red"

                color = 3

            Case "yellow"

                color = 6

            Case "green"

                color = 4

            Case "purple"

                color = 7

            Case "orange"

                color = 46

            Case Else

                color = 0
        End Select

    sheet.Range(cell.Address).Interior.ColorIndex = color

Next cell

Application.ScreenUpdating = True
Application.StatusBar = "Ready"

End Sub

ユーザーが新しい色の名前をセルに入力している場合、これを VBA プロジェクトのシート コードに配置して、ユーザーが色の名前をセルに入力するときにセルに色を付けることができます。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.cells.Count > 1 Then Exit Sub

Dim color As Integer

        Select Case Trim(LCase(Target))

            Case "blue"

                color = 5

            Case "red"

                color = 3

            Case "yellow"

                color = 6

            Case "green"

                color = 4

            Case "purple"

                color = 7

            Case "orange"

                color = 46

            Case Else

                color = 0

        End Select

Target.Interior.ColorIndex = color

End Sub

編集:テストする case ステートメント式の周りに Trim 関数を追加して、セル内の偶発的な先頭/末尾のスペースが無視されるようにします:)

于 2008-11-07T22:03:45.823 に答える
0

これを行うには、VBAマクロを使用できます...

これは、多くの場合が必要な場合に適した1つのvbaマクロです http://chandoo.org/wp/2008/10/14/more-than-3-conditional-formats-in-excel/

範囲全体をフォーマットする方法で「n」セルを事前フォーマットする必要があります。次に、そのURLのマクロを使用して効果を取得します。

于 2008-11-07T00:33:56.597 に答える