投稿/コメントを表示します。

小川先生へ

Targetの範囲を自由に設定できるのがおもしろくて、
いろいろ試しているところです。

複数の離れたセル(例えばC7とC9とC11)をTargetにする場合を考えて作ってみました。
これでもちゃんと動いたのですが
何かもっと良い方法があるような気がしています。

アドバイスをお願いします。
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$7" Then
    
    ElseIf Target.Address = "$C$9" Then

    ElseIf Target.Address = "$C$11" Then
    
    Else
        Exit Sub
    End If

    If Target.Row <= 6 Then
        Exit Sub
    End If
    
    If Target.Column <> 3 Then
        Exit Sub
    End If
    
    
    If Target.Value <> UCase(Target.Value) Then
        Target.Value = UCase(Target.Value) '受け取った文字列を大文字に直す
    End If
    
    If Target.Value = "D" Then
        Target.Offset(, 1).Value = "DVD無料"
    ElseIf Target.Value = "C" Then
        Target.Offset(, 1).Value = "CD無料"
    ElseIf Target.Value = "J" Then
        Target.Offset(, 1).Value = "ジャケット無料"
    Else
        Target.Offset(, 1).ClearContents
    End If
End Sub


2017/02/15 09:44