2017-01-24 2 views
1

Я пытаюсь создать свое собственное меню в ленте Excel (2010).Невозможно редактировать меню Excel с помощью VBA

Я написал следующий Sub, чтобы создать «тестовое» меню, но я не могу найти никаких доказательств того, что меню было создано иначе, чем оно указано в коллекции Controls.

Мне кажется, что я сделал все правильно, потому что я искал кучу образцов кода (example, это тоже не работает для меня) и от других людей.

Я думаю, мой вопрос двоякий, делает ли код ниже, создавая новое меню в YOUR Excel, и если да, то почему бы это не сработало на моем компьютере?

Sub CreateInterface() 
    Dim Controls As CommandBarControls 
    Dim CmdBar As CommandBarControl 
    Dim NewMenu As CommandBarControl 

    Set Controls = Application.CommandBars("Worksheet Menu Bar").Controls 

    Set NewMenu = Controls.Add(Type:=msoControlPopup, Temporary:=True, before:=Controls.Count) 
    NewMenu.Caption = "&Test" 
    NewMenu.Visible = True 
    For Each CmdBar In Controls 
     Debug.Print CmdBar.Caption & "|" & CmdBar.Tag 
    Next 
End Sub 

EDIT:

Благодаря D.O. Я вижу, что код работает, он просто не создает новое меню на ленте (например, по умолчанию («Главная», «Вставка», «Макет страницы» и т. Д.)).

Насколько я знаю, это должно было создать новое меню, а не элемент в одном из меню, как я могу создать новое меню?

+0

Это сработало для меня. У меня есть Excel 2010. –

+0

В этом случае это должно быть связано с настройкой Excel вне моего кода. – sgp667

+0

@ D.O. спасибо за проверку – sgp667

ответ

1

Насколько мне известно, старый (до 2007 года) CommandBars и Controls устарел настолько, что он добавляет только кнопки на вкладку ленты надстроек. Это касается обратной совместимости со старыми решениями Office, поэтому их можно использовать (в некоторой степени) в приложениях 2007+ Office.

Путь вперед (если вы планируете использовать Office 2007 и выше) - это изменить ленту. Это совершенно новая парадигма, и настройки в реальном времени выполняются совершенно по-другому, но если вы ее повесите (это не так сложно), это очень полезно. Я предлагаю Google по учебнику по рисованию ленты и использовать «Custom UI editor ", чтобы добавить ваш ленточный код в файлы Office. Ron de Bruin Веб-сайт всегда является хорошим ресурсом для получения дополнительной информации.

Смежные вопросы