Excel 2007 - Поймать открытие кнопки панели команд - PullRequest
1 голос
/ 30 июня 2009

До Excel 2007 мы использовали для перехвата события открытия файла в Excel с помощью vba, чтобы мы могли показать наш собственный диалог открытия, который знал, как найти клиентские папки. В Excel 2007 это больше не работает, у кого-нибудь есть идеи о том, как это работает сейчас>

Основной предпосылкой ранее было создание класса с кнопкой на панели команд и связанным событием, а затем установка этого commandBarButton при открытии приложения, которое будет его перехватывать, но теперь этого не происходит. Есть ли другой путь сейчас?

Public WithEvents cmdBold As Office.CommandBarButton Закрытая подпрограмма cmdBold_Click (ByVal Ctrl As Office.CommandBarButton, _ CancelDefault As Boolean) 'Вставьте код, который вы хотите запустить в ответ на это событие. End Sub

http://msdn.microsoft.com/en-us/library/aa189726(office.10).aspx

1 Ответ

1 голос
/ 01 июля 2009

Пока не совсем в ногу с 2007 годом, но я думаю, что изменение пользовательского интерфейса ленты изменило способ работы вашего приложения.

Из раздела «Соображения разработчика» этой длинной статьи MSDN :

Совместимость устаревших решений и настроек

Многие компании полагаются на обычай приложения, созданные на Microsoft Офисная система и решения, которые интегрировать Microsoft Office с сторонние приложения. Многие из эти решения изменяют пользовательский интерфейс Office через объектную модель панели команд. В выпуске 2007 Office этот код продолжает работать - в большинстве случаев без изменений.

Изменения, внесенные в панели инструментов в Office 2003 обычно появляются в 2007 году релиз на вкладке Надстройки в Лента (см. Рисунок 18). Тип настройка, которая появляется, зависит от оригинальный дизайн надстройки. За пример, если добавлена ​​настройка элементы к предыдущей структуре меню, интерфейс Office Fluent создает меню Группа команд. Если пользовательский код добавлены элементы на встроенные панели инструментов, пользовательский интерфейс Office Fluent создает панель инструментов Группа команд, которая содержит эти управления. Панели инструментов, добавленные надстройкой отображаются в группе пользовательских панелей инструментов.

Щелчки мыши и другие события на Вкладка надстройки вызывает те же результаты как в предыдущих меню и панели инструментов интерфейс. Код надстройки, который выполняется когда кнопка панели инструментов нажата в предыдущий пользовательский интерфейс все еще выполняется, когда пользователь нажимает соответствующую кнопка в группе панелей инструментов Вкладка «Надстройки» в выпуске 2007 года.

Запросы на скрытие меню и панелей инструментов или удалить элементы управления игнорируются. Если надстройка пытается перепрофилировать встроенная функциональность путем изменения поведение пунктов меню или панели инструментов кнопки, такие как Сохранить или Печать Предварительный просмотр, копии приложения Office элемент управления на вкладке Надстройки и меняет его там, оставляя оригинал контроль на ленте или Microsoft Меню кнопки Office без изменений.

Хотя можно удалить или отключить встроенные элементы управления программно в выпуске 2007 года, надстройки, которые удаляют или переупорядочивают меню элементы и элементы панели инструментов в предыдущем выпуски Microsoft Office не имеют эффект при загрузке.

Итак, вы можете обнаружить, что у вас есть дополнительный элемент управления «Открыть» на вкладке «Надстройки».

Кажется, что перепрофилирование встроенного элемента управления возможно только с использованием XML. Из ранее в том же документе:

Возможности расширения

Повторное использование встроенных элементов управления. Вы можете взять на себя функцию любого встроенного элемента управления в любом месте пользовательского интерфейса, написав одну строку XML, которая соединяет пользовательский код с каждым экземпляром встроенного элемента управления. Вы можете изменить элемент управления для выполнения пользовательского кода и, при необходимости, продолжить работу со встроенными функциями.

Наконец, эта еще более длинная статья MSDN объясняет, как работает настройка XML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...