|
1行目から66行目までに「名前定義」をしておき(例:下記test)、
これを利用して、その範囲の行の挿入・削除が行われたら、その動作を元に戻します。
<<シートモジュール>>
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Rows("1:66")) Is Nothing Then Exit Sub
If Range("myRange").Rows.Count <> 66 Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub
# Application.EnableEventsを操作しているのは、
# Undoによって再度Changeイベントプロシージャが
# 呼ばれることを回避するため。
(*)標準モジュールで一度だけ実行します。(もちろん手作業でも可)
Sub test()
ActiveWorkbook.Names.Add Name:="myRange", RefersToR1C1:="=Sheet1!R1:R66"
End Su
|
|