
こんにちは。いつもお世話になっております。
まさに標題の通りなのですが、有る位置のセル内に入れた数字によって設定済みの色でセルを
塗りつぶしたい場合、どのようにすれば宜しいでしょうか。
因みに現在は下記の通りに設定しております。
●現在の設定●
書式(D)→条件付き書式(D) にて
条件1(1)
数式が =$G2=1 であればセル色を黄緑
条件2(2)
数式が =$G2=2 であればセル色をピンク
条件3(3)
数式が =$G2=3 であればセル色を水色
◆この度、設定変更しなくてはならない背景◆
来月からセルG2に入れる数字が現状では1,2,3のみですが1,2,3,4,5と変更になる為。
(書式付き設定ではMAX3つまでしか設定できないように見受けられるので)
尚、当方はさほどエクセルに精通しておりませんのでマクロやVBAなど組んだ事が無く、かつ、
以前ちょっと挑戦しようと思ったのですが全く理解できなかった為、例えば関数などを用いて
設定出来る方法がありましたら例文を記載して戴けますと非常に助かります。
また、エクセルのヘルプで検索した結果
「VBAを使用してセルの塗りつぶしの色を変更する」というものを見つけたので閲覧↓
http://office.microsoft.com/ja-jp/excel/HA011366 …
したのですが、式らしきものを見つけたものの、その意味が理解できず、どのように記述して
よいのか判りませんでした。。。
以上、お手隙の方、いらっしゃいましたら何卒ご教授の程、お願い致します。
No.3ベストアンサー
- 回答日時:
#02です。
補足を見て変更しました。色番号はご自由に直してください
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, rng As Range
Const trg As String = "G2:G50" ' "A1:A3"のように複数セルでもよい
Set rng = Intersect(Target, Range(trg))
If Not rng Is Nothing Then
For Each r In rng
Select Case r.Value
Case Is = 1 'もし入力されたのが1ならば
Cells(r.Row, 1).Resize(1, 8).Interior.ColorIndex = 4 '背景色を黄緑
Case Is = 2 'もし入力されたのが2ならば
Cells(r.Row, 1).Resize(1, 8).Interior.ColorIndex = 7 '背景色をピンク
Case Is = 3 'もし入力されたのが3ならば
Cells(r.Row, 1).Resize(1, 8).Interior.ColorIndex = 8 '背景色を水色
Case Is = 4 'もし入力されたのが4ならば
Cells(r.Row, 1).Resize(1, 8).Interior.ColorIndex = 6 '背景色を黄色
Case Is = 5 'もし入力されたのが5ならば
Cells(r.Row, 1).Resize(1, 8).Interior.ColorIndex = 3 '背景色を赤
Case Else 'その他の値なら色を消す
Cells(r.Row, 1).Resize(1, 8).Interior.ColorIndex = xlNone
End Select
Next r
End If
End Sub
こんにちは。ご多忙中の所、早々にご回答戴きまして有難うございました!
Resize(1, 8)の 8 が色を付けたいセル数を示しているのですね♪
現時点ではA~Kまでですので Resize(1, 11) ですが、今後、表示すべき項目数が増える可能性が高く、
そうなるとおのずとセル色をつけるセル数も増えますので、これは本当に便利で、かつ助かりました!
まだまだ判らないプログラム?ですが、パッと見、ここはこんな事を指示してるんだろうなぁ…という
憶測がつく部分もありますので、以後、何かの時にはこちらをサンプルとして勉強がてら自分で作って
みようと思いました。
この年の瀬のお忙しい中、本当にほんと~に、どうも有難うございました!!
No.2
- 回答日時:
>例えば関数などを用いて設定出来る方法がありましたら
ありません。質問文にあるように条件付き書式は3条件までです。元の背景色を加えて4色まで塗り分けが可能ですが、5色以上はどうしてもマクロが必要です。マクロに手を出すつもりがないなら、残念ながらあきらめるしかありません。
セルの値によって色を変えるのはG2セルだけでよいならマクロは以下のようになります。マクロは値を入力するシートの「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けてください。
そしてシート画面に戻ってG2セルに値を入力してみてください。
もしG2以外も背景色を変えたいならマクロの3行目を修正してください
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Const trg As String = "G2" ' "A1:A3"のように複数セルでもよい
Set rng = Intersect(Target, Range(trg))
If Not rng Is Nothing Then
Select Case rng.Value
Case Is = 1 'もし入力されたのが1ならば
rng.Interior.ColorIndex = 4 '背景色を黄緑にする
Case Is = 2 'もし入力されたのが2ならば
rng.Interior.ColorIndex = 7 '背景色をピンクにする
Case Is = 3 'もし入力されたのが3ならば
rng.Interior.ColorIndex = 8 '背景色を水色にする
Case Is = 4 'もし入力されたのが4ならば
rng.Interior.ColorIndex = 6 '背景色を黄色にする
Case Is = 5 'もし入力されたのが5ならば
rng.Interior.ColorIndex = 3 '背景色を赤にする
Case Else 'その他の値なら色を消す
rng.Interior.ColorIndex = xlNone
End Select
End If
End Sub
色番号(ColorIndex)は下記URLを参照して、好きな色に変更してください
http://furyu.tea-nifty.com/annex/2006/05/excel_c …
この回答への補足
こんにちは。早々にご回答、有難うございました。
まずはお教え戴きましたものをコピペしましたら上手く行きました。有難うございました!!(感動♪)
しかし…。説明を割愛しておりました為に、これではまだ不十分な完成でございます。
もしもお手隙なお時間がおありでしたら、下記の点を加味したマクロをご教授戴けましたら助かります。
●G2~G50までに値を入れると、その行のセル色を自動的に変えるようにしたい。例えば…↓
G2に1を入力したらA2~K2全部のセルを黄緑にしたい。
G2に2を入力したらA2~K2全部のセルを水色にしたい。
G2に3を入力したらA2~K2全部のセルを薄紫にしたい。
G2に4を入力したらA2~K2全部のセルをピンクにしたい。
G2に5を入力したらA2~K2全部のセルをスカイブルーにしたい。
G3に1を入力したらA3~K3全部のセルを黄緑にしたい。
G3に2を入力したらA3~K3全部のセルを水色にしたい。
G3に3を入力したらA3~K3全部のセルを薄紫にしたい。
G3に4を入力したらA3~K3全部のセルをピンクにしたい。
G3に5を入力したらA3~K3全部のセルをスカイブルーにしたい。
:
:
:
G50に1を入力したらA50~K50全部のセルを黄緑にしたい。
G50に2を入力したらA50~K50全部のセルを水色にしたい。
G50に3を入力したらA50~K50全部のセルを薄紫にしたい。
G50に4を入力したらA50~K50全部のセルをピンクにしたい。
G50に5を入力したらA50~K50全部のセルをスカイブルーにしたい。
以上となります。ご無理なさらず、もしもお時間がありましたらで構いません。宣しくお願い致します。
No.1
- 回答日時:
> ◆この度、設定変更しなくてはならない背景◆
をもっと詳しく教えて下さい。それによって条件の式で解決できるか出来ないかが決まります。
条件付書式は3つのパターンしか登録できませんので、5色に分けたいのでしたらVBAになると思います。
5つのパターンでも3色に塗り分けるのなら、条件付書式の式の書き方で対応できる可能性はあります。
この回答への補足
こんにちは。早々のご回答、有難うございます。
>もっと詳しく教えて下さい。
◆現時点では管理している人間が3名なので3色のセルで対応可能なのですが、来年から管理すべき
対象の人間が2名増えることから5色が必要になってきてしまったのです。
(現在:Aさん=1番 Bさん=2番 Cさん=3番 としており、セル位置G2に、この1,2,3
を入れることによって、誰のデータであるか一目見ればパッと判るようにしているのです)
従いまして5名いたら5色の設定が必要、というわけなのです。
ただ、どうしてもマクロでないと対応不可能であるならば、Bさんと今回新規に管理対象となる
Dさん(4番)とEさん(5番)のセル色を同一色(現在、Bさんデータのセル色はピンクなので
これを引継ぎ、ピンクとしても構わないかな…とは思っておりますが…。
どうしてもこれにせざるを得ない場合(私の技量がないばかりに…)の記述の仕方は 書式(D)→
条件付き書式(D) 内で、どのように記載すれば宜しいのでしょうか。
再度のご質問になってしまい誠に恐縮ですが、もしもお手隙なお時間がありました際には、どうぞ
ご教授願います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- CGI VBAで条件から範囲を指定して色を塗る方法を知りたいです 1 2022/06/30 16:05
- Excel(エクセル) Excel 数式を使用した条件付き書式が、一つのセルにしか反映されない 3 2022/06/08 23:20
- Excel(エクセル) 【!】Excel 2つの条件付き書式が反映されません。。 5 2023/07/14 16:47
- Excel(エクセル) Excelについて▶あるセルに文字を入力すると、別のセルに色がつく(条件付き書式) 1 2022/03/27 16:43
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/09 14:54
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelの関数について、特定の文...
-
日付が1年以内になると他のセル...
-
エクセル カタカナの文字を検...
-
エクセル「一度設定した列幅を...
-
Excelについて▶あるセルに文字...
-
数字がセルの左側に寄っていて...
-
【Excel】貼り付けた画像がいつ...
-
コピペするとセルの表示形式が...
-
エクセルで同じ値が連続してい...
-
エクセル 入力中に表示されな...
-
【Excel】1-4と入力すると1月4...
-
excelの16進数表示方法
-
エクセルで条件付き書式を使わ...
-
excel 表計算 加算するセルが空...
-
エクセル:セルのバックの色だ...
-
エクセルで縦書きのかっこ
-
条件付き書式で範囲外だったら...
-
【!】Excel 2つの条件付き書...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで数値→文字列変換で指数...
-
Excelの関数について、特定の文...
-
テキストボックス内の文字のふ...
-
日付が1年以内になると他のセル...
-
エクセル 入力中に表示されな...
-
数字がセルの左側に寄っていて...
-
エクセルで同じ値が連続してい...
-
【Excel】貼り付けた画像がいつ...
-
エクセル カタカナの文字を検...
-
excel 表計算 加算するセルが空...
-
excelの16進数表示方法
-
Excelについて▶あるセルに文字...
-
エクセルで条件付き書式を使わ...
-
エクセル:セルのバックの色だ...
-
エクセルで入力数字に自動的に,...
-
Excel で金額の,で中央揃えす...
-
エクセル 入力規則 貼付して...
-
条件付き書式で範囲外だったら...
-
エクセル「一度設定した列幅を...
-
Excel 記入欄に網掛けして、文...
おすすめ情報