- ベストアンサー
【EXCEL2003】8つの条件がある書式設定のVBAの書き方
- VBAの書き方について御教授ください!複数のシートに、入力値が決まっているA列とC列があります。その入力値の組み合わせによって、入力時にA:Cのセル書式を8通りに変えたいです。
- マクロの自動記録しか経験がなく調べたのですがよくわかりませんでした。よろしくお願いいたします。
- 具体的な条件は以下の通りです。 1.A列「あ」・C列なし→セル背景:黄 2.A列「あ」・C列「ア」→セル背景:黄 フォント:青 3.A列「あ」・C列「イ」→セル背景:黄 フォント:赤 4.A列「い」・C列なし→セル背景:緑 5.A列「い」・C列「ア」→セル背景:緑 フォント:青 6.A列「い」・C列「イ」→セル背景:緑 フォント:赤 7.A列なし・C列「ア」→フォント:青 セル背景:なし 8.A列なし・C列「イ」→フォント:赤 セル背景:なし
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
参考にしてください。 入力シートをマウス右Click → 「コードの表示」→ 表示される画面に貼り付け Private Sub Worksheet_Change(ByVal Target As Range) Dim tR As Long Dim wRng As String ' If Target.Column = 1 Or Target.Column = 3 Then tR = Target.Row wRng = "A" & tR & ":C" & tR Range(wRng).Interior.ColorIndex = xlNone Range(wRng).Font.ColorIndex = xlAutomatic '1 If Cells(tR, 1) = "あ" And _ Cells(tR, 3) = "" Then Range(wRng).Interior.ColorIndex = 6 '背景:黄 Range(wRng).Font.ColorIndex = xlAutomatic End If '2 If Cells(tR, 1) = "あ" And _ Cells(tR, 3) = "ア" Then Range(wRng).Interior.ColorIndex = 6 '背景:黄 Range(wRng).Font.ColorIndex = 5 'フォント:青 End If '3 If Cells(tR, 1) = "あ" And _ Cells(tR, 3) = "イ" Then Range(wRng).Interior.ColorIndex = 6 '背景:黄 Range(wRng).Font.ColorIndex = 3 'フォント:赤 End If '4 If Cells(tR, 1) = "い" And _ Cells(tR, 3) = "" Then Range(wRng).Interior.ColorIndex = 10 '背景:緑 Range(wRng).Font.ColorIndex = xlAutomatic End If '5 If Cells(tR, 1) = "い" And _ Cells(tR, 3) = "ア" Then Range(wRng).Interior.ColorIndex = 10 '背景:緑 Range(wRng).Font.ColorIndex = 5 'フォント:青 End If '6 If Cells(tR, 1) = "い" And _ Cells(tR, 3) = "イ" Then Range(wRng).Interior.ColorIndex = 10 '背景:緑 Range(wRng).Font.ColorIndex = 3 'フォント:赤 End If '7 If Cells(tR, 1) = "" And _ Cells(tR, 3) = "ア" Then Range(wRng).Interior.ColorIndex = xlNone Range(wRng).Font.ColorIndex = 5 'フォント:青 End If '8 If Cells(tR, 1) = "" And _ Cells(tR, 3) = "イ" Then Range(wRng).Interior.ColorIndex = xlNone Range(wRng).Font.ColorIndex = 3 'フォント:赤 End If End If End Sub
お礼
pkh4989様 早速の回答、どうもありがとうございました! 実行してみましたところ見事に書式変更できました。 どんなコードを入力すれば良いのか、今後の勉強に生かしていきたいと思います。