すべてのカテゴリ » 仕事・キャリア » その他

質問

終了

エクセル、4つ以上条件付書式について調べています。あなたの知っている情報を教えてください!

 文字が A→赤、B→白、C→青、D→緑、E→オレンジ、F→黒 (全てセルの色です)

 という条件を付けたいのですが、どうしたらよいでしょうか?

簡単な方法を教えてください。

===補足===
EXCELは2003です。
値は式で求めるのではなく、名称なので、一つずつあります。
よろしくお願いいたします。。
マクロがよくわからないので、詳しく教えていただければ..

  • 質問者:javacky
  • 質問日時:2009-11-06 15:27:25
  • 0

セルに値を入力する度に色が変わる様なマクロを作成してみました。
以下の手順でマクロを追加してみてください。

1.[ツール]-[マクロ]-[Visual Basic Editor]を選択する。
2.プロジェクトから、マクロを追加したいシートを選択する。
 (Sheet1に追加したい場合は、Sheet1をダブルクリック)
3.表示されたエディットウィンドウに、本回答末尾のコードをコピーする。
4.保存する。

背景色をカスタマイズする場合は、マクロの"cIndex = 3"となっている箇所の数値を変更してください。
どの色がどの数値に紐付いているかは、こちらのサイトで確認してください。
http://www.relief.jp/itnote/archives/000482.php


' ---マクロ ここから---
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
' 画面更新を一時停止
Application.ScreenUpdating = False

Dim targetCell As Range
Dim cIndex As Integer

' 選択されたセル全てに対して処理を実行
For Each targetCell In Target.Cells
Select Case targetCell.Value
' セルの値が"A" → 赤
Case "A": cIndex = 3
' セルの値が"B" → 白
Case "B": cIndex = 2
' セルの値が"C" → 青
Case "C": cIndex = 5
' セルの値が"D" → 緑
Case "D": cIndex = 10
' セルの値が"E" → オレンジ
Case "E": cIndex = 46
' セルの値が"F" → 黒
Case "F": cIndex = 1
' セルの値が上記以外 → 塗りつぶしなし
Case Else: cIndex = xlNone
End Select
' セルの背景色を設定
targetCell.Interior.ColorIndex = cIndex
Next

' 画面更新を再開
Application.ScreenUpdating = True
End Sub
' ---マクロ ここまで---

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

先程、試してみました。
希望どおりにセルの色が変わりました。
困っていたので、大変助かりました。
ありがとうございました!

応用できるように頑張ります^^

並び替え:

例えば
=FIND(A1,"ABCDEF")
とすればA1に対応する位置が帰るので、この値によりセルの色を設定する。
セルの色の指定方法は知りません。そもそも使用しているのがExcelでないのでやり方は違うだろうし、そこは任せます。

  • 回答者:匿名希望 (質問から6時間後)
  • 0
この回答の満足度
  
回答ありがとうございました。
お礼コメント

回答ありがとうございました。

エクセルのA1~A6にA~Fを入力

エクセルのメニューから
ツール - マクロ - visual basic editer

vbのメニューから
挿入 - 標準モジュール


↓をコピペ


Option Explicit

Sub SetBgColor()

Range("A1").Activate

Do While ActiveCell <> ""
Select Case ActiveCell
Case "A": SellBGColor 3
Case "B": SellBGColor 2
Case "C": SellBGColor 5
Case "D": SellBGColor 10
Case "E": SellBGColor 46
Case "F": SellBGColor 1
End Select
ActiveCell.Offset(1, 0).Activate
Loop

End Sub

Private Function SellBGColor(n As Integer)

With ActiveCell
.Interior.ColorIndex = n
.Interior.Pattern = xlSolid
End With

End Function

エクセルに戻って、
ツール - マクロ - マクロ

マクロの保存先(A)で作業中のブックを選択
SetBgColorを選択
実行ボタンを押す

で色が変わりました。


マクロが分からないとなると
ちょっときついかもですけど
がんばってください。

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

回答ありがとうございました。
セルの位置が確定している場合はわもさんのアドバイスが
参考になります^^

ありがとうございました!

エクセル2007であれば条件が4つ以上でも可能のようですよ。

この質問内容では答えようにも答えられない方もいらっしゃると思いますので
もう少し詳しく補足されてはいかがでしょうか。

エクセル2003とかの場合は条件は3つまでですので
それ以上の条件をつけたい場合はマクロを組むというのが答えのような気がします。

簡単に解決するには、
・条件を整理して3つ以内にする
・入力される数値が式で求められているなら結果が別のセルになるようにする
  (たとえば A,B,Cの条件の結果のセルと E,Fの条件の結果のセル)

なんて方法でしょうか。

  • 回答者:2003 (質問から49分後)
  • 1
この回答の満足度
  
参考になりました。回答ありがとうございました。
お礼コメント

一番にお答え頂き、ありがとうございました!
質問に足りないところがあり、失礼いたしました。

2007のように条件付き書式がたくさん指定できると便利ですが、
やはりマクロが必要ですね^^;

関連する質問・相談

Sooda!からのお知らせ

一覧を見る