With Application.CommandBars.Add _
(Name:="Документы ...", Temporary:=True)
With .Controls.Add(Type:=msoControlPopup)
.Caption = "Архив"
With .Controls
With .Add(Type:=msoControlButton)
.FaceId = 444
.Caption = "Просмотр"
.OnAction = "Макрос1"
End With
With .Add(Type:=msoControlButton)
.FaceId = 23
.Caption = "Открыть"
.OnAction = "Макрос2"
End With
End With
End With
With .Controls.Add(Type:=msoControlPopup)
.Caption = "База данных"
With .Controls
With .Add(Type:=msoControlButton)
.FaceId = 1643
.Caption = "Поставщики"
.OnAction = "Макрос3"
End With
With .Add(Type:=msoControlButton)
.FaceId = 52
.Caption = "Покупатели"
.OnAction = "Макрос4"
End With
End With
End With
.Visible = True
End With
Панель инструментов в Vba
Пробовал записать макрос и потом его код использовать, но макрос после записи выполняться отказывается.
Прям не знаю чего делать. Помогите, плиз.
Код:
Комментарий :
- Панель инструментов, созданная с использованием вышеопубликованного кода, будет автоматически удалена при закрытии MS Excel.
- Не забывайте, что панель инструментов обязательно должна иметь уникальное имя, и следовательно при попытке создать ещё одну панель, используя этот же макрос, Вы получите ошибку. Эту же ошибку можно получить, если после создания панели инструментов вручную и записи своих действий макрорекордером, не удаляя панель инструментов "запустить" только что созданный макрос.
Примечание :
- Подобную панель инструментов можно создать вручную, а затем просто вложить её в нужную рабочую книгу. Для этого в меню Вид выберите пункт Панели инструментов и команду Настройка. Затем нажмите кнопку Вложить и в списке Панели пользователей выделите нужную панель и нажмите кнопку Копировать. После чего нажмите кнопку OK и Закрыть. И не забудьте сохранить свою рабочую книгу.
После этого Вам останется только удалять свою панель инструментов перед закрытием книги. Для этого можно использовать событие Private Sub Auto_Close() которое можно расположить в любом стандартном модуле или событие Private Sub Workbook_BeforeClose(Cancel As Boolean) месторасположением которого является модуль ThisWorkbook/ЭтаКнига
Не забывайте, что вложить можно даже программно созданную панель инструментов, но только, если значение именованного аргумента Temporary:=False
Спасибо большое! То что нужно!