Private Sub Worksheet_Change(ByVal Target As Range)
Dim eiji As String
eiji = Target.Address
eiji = Left(Target.Address, 2)
eiji = Right(eiji, 1)
If eiji = "B" Then
If Target.Text = "" Then
Range("A1").Value = "B-clear"
End If
End If
If eiji = "C" Then
If Target.Text = "" Then
Range("D1").Value = "C-clear"
End If
End If
End Sub
上記は、C、B列の値がDeleteキーなどで空欄になった場合に文字を出力するコードです。
最初にTarget.Addressから英字部だけを抜き出し(少々ムリヤリですが)、
それを判断基準に以降の処理をしています。
この時B1:C1のように範囲選択してDeleteキーを押された場合に、
どちらの処理(今回の例だと"B-clear"と"C-clear"の表示)も行いたいのですが、
その場合どのように記述したらよいでしょうか。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim eiji As String
Dim Cell
Dim i As Integer
i = 0
For Each Cell In Target
i = i + 1
If Cell.Column = 2 Then
If Cell.Formula = "" Then
Range("A1").Value = "B-clear"
End If
End If
If Cell.Column = 3 Then
If Cell.Formula = "" Then
Range("D1").Value = "C-clear"
End If
End If
Next
End Sub
わざわざ英文字を取り出してみなくてもいいのでは?
お礼
回答ありがとうございます。 正常に動作しました。 ただ、このサンプルを自分の目的のコードに当てはめるのに難航しております。 サンプル作り間違えた…。 >わざわざ英文字を取り出してみなくてもいいのでは? このサンプルコードでは意味無かったですね。 実際に使いたいコードでは必須(だと思い込んでいる)であり、 素人ゆえか数字より英字の方がわかりやすいので(言い訳してもしょうがないですが)。 とにかく、正常に動きました。 ありがとうございました。