[CDR 2024] Создание своего меню

ruvimc

Участник
Топикстартер
Сообщения
3
Реакции
0
Как создать свою панель инструментов с подменю?
Что-то типа такого:
Screenshot_1.png

Код:
Application.CommandBars.Add("TestMenu")
Set btnMenu = CommandBars("TestMenu").Controls.AddCustomButton("2cc24a3e-fe24-4708-9a74-9c75406eebcd",  "Menu")
Вот так я умею создавать панель и кнопку на ней. Но вот чтобы создать меню и подменю - не знаю как.
Можете привести пример? Спасибо!
 
гуглите строчку: application.commandbars.add submenu
вот вам сходу два примера:
 
  • Спасибо
Реакции: ruvimc, DukereD и mnemonix
Хороший вопрос всегда содержит бОльшую часть ответа. Вы сами пример привели, там и посмотрите как реализовано.
Спасибо большое за ответ.
Если под словом "пример" Вы имеете ввиду скриншот, то там Ecut, у которого код закрыт. Да и меню там создаются при установке путём импорта рабочего пространства.
Если под словом "пример" Вы имеете ввиду кусочек кода, то я умею создавать CustomButton, присваивать ей имя и иконку. Вопрос был именно как создать меню на своей панели.
 
гуглите строчку: application.commandbars.add submenu
вот вам сходу два примера:
Спасибо большое за ссылки. Поверьте, я это всё пересмотрел до того, как задать вопрос на форуме.
Везде ссылки касаются MSOffice и предложенный код в кореле не работает.
Например
Код:
    Set menutext = Application.CommandBars("Cell").Controls.Add(msoControlPopup)
    With menutext
        .Caption = "MainMenu"
        .Enabled = True
    End With
Вот здесь я не могу задать Caption. Ошибка "Method 'Caption' of object ICUIControl failed"
Спасибо.
 
Ну, в любом случае вы сами идете к ответам на свои вопросы
Ecut, у которого код закрыт.
Код открывается совсем несложно, в сети есть стопятьсот туторов по этому вопросу. Другое дело, что если действительно

меню там создаются при установке путём импорта рабочего пространства.
то вся затея выглядит безблагодатной, ибо, в этом случае получается, что примеры того, что это принципиально возможно напрочь отсутствуют, а значит, скорее всего под корелом это сделать средствами VBA попросту нельзя.