Проверить, включен ли элемент управления Outlook
Я работаю над outlook add ins. Я должен проверить, включена ли кнопка ленты outlook (idmso = "EncryptMessage") или нет.
Я попытался решить с помощью commandbars.GetEnabledMso ("idmso")
https://msdn.microsoft.com/EN-US/library/office/ff862202(v=office.14).aspx
но для перспективы реальная проблема, с которой я сталкиваюсь - это получить объект панели команд.
https://msdn.microsoft.com/en-us/library/office/ff865324(v=office.14).aspx
Пожалуйста, дайте мне знать решение для решения проблемы.
2 ответа
Вы можете попробовать использовать Accessibility API для этого.
Если использование Redemption является опцией, она предоставляет ленту и ее элемент управления через объект SafeInspector
set sInspector = CreateObject("Redemption.SafeInspector")
sInspector.Item = Application.ActiveInspector
set Ribbon = sInspector.Ribbon
oldActiveTab = Ribbon.ActiveTab
Ribbon.ActiveTab = "Options"
set Control = Ribbon.Controls("Encrypt Message")
MsgBox Control.Enabled
Ribbon.ActiveTab = oldActiveTab 'restore the active tab
Вы можете попробовать использовать API специальных возможностей, чтобы найти кнопку на ленте инспектора и проверить, включена ли она.
Если использование Redemption является вариантом (я являюсь его автором), он предоставляет ленту и ее элемент управления через объект SafeInspector.
set sInspector = CreateObject("Redemption.SafeInspector")
sInspector.Item = Application.ActiveInspector
set Ribbon = sInspector.Ribbon
oldActiveTab = Ribbon.ActiveTab
Ribbon.ActiveTab = "Options"
set Control = Ribbon.Controls("Encrypt")
MsgBox Control.Enabled
Ribbon.ActiveTab = oldActiveTab 'restore the active tab