[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件付き書式の条件数3を乗り越えたい』(かっぱ)
設定条件と合致した場合に、当該セルに背景色を着けたいと当該セルに条件付き書式を 設定したのですが、条件が3つしか許されていません。 この条件を超える6条件、例えば、栄町→赤、今町→ピンク、呉服町→水色、鍛治町→ 肌色、鍋屋町→若竹色、寺町→黄色と入力文字に対応して当該セルの背景色を自動で設 定したいのです。 条件付き書式では無理なのでしょうか。 無理な場合には、他のよい方法はないでしょうか。 どなたか、解決方法をお教えくださいませんか。 [Excel2003][WindowsXP]
条件付書式の条件は、3つまでですね〜 他の方法は、マクロになると思います。 「全文検索」してみましたので、参考にどぞ〜 http://www.excel.studio-kazu.jp/cgi-bin/estindex/estseek2.cgi?phrase=%E6%9D%A1%E4%BB%B6%E4%BB%98%E6%9B%B8%E5%BC%8F%E3%80%80%EF%BC%93%E3%81%A4%E3%80%80%E4%BB%A5%E4%B8%8A&perpage=10&attr=&order=&clip=-1&navi=0 (キリキ)(〃⌒o⌒)b
>他の方法は、マクロになると思います。 Excel2007 なら、条件の数は無制限(メモリに依存)で〜す。 (純丸)(o^-')b
キリキさん、純丸さん、ありがとうございました。 やはり、マクロですか。 純丸さんの「Excel2007 なら、条件の数は無制限(メモリに依存)で〜す。」 は魅力がありますが、より多くの人が使うという点で問題がありませんか? 2007をもっている人だけしか使えなくなるというようなことです。 (かっぱ)
↑もちろんその通りです。バージョンの異なる複数の環境で使用するには、 最下位のバージョンに合わせるのが原則です。 上記回答は、マクロ以外の方法の1つとして提示させていただきました。
(純丸)(o^-')b
キリキさんから紹介いただいた先に以下のものを見つけました。
>設定したいシートのシートタブを右クリックして、コードの表示 >出てきたメモ帳みたいなVBA画面のシートモジュールに以下をコピペしてください。 >A列を対称にしていますので、A列に ねこ などと入力してみてください。 >Private Sub Worksheet_Change(ByVal Target As Range) >'変数宣言 >Dim colr As Integer >Dim c As Variant > If Target.Count > 1 Then Exit Sub > If Target.Column <> 1 Then Exit Sub > For Each c In Target > Select Case c.Value > Case "さる" > colr = 3 'ここの色番号をお好きなように > Case "くま" > colr = 5 '々 > Case "とり" > colr = 6 '々 > Case "いぬ" > colr = 4 '々 > Case "ねこ" > colr = 8 '々 > Case "あゆ" > colr = 7 '々 > Case Else > colr = xlNone > End Select > c.Interior.ColorIndex = colr > Next c >End Sub
そこで、私が考えている対象セル(32行、35行、38行、41行、44行、47行)のように 複数の、それも行に対応したものにするにはどこを、どう直せばよろしいのでしょか。 不勉強で、恥ずかしいのですが、ここだ、これだと見つけることができません。 変更点、変更方法をぜひ、お教えください。 (かっぱ)
参考までに手で実行する方法です。 近くの空いているセルに 栄町→赤、今町→ピンク、呉服町→水色、鍛治町→ 肌色、鍋屋町→若竹色、寺町→黄色と配置しておき、 必要に応じてこれをコピーし貼り付けますと、色付きのセルができます。 (6UP)
If Target.Column <> 1 Then Exit Sub これを If Intersect(Target, Range("32:32,35:35,38:38,41:41,44:44,47:47")) Is Nothing Then Exit Sub に変更かなぁ? (ROUGE)
ROUGEさんからいただいたものに変更してみました。また、関係先を読み込んだところ 一部訂正が必要な部分があったのでそこも変更して次のようにしてみました。
Private Sub Worksheet_Change(ByVal Target As Range) '変数宣言 Dim colr As Integer If Target.Count > 1 Then Exit Sub 'If Target.Column <> 1 Then Exit Sub If Intersect(Target, Range("32:32,35:35,38:38,41:41,44:44,47:47")) Is Nothing Then Exit Sub Select Case Target.Value Case "体育館" colr = 35 'ここの色番号をお好きなように Case "理科室" colr = 36 '々 Case "多目的" colr = 38 '々 Case "図書室" colr = 39 '々 Case "音楽室" colr = 40 '々 Case Else colr = xlNone End Select Target.Interior.ColorIndex = colr End Sub
>設定したいシートのシートタブを右クリックして、コードの表示 >出てきたメモ帳みたいなVBA画面のシートモジュールに以下をコピペしてください。 との文章に即して処理をして、このマクロを実行させるにはどうすればよいのでしょうか。 「Private Sub Worksheet_Change(ByVal Target As Range)」とあって、普通のマクロの 開始部分「Sub Test()」と違いますのでどうなるのでしょうか? 超初心者ですので、どなたかお教えくだされば幸いです。 (かっぱ)
例えば32行目に「体育館」と入力してみて下さい。 (oni)
うまくいきました。ROUGEさん、oniさんありがとうございました。 oniさん、「Private Sub Worksheet_Change(ByVal Target As Range)」とは、 シートに何か処理がなされたとき自動に動きだすのですね。 実際にやってみて納得です。 ところで、シート1だけでなくシート2、シート3でも利用するには、それぞ れのシートにマクロを貼らなくてはならないということになりますか? 共通モジュールなどを利用することはできませんか? (かっぱ)
ThisWorkbookモジュールのWorkbook_SheetChangeイベントで制御されてはどうでしょうか。 (ROUGE)
ROUGEさん、ご助言ありがとうございます。 ところで、「ThisWorkbookモジュールのWorkbook_SheetChangeイベントで 制御されてはどうでしょうか。」とはどういうことでしょうか。 なにせ、初心者(変な細切れ知識はあるのですが?)ですので、具体的に どうすることなのか分かりません。 よろしかったら、今一歩、掘り下げて説明いただけないでしょうか。 (かっぱ)
左の方に VBA Project という窓があると思います。 そこのThisWorkbookというところをWクリックして出てきた画面に
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'コードを記述 End Sub
を入れます。 (ROUGE)
ROUGEさん、ありがとうございます。 試してみます。 今後も、質問ボードに(かっぱ)を見つけられましたら、 これに懲りずにご教授ください。よろしくお願いいたします。 (かっぱ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.