• ベストアンサー

エクセルでセルに色を付ける(多条件)

質問を検索していてある程度はわかったのですが、 セルに条件によって色を付けるやり方は条件付書式でできるみたいですが、条件が3つまでしか指定できません。 4つ以上ある場合はどうすればよいでしょうか。 例えば、A1セルにはAからEまでの文字が入力されます。 入力された文字によってB1セルをAなら赤、Bなら青といった具合に違う色を表示させたいのです。 エクセル2000です。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.6

>実際の手順を教えてもらえませんか (1)問題にしているワークシートを開く (2)メニユーのツール-マクロ-VBEをクリック。 VBEの画面になります。 (3)左側のフレーム(四角い部分)に「プロジェクト」と表題に部分にある問題のシート名をWクリック。 (4)右側のフレーム(コードウインドウ)の「General」の右の▼をクリックして「Worksheet」をクリック。 (5)Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub がでますが無視。 (6)electionChangeが出ている欄の▼をクリックして 「Change」をクリック。 (7)Private Sub Worksheet_Change(ByVal Target As Range) End Sub となります。 (8)この真中に、回答のVBAプログラムをコピペします。最初行と最後行はダブらないよう、コピペ対象から外すこと。 (9)表示-オブジェクトをクリックして、ワークシート画面に戻り、操作をする。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.5

#4です。 Changeの引数、Targetで変更されたセル範囲が全て渡されます。 Private Sub Worksheet_Change(ByVal Target As Excel.Range) それをループで処理しています。 Dim r As Range For Each r In Target

すると、全ての回答が全文表示されます。
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.4

シートタブを右クリックし、コードの表示で出てきたVBE画面の空いている所にコピペします。 Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim r As Range For Each r In Target  If r.Column = 1 Then   Select Case UCase(r.Value)   Case "A"    r.Offset(0, 1).Interior.ColorIndex = 3   Case "B"    r.Offset(0, 1).Interior.ColorIndex = 5   Case "C"    r.Offset(0, 1).Interior.ColorIndex = 6   Case "D"    r.Offset(0, 1).Interior.ColorIndex = 7   Case "E"    r.Offset(0, 1).Interior.ColorIndex = 8   Case Else    r.Offset(0, 1).Interior.ColorIndex = xlColorIndexNone   End Select  End If Next r End Sub 大文字と小文字を区別するなら UCase(r.Value) を r.Value にします。

smilepick
質問者

お礼

お礼が遅くてすいません。 教えて頂いた方法でできたのですが、上記マクロでセルの場所はどこで指定しているのですか? マクロはど素人なので、教えてもらえませんか?

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

シートのChangeイベントプロセジュアーに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 1 And Target.Column = 1 Then Select Case Target.Value Case "a" Cells(1, "B").Font.Color = vbRed Case "b" Cells(1, "B").Font.Color = vbCyan Case "c" Cells(1, "B").Font.Color = vbYellow Case "d" Cells(1, "B").Font.Color = vbBlue End Select End If End Sub A1の値で、B1セルの文字の色を変えます。

smilepick
質問者

お礼

お礼が遅くてすいません。 マクロはど素人なので、もう少し詳しくというか、実際の手順を教えてもらえませんか? 「Changeイベントプロセジュアー」とかいった用語がわかりません。 すいません。

すると、全ての回答が全文表示されます。
  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.2

参考URLを応用することで多条件に対応できます。

参考URL:
http://www.moreexcellent.com/excel/macro/selectcase.htm
すると、全ての回答が全文表示されます。
  • list
  • ベストアンサー率30% (61/203)
回答No.1

マクロを使用すれば出来ると思います。

すると、全ての回答が全文表示されます。

関連するQ&A