Links
Comment on page
🕹

Эмуляция работы с интерфейсом приложения

Описание программной эмуляции запуска команд (нажатия клавиш).

Зачем нужна эмуляция работы с интерфейсом

Для выполнения вызова команд, переключения различных режимов, активации элементов интерфейса для доступа к которым нужно долго перемещаться по вкладкам ленты и/или элементам меню приложения. Несколько примеров:

Как выполняется эмуляция

Если вам необходимо программно вызвать команду, доступную в интерфейсе приложения MS Visio у вас есть два способа:
  1. 1.
    Использовать метод DoCmd, метод имеет синтаксис:
Application.Docmd(CommandID)
Часть из этих констант вызова команд CommandID могут использоваться при создании пользовательского решения в среде ShapeSheet (также известной русскоязычному пользователю как таблица свойств) с применением функции DOCMD.
Список констант приведен в таблице 1, также в таблице имеется информация о возможности запуска команды используя VBA и ShapeSheet (см. столбцы 3 и 4 соответственно).
Таблица 1 - Команды DoCmd/DOCMD
2. Использовать объект UIObject, который представляет собой коллекции встроенных меню Visio (MenuSets), панелей инструментов (Toolbars) и ускорителей (AccelTables) встроенного пользовательского интерфейса Visio. Эти элементы появились в интерфейсе Visio во времена когда продукт разрабатывался компанией Visio Corp.
Рисунок 1 - Компоненты UIObject в объектной модели Visio
После приобретения Visio корпорацией Microsoft в интерфейс приложения были добавлены коллекции CommandBars общие для приложений MS Office.
Наиболее полно настройка пользовательского интерфейса приложения для версий с классическим интерфейсом описана в главе 22 Customizing the Visio User Interface в документации SDK Visio 2002.
В официальном справочнике (актуальной редакции) в описании для вышеперечисленных элементов встроенного меню есть примечание:
Примечание:
Начиная с Visio 2010 г. пользовательский интерфейс Microsoft Office Fluent (пользовательский интерфейс) заменил предыдущую систему многоуровневого меню, панели инструментов и области задач. Объекты и члены VBA, которые использовались для настройки пользовательского интерфейса в предыдущих версиях Visio, по-прежнему доступны в Visio, но работают по-другому.

Примеры кода

Перечисление CommandBars

В листинге 1 представлен код, выполняющий перебор коллекции CommandBars. А также полученный вывод наименований объектов коллекции.
Листинг 1 - Код перебор и вывод содержимого коллекции CommandBars

Закрытие дополнительного окна «Формат фигуры»

В листинге 2 вы можете увидеть код который позволяет скрывать дополнительное окно «Формат фигуры». Это окно появилось в версиях MS Visio с ленточным интерфейсом (2010+).
Это окно занимает довольно большую часть относительно всего окна приложения Visio, у этого окна нет встроенной команды скрытия или сворачивания и закрыть его можно только нажав кнопку x, в верхнем правом углу этого окна!
Меня раздражали эти дополнительные усилия на закрытие данного дополнительного окна…
Листинг 2 - Показ/скрытие дополнительного окна "Формат фигуры" /"Format Shape"