こんにちは。
下記にサンプルマクロを掲載しましたので、宜しければ検証
してみて下さい。(※これは一例です)
> E列に「あ」「い」以外が入力された場合は何もしない。
『何もしない』、ということは
『それまでの色設定を維持する』
ということになるので、
仮にそれまでの設定が「あ」の設定だった場合は
その色設定(フォント色=青、セル色=黒)のまま
ということになりますが、それで宜しいのでしょうか?
以下のサンプルマクロでは、E列セルで変更された文字が
「あ」でも「い」でもなかった場合は、A列~E列の色設定を
デフォルトの色設定に戻す、という処理にしています。
※もし、本当に何もしなくて良いのであれば、下記マクロの
Case Else~の箇所を削除するかコメントアウトして下さい。
■サンプルマクロ
========================
'== セル内容変更時のイベント処理 ==
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rg As Range 'Rangeオブジェクト取得用
Dim nRowPos As Long '色変更対象の行位置
Dim nClmPos As Long '色変更対象の列位置
Dim nRowNum As Long '色変更対象の行数
Dim nClmNum As Long '色変更対象の列数
'変更セル(複数セルも含む)が[E列]以外なら戻る
If Application.Intersect(Target, Range("E:E")) Is Nothing Then
Exit Sub
End If
'色変更するセル範囲の位置設定
nClmPos = 1 '色変更対象の列位置
nRowNum = 1 '色変更対象の行数
nClmNum = 5 '色変更対象の列数
'変更セルが複数の場合を考慮し[For Each]でループ処理
For Each rg In Target
'対象セルが1行目(タイトル行)以外かつE列なら処理
If rg.Row <> 1 And rg.Column = 5 Then
'対象セルの行位置を取得
nRowPos = rg.Row
'変更セルの内容により振り分け
Select Case rg.Value
Case "あ"
'変更セルの文字が"あ"の時は、フォント色=白、セル色=青とする
'※[青]と[黒]だと判りづらいので[白]と[青]にしました。
With Cells(nRowPos, nClmPos).Resize(nRowNum, nClmNum)
.Font.Color = RGB(255, 255, 255)
.Interior.Color = RGB(0, 0, 255)
End With
Case "い"
'変更セルの文字が"い"の時は、フォント色=黒、セル色=黄とする
'※[黒]と[白]だとデフォルト色と同じなので[黒]と[黄]としました。
With Cells(nRowPos, nClmPos).Resize(nRowNum, nClmNum)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(255, 255, 0)
End With
Case Else
'上記以外の時は、デフォルト色に戻す。
'注)全く何もしなくて良いのなら下記4行はコメントとするか
' 削除して下さい。
With Cells(nRowPos, nClmPos).Resize(nRowNum, nClmNum)
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexNone
End With
End Select
End If
Next
End Sub
========================
添付画像は、当方で検証した際のExcelシート画面です。
※貼れていなかったり、見辛かった場合はすみません。
以上です。
お礼
早速の回答ありがとうございました。 今回、VBAを初めて操作するので、詳細なコメントアウトを書いていただき、 大変勉強になります。誠にありがとうございます。 > 『何もしない』、ということは > 『それまでの色設定を維持する』 > ということになるので、 > 仮にそれまでの設定が「あ」の設定だった場合は > その色設定(フォント色=青、セル色=黒)のまま > ということになりますが、それで宜しいのでしょうか? ご指摘の通り、「何もしない」ではおかしく、 「デフォルトの色にする」が適切でした。 ご指摘ありがとうございます。 With~End Withステートメントを使えば2つの処理を させることができたんですね。勉強になります。 当方の環境にて、思い描いていた通り以上の結果になりました。 お忙しい中、サンプルを作成していただき、ありがとうございました。