- 締切済み
ExcelのVBAで条件書式設定をしたい
VBAで4つ以上の条件で書式設定をしたいのです。 A列には会員番号、B列には会員ステータスです。 A B 123 Aランク 456 Bランク 789 Cランク 321 Dランク 654 Eランク 987 Fランク B列のプルダウンメニューから会員ステータスを選ぶと、A列の会員番号がそれぞれランク別の色に変わるという設定にしたいのです。 例えば、Aランクだったらピンク、Bランクだったら黄、Cランクだったら青、Dランクだったら赤、Eランクだったらオレンジ、Fランクだったらグレーと会員番号のセルに反映されるようにしたいです。 どうかよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- merlionXX
- ベストアンサー率48% (1930/4007)
> If Target.Column = 2 Thenは、2→7で はい、その通りです。 > Target.Offset(0, -1)は、(7, 6)とすればいいのではないですか? それではTarget(入力セル)の7行下6列右ということになります。 G列に入力した場合F列を変えるのならTarget.Offset(0, -1)のままです。
- merlionXX
- ベストアンサー率48% (1930/4007)
そのような設定をしたいシートのシートタブを右クリックして、「コードの表示」 出てきたシートモジュールに以下をコピペします。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Select Case Target.Value Case "Aランク": c = 7 Case "Bランク": c = 6 Case "Cランク": c = 5 Case "Dランク": c = 3 Case "Eランク": c = 46 Case "Fランク": c = 15 Case Else: c = xlNone End Select Target.Offset(0, -1).Interior.ColorIndex = c End If End Sub
補足
早速回答をありがとうございました。 しかし、まだできません。 質問では、A列とB列としましたが、それがF列が会員番号でG列が会員ステータスの場合は、どうなりますか? If Target.Column = 2 Thenは、2→7で Target.Offset(0, -1)は、(7, 6)とすればいいのではないですか? でもこうしてもマクロがうまく動いてくれません。 どうしたらいいのでしょうか?
お礼
merlionXXさん、 迅速な回答をありがとうございました。 お陰様でできました。 これに加えて更に別の質問がありますが、質問内容がまた異なってきますので、別レスで質問したいと思います。 また、よろしくお願いいたします。