Gizport
1 回答
0
Share (facebook)
199
view
全般

エクセルVBAに詳しい方、教えてください。セルの背景色・フォントを変...

エクセルVBAに詳しい方、教えてください。セルの背景色・フォントを変更するのに97では、条件付き書式だと4つ目の条件が設定出来ず、VBAだと設定出来るみたいですが、どのようにするかご教授ください。 臨時の中のD4,D7,D10,D16に点数を入力すると、C4,C7,C10,D16にランク(S・A・B・C)が表示するようにVLOOKUPで数式を入れてます。
ランクに応じて、(C2:D4)(C5:D7)(C8:D10)(C11:D13)(C14:D16)の背景色を変更したいのですが、
S=水色
A=薄紫
B=黄色
C=赤色 かつ フォントを太字、文字色=白
上記のように変更にしたいです。

一回目の中のE4,E7,E10,E16に項目数をを入力すると、○個/20項目とユーザー定義で表示形式を設定しています。
個数に応じて、(E2:E4)(E5:E7)(E8:E10)(E11:E13)(E14:E16)の背景色を変更したいのですが、
0個=水色
1~2個=薄紫
3~5個=黄色
6個以上=赤色 かつ フォントを太字、文字色=白
上記のように変更にしたいです。
セルの結合はしていません。
97では、条件付き書式だと4つ目の条件が設定出来ず、VBAだと設定出来るみたいですが、
どのようにするかご教授ください。
Yahoo!知恵袋 3788日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
添付の図を見ると、C13、E13も点数と項目数があるのですが、質問では抜けているのでしょうか?
また、添付にはB列が2つあるのですが、これは無視ということにしています。
入力されているシートのシートイベントに記述します。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim j As Long
If Intersect(Target, Range("D4,D7,D10,D13,D16,E4,E7,E10,E13,E16")) Is Nothing Then Exit Sub
Select Case Target.Offset(, -1).Value
Case "S"
Range(Target.Offset(-2, -1), Target).Interior.ColorIndex = 8
Case "A"
Range(Target.Offset(-2, -1), Target).Interior.ColorIndex = 39
Case "B"
Range(Target.Offset(-2, -1), Target).Interior.ColorIndex = 6
Case "C"
With Range(Target.Offset(-2, -1), Target)
.Interior.ColorIndex = 3
.Font.Bold = True
.Font.ColorIndex = 2
End With
End Select

Select Case Target.Value
Case 0
Range(Target.Offset(-2), Target).Interior.ColorIndex = 8
Case 1, 2
Range(Target.Offset(-2), Target).Interior.ColorIndex = 39
Case 3 To 5
Range(Target.Offset(-2), Target).Interior.ColorIndex = 6
Case Is >= 6
With Range(Target.Offset(-2), Target)
.Interior.ColorIndex = 3
.Font.Bold = True
.Font.ColorIndex = 2
End With
End Select
End Sub

複数の条件がある場合は、SELECT CASEステートメントを使うと視認性が良くなります。IFステートメントでもよいのですが、修正する場合に面倒です。
構文がある程度お分かりであれば、意味が分かるようにしています。
質問にあってないのでしたら、参考程度にとどめてください。
Yahoo!知恵袋 3786日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
24
Views
質問者が納得下記を確認してください。 =最大 下にコピーしてください。 入力しない場合に関するエラーハンドリングは実行されません。 それは強制的に行いました。 それが回避する場合ど。 通常の定式 このように。 =最大
3705日前view24
全般
26
Views
質問者が納得シート1での最新のデータですから前に示した式で良いのですが =IF(A2="","",INDEX(Sheet1!$C:$E,MATCH($A2&COUNTIF(Sheet1!$B:$B,$A2),Sheet1!$G:$G,0),COLUMN(A1)))→この回答で入力すると同品目の3番目のデータが表示されてしまいました。前回納入した情報を出力したいので再度お願いいたします。 同品目の3番目のデータはシート1では見られませんね。3番目が最後のものでそれよりも...
3715日前view26
全般
29
Views
質問者が納得添付の図を見ると、C13、E13も点数と項目数があるのですが、質問では抜けているのでしょうか? また、添付にはB列が2つあるのですが、これは無視ということにしています。 入力されているシートのシートイベントに記述します。 Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long Dim j As Long If Intersect(Target, Range("D4,D7,D10,D13,D16,E4,E7,E10,...
3788日前view29
全般
27
Views
質問者が納得◆画像を参考に次の数式を設定してみましょう。 シート2の重量を表示させるセル(D2) =IF(C2="","",SUMPRODUCT((Sheet1!A2:A5=Sheet2!A2)*(Sheet1!B2:B5=Sheet2!B2)*(Sheet1!C2:C5=Sheet2!C2),Sheet1!D2:D5)) 以下、下方に数式をコピーする。 ※ SUMPRODUCT 関数 1)シート1の「名前1の範囲=シート2の名前1のAさん」 2)シート1の「名前2の範囲=シ...
3888日前view27
全般
28
Views
質問者が納得身に覚えが無い様なら、迷惑メールであり、詐欺メールだと思いますね。 ※購入した覚えが無いのに、請求された。→「架空請求」です。 このサイトは「投資攻略系」サイトであり、競馬予想サイトです。 詐欺サイトであり、偽装サイトの可能性はあります。 ただ「金」を騙し取られるだけで当たらないと思います。 大川慶次郎&智絵 競馬の神様と女神のパーフェクト馬券メソッドの被害・詐欺と思われる投稿一覧/被害ナビ http://keiba.higainavi.com/higais/5888.html ※口コミの題名を引用。...
3978日前view28

取扱説明書・マニュアル

972view
http://ctlg.panasonic.co.jp/.../C-14D20.pdf
もっと見る