В предыдущей статье №95 мы рассмотрели процедуру Worksheet_BeforeRightClick, предназначенную для отключения контекстного меню в Excel. В данной статье мы более детально рассмотрим этот процесс, включая дополнительные шаги по перехвату комбинации клавиш <Shift+F10>.
Процедура Worksheet_BeforeRightClick (похожая из статьи №95) размещена в модуле кода объекта "Лист1" (или другого листа, в зависимости от конкретной ситуации). Вот её код:
Этот код отменяет стандартное контекстное меню при правом клике и выводит сообщение о недоступности контекстного меню.
Однако пользователь все еще может вызвать контекстное меню с использованием комбинации клавиш <Shift+F10> (или в моём случае <Shift+Fn+F10> т.к. у меня ноутбук). Для блокировки этой комбинации давайте напишем следующие процедуры в СТАНДАРТНЫЙ модуль VBA:
Процедура Отключение_ShiftF10 устанавливает перехват для комбинации клавиш <Shift+F10>, вызывая процедуру NoShiftF10, которая выводит сообщение о том, что данная комбинация неактивна.
После вызова процедуры Отключение_ShiftF10 и последующего нажатия комбинации клавиш <Shift+F10>, вы увидите сообщение, как показано на скриншоте.
Ну и подключим клавиши обратно через процедуру Подключение_ShiftF10:
Хочу отметить уважаемые читатели, что процедура Worksheet_BeforeRightClick работает только в той рабочей книге, где она была создана, в то время как событие, вызываемое комбинацией клавиш <Shift+F10>, применяется ко всем открытым рабочим книгам.