VBA: Как я могу отключить некоторые опции из контекстного меню, вызываемого правой кнопкой мыши - PullRequest
1 голос
/ 23 марта 2020

Мне нужно

1) Отключить все следующие параметры в контекстном меню правой кнопкой мыши «Ячейки»

a.  Paste options
b.  Insert
c.  Delete
d.  Format Cell

2) Отключить все следующие параметры справа от «Колонки» щелкните контекстное меню

a.  Paste options
b.  Insert
c.  Delete
d.  Clear Content
e.  Format Cell

3) Отключите все следующие параметры в контекстном меню правой кнопкой мыши «Rows»

a.  Paste options
b.  Insert Copied Cells only (Not Insert)
c.  Format Cell

4) Отключите все следующие параметры справа «Rows» - щелкните контекстное меню для указанного c диапазона строк (например, строки от 1 до 3)

a.  Insert
b.  Delete
c.  Clear Content

5) Отключите все следующие параметры в контекстном меню «Кнопка управления формой»

a.  Format Control

Ценю любую помощь

1 Ответ

2 голосов
/ 23 марта 2020

Вот простой способ добиться того, чего вы хотите. Для большинства из них вы можете использовать именно то, что вы видите в меню правой кнопки мыши. Например, для Insert вы видите Insert....

Application.CommandBars("Cell").Controls("Insert...").Visible = True 'False

Аналогично для других. Я не нашел способ отключить Paste Options: или значки в нем. Однако вы можете отключить Paste Special в Paste Options:, как я упоминал выше, используя Paste Special...

Примечание : Ну, это наименьшая из ваших проблем. Помните, что пользователи все еще могут использовать ленту или сочетания клавиш для достижения тех целей, которые вы отключили;)

Редактировать

К сожалению, у меня не работает. Это как-то связано с таблицами? потому что клетки являются частью таблицы! - Афшин Давуди 8 минут go

Да, для этого вы должны использовать

Application.CommandBars("List Range Popup").Controls("Delete").Visible = False

ДО

enter image description here

ПОСЛЕ

enter image description here

Афшин Давуди: как я могу отключить опции в контекстном меню "Колонка"? или ряды? (Из расширенного чата)

Использование

Application.CommandBars("Column").Controls("Delete").Visible = False
Application.CommandBars("Row").Controls("Delete").Visible = False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...