VBA初心者です。エクセル(2003)のVBAについて質問です。
セルに何か値が入力されたら、隣のセルに「TRUE」と入力し、
入力が消去されたら、隣のセルに「FALSE]と入力されるマクロを作成しています。
下記のコードをシートモジュールに入力し、
標準モジュールにはそれぞれ呼び出し用のマクロを入力しています。
A列とB列は結合されていて、その結合されたA・B列のセルに値が入力されたり消去されたりすると
隣のC列に結果が入力されるようにしたいのですが、
A・B列の値をDeleteキーで消去するとエラーになってしまいます。
BSキーで値を消去するとエラーは出ません。
Deleteキーでもエラーが出ない様にする方法はありますでしょうか。
どなたかご教授お願いします。
-----------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1,A3:B3,A5:B5")) Is Nothing Then
If Target.Value <> "" Then
Select Case Target.Address(0, 0)
Case "A1"
Call マクロ1_TRUE
Case "A3"
Call マクロ3_TRUE
Case "A5"
Call マクロ5_TRUE
End Select
ElseIf Target.Value = "" Then
Select Case Target.Address(0, 0)
Case "A1"
Call マクロ1_FALSE
Case "A3"
Call マクロ3_FALSE
Case "A5"
Call マクロ5_FALSE
End Select
End If
End If
End Sub
こんにちわ
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address(0, 0)
If Intersect(Target.Cells(1), Range("A1:B1,A3:B3,A5:B5")) Is Nothing Then Exit Sub
If Target.Cells(1).Value <> "" Then
・・・
・・・
上の例のように、MsgBox Target.Address(0, 0)を加えて、
DeleteキーとBSキーでの動作の違いを見てください。
そして、次のようにすべて書き換えてください。
Target → Target.Cells(1)
お礼
素早い回答ありがとうございます! エラーが出ない様に出来ました。 メッセージボックスには、Deleteキーを押した時には 結合した2つのセルが表示されました。 Target.Cells(1)とは結合したセルのうちの 1番目を指定しているという事でしょうか。 本当に助かりました!これからもっとVBAを勉強します。 ありがとうございました。