Как в excel VBA добавить свой пункт в контекстное меню
Хотел добавить пункт в меню по вызову через правую кнопку мышки, который бы вставлял сегодняшнюю дату, в ячейку. Вот такой код
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim MyButton As CommandBarButton
Set MyButton = Application.CommandBars.FindControl(ID:=312)
If MyButton Is Nothing Then
Set MyButton = Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton)
MyButton.Caption = "Insert Date"
MyButton.OnAction = "InsertDate"
MyButton.BeginGroup = True
End If
End Sub
Sub InsertDate()
ActiveCell.Value = Date
End Sub
Проблема заключается в том что он работает не правильно, дату он не вставляет, и постоянно при нажатие правой кнопки мышки создает еще новый пункт. Как мне правильно добавить такой макрос.
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Этот код нужно поместить в модуль "ЭтаКнига". Он будет срабатывать при каждом открытии книги и добавлять нужный пункт контекстного меню.
Private Sub Workbook_Open()
With Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, Temporary:=True)
.Caption = "Insert Date"
.OnAction = "InsertDate"
.FaceId = 125
.BeginGroup = True
End With
End Sub
Этот код нужно поместить в обычный модуль (создать, если его нет)
Sub InsertDate()
ActiveCell.Value = Date
End Sub