|
昨日、Worksheet_Changeのコードを書いていて気づいたことですが...。
A、B列こんな感じに適当な文字を入れます。
A B
あ い
あ い
あ い
あ い
あ い
あ い
あ い
シートモジュールに下記マクロを
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells(1).Value = "" Then
Application.EnableEvents = False
Target.Offset(, 1) = ""
Application.EnableEvents = True
End If
End Sub
A列の文字を消すと同じ行のB列の文字が消えます。
この後、編集メニューの元に戻す等が生きています。
実際、元に戻してみると、A列の消した分だけ元に戻ります。
(Ctrl + Z でも同じ)
Target.Offset(, 1) = "1"
などと、何か文字の類を入れると元に戻せません。
(セルの文字を消した場合限定。)
Range("A1:A5").ClearContents
等で、消した場合は元に戻せません。
下記コードも同じようなものです。
C1以外の適当なセルに1を入れると、C1の値が消えます。
Ctrl + Z で、元に戻すと1を入れたセルだけ元に戻ります。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = 1 Then
Application.EnableEvents = False
Range("C1") = ""
Application.EnableEvents = True
End If
End Sub
今度は、下記コードをマクロ登録してボタンから試してみました。
同じようにマクロで文字を消した操作以外は元に戻せます。
表現があっているのか解りませんが、
元に戻せるのは、マクロで消した文字を入力した直後までで、入力した文字はマクロで消されている為、それ以前の操作は元に戻せなかった。
Sub dkdk()
Range("A1:A5").Value = ""
End Sub
""は、Emptyでも可。
マクロでセル内容を変えた場合、ずべて元に戻せないと思っていましたが、
こんなものなのでしょうか?
今まで知らなかった。
By Win98se & EXL2000SR1
|
|