Спасибо еще раз The_Prist, который помог мне с просьбой, но решил я немного доработать макрос. Все получилось, кроме отмены - не работает никак. Смысл, чтобы отменялось последнее действие пользователя.
Прошу, посмотрите, подскажите, что тут не так
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call Create_popup
Cancel = True
End Sub
Sub Create_popup()
Remove_Popup
With Application.CommandBars.Add(Name:="MyPopup", Position:=msoBarPopup, Temporary:=True)
With .Controls.Add
.Caption = "Добавить строку"
.On Action = "Add_R"
.FaceId = 194
End With
With .Controls.Add
.Caption = "Удалить строку"
.On Action = "Remove_R"
.FaceId = 478
End With
With .Controls.Add
.Caption = "Отменить"
.On Action = "Undo_last"
.FaceId = 37
End With
.ShowPopup
End With
End Sub
Sub Remove_Popup()
On Error Resume Next
Application.CommandBars("MyPopup" .Delete
End Sub
Sub Add_R()
ActiveSheet.Unprotect 123
Selection.Ins ert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveSheet.Protect 123
End Sub
Sub Remove_R()
ActiveSheet.Unprotect 123
Sele ction.Delete Shift:=xlUp
ActiveSheet.Protect 123
End Sub
Sub Undo_last()
ActiveSheet.Unprotect 123
With Application
.EnableEvents = False
.Undo
End With
ActiveSheet.Protect 123
End Sub
Прошу, посмотрите, подскажите, что тут не так
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call Create_popup
Cancel = True
End Sub
Sub Create_popup()
Remove_Popup
With Application.CommandBars.Add(Name:="MyPopup", Position:=msoBarPopup, Temporary:=True)
With .Controls.Add
.Caption = "Добавить строку"
.On Action = "Add_R"
.FaceId = 194
End With
With .Controls.Add
.Caption = "Удалить строку"
.On Action = "Remove_R"
.FaceId = 478
End With
With .Controls.Add
.Caption = "Отменить"
.On Action = "Undo_last"
.FaceId = 37
End With
.ShowPopup
End With
End Sub
Sub Remove_Popup()
On Error Resume Next
Application.CommandBars("MyPopup" .Delete
End Sub
Sub Add_R()
ActiveSheet.Unprotect 123
Selection.Ins ert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveSheet.Protect 123
End Sub
Sub Remove_R()
ActiveSheet.Unprotect 123
Sele ction.Delete Shift:=xlUp
ActiveSheet.Protect 123
End Sub
Sub Undo_last()
ActiveSheet.Unprotect 123
With Application
.EnableEvents = False
.Undo
End With
ActiveSheet.Protect 123
End Sub