Sub СозданиеМеню()
'Если нужно поменять контекстное меню, нужно:
'1. менять код процедуры "СозданиеМеню"
'2. запустить вручную процедуры "УдалениеМеню", "СозданиеМеню"
'3. будет новое меню
'контекстное меню появляется когда курсор находится в таблице
With Application.CommandBars("Table Text")
With .Controls.Add(msoControlButton)
.OnAction = "Script_для_контекстных_меню.Удалить_строку_таблицы"
'"&" перед знаком, означает, что этому знаку назначена горячая клавиша
.Caption = "Удалить строку таблицы &0"
End With
With .Controls.Add(msoControlButton)
.OnAction = "Script_для_контекстных_меню.Добавить_строку_таблицы_1"
'"&" перед знаком, означает, что этому знаку назначена горячая клавиша, ChrW(8595)- это стрелочка вниз
.Caption = "Добавить 1 строку таблицы " & ChrW(8595) & " &1"
End With
With .Controls.Add(msoControlButton)
.OnAction = "Script_для_контекстных_меню.Добавить_строку_таблицы_2"
'"&" перед знаком, означает, что этому знаку назначена горячая клавиша, ChrW(8595)- это стрелочка вниз
.Caption = "Добавить 2 строки таблицы " & ChrW(8595) & " &2"
End With
With .Controls.Add(msoControlButton)
.OnAction = "Script_для_контекстных_меню.Цвет_таблицы_None"
'"&" перед знаком, означает, что этому знаку назначена горячая клавиша
.Caption = "Цвет таблицы None &3"
End With
End With
'________________________________________________________________________________________________________________
'контекстное меню появляется в тексте
With Application.CommandBars("Text")
With .Controls.Add(msoControlButton)
.OnAction = "Script_для_контекстных_меню.УК_РФ"
'"&" перед знаком, означает, что этому знаку назначена горячая клавиша
.Caption = "Меню &1"
End With
'контекстное меню появляется при наведении на Fields
With Application.CommandBars("Fields")
With .Controls.Add(msoControlButton)
.OnAction = "Script_для_контекстных_меню.Действие_с_Fields"
'"&" перед знаком, означает, что этому знаку назначена горячая клавиша
.Caption = "Действие с Fields &1"
End With
End With
'________________________________________________________________________________________________________________
'контекстное меню появляется при наведении на Forms
With Application.CommandBars("Forms")
With .Controls.Add(msoControlButton)
.OnAction = "Script_для_контекстных_меню.Действие_с_Forms"
'"&" перед знаком, означает, что этому знаку назначена горячая клавиша
.Caption = "Действие с Forms &1"
End With
End With
'________________________________________________________________________________________________________________
'контекстное меню появляется при наведении на Form Fields
With Application.CommandBars("Form Fields")
With .Controls.Add(msoControlButton)
.OnAction = "Script_для_контекстных_меню.Действие_с_FormFields"
'"&" перед знаком, означает, что этому знаку назначена горячая клавиша
.Caption = "Действие с Form Fields &1"
End With
End With
End Sub
Sub УдалениеМеню()
Dim УдаляемыйПункт As CommandBarControl
Dim Меню As CommandBar
For Each Меню In Application.CommandBars ' для каждого меню
For Each УдаляемыйПункт In Меню.Controls ' каждый элемент меню
If УдаляемыйПункт.BuiltIn = False Then УдаляемыйПункт.Delete
Next УдаляемыйПункт
Next Меню
End Sub