プロが教える店舗&オフィスのセキュリティ対策術

 特定のセル(A1)の入力操作を取り消しA1の元データを別セル(B1)にコピペした後、再度セル(A1)の値を入力値に戻すにはどうしたら良いでしょうか?お教え下さい。

Windows7・SP1 Office2010

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.address <> "$A$1" Then Exit Sub
Application.EnableEvents = False
Application.Undo
Range("A1").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub

A 回答 (1件)

試しにやってみました。

ご参考まで。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Application.EnableEvents = False
Application.Undo
'コピー先は別のシートにします。'同じシート内で行うと、二回目のApplication.Undoで、Undo出来ないというエラーになりました。'途中で対象シートをいじってはイカンという事でしょうか。
Sheets(2).Range("B1").Value = Range("A1").Value
Application.Undo
Application.EnableEvents = True
End Sub
    • good
    • 0
この回答へのお礼

早速の御回答有難うございます。二回目のApplication.Undoで、Undo出来ないというエラーになるのはわかっていましたが、別シートにコピペしたとは考えが及びませんでした。

お礼日時:2013/07/15 18:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!