Блокировка использования контекстного меню

При необходимости можно запретить использование контекстного меню текущего рабочего листа. Для этого можно воспользоваться таким макросом (листинг 2.10).

Листинг 2.10. Блокировка контекстного меню

Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As

Boolean)

Static intCount As Integer ' Счетчик нажатий кнопки мыши

Dim x As Integer, y As Integer

' Блокировать обработку щелчка правой кнопкой мыши

Cancel = True

' Отображение текстового поля с количеством щелчков правой _

кнопкой мыши

x = Target.Left

y = Target.Top

intCount = intCount + 1

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _

x, y, 35, 20).TextFrame.Characters.Text = intCount

End Sub

Следует учитывать, что приведенный код должен быть помещен в модуль соответствующего рабочего листа.

Теперь при щелчке правой кнопкой мыши на любом месте текущего рабочего листа контекстное меню будет недоступно. Вместо него на экране будет появляться порядковый номер щелчка правой кнопкой мыши (например, при первой попытке вызова контекстного меню вместо него отобразится 1, при второй попытке – 2 и т. д.).

Однако при этом остается возможность вызова контекстного меню с помощью соответствующей клавиши.