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

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

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

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

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

Если вам необходимо программно вызвать команду, доступную в интерфейсе приложения MS Visio у вас есть два способа:

  1. Использовать метод DoCmdarrow-up-right, метод имеет синтаксис:

Application.Docmd(CommandID)

Часть из этих констант вызова команд CommandID могут использоваться при создании пользовательского решения в среде ShapeSheetarrow-up-right (также известной русскоязычному пользователю как таблица свойствarrow-up-right) с применением функции DOCMDarrow-up-right.

Список констант приведен в таблице 1, также в таблице имеется информация о возможности запуска команды используя VBA и ShapeSheet (см. столбцы 3 и 4 соответственно).

На стороннем ресурсе есть вариант этой таблицы с возможностью сортировки и фильтрацииarrow-up-right.

Таблица 1 - Команды DoCmd/DOCMD

2. Использовать объект UIObjectarrow-up-right, который представляет собой коллекции встроенных меню Visio (MenuSetsarrow-up-right), панелей инструментов (Toolbarsarrow-up-right) и ускорителей (AccelTablesarrow-up-right) встроенного пользовательского интерфейса Visio. Эти элементы появились в интерфейсе Visio во времена когда продукт разрабатывался компанией Visio Corparrow-up-right.

Рисунок 1 - Компоненты UIObject в объектной модели Visio

После приобретения Visio корпорацией Microsoft в интерфейс приложения были добавлены коллекции CommandBarsarrow-up-right общие для приложений MS Office.

Наиболее полно настройка пользовательского интерфейса приложения для версий с классическим интерфейсом описана в главе 22 Customizing the Visio User Interfacearrow-up-right в документации SDK Visio 2002arrow-up-right.

В официальном справочнике (актуальной редакции) в описании для вышеперечисленных элементов встроенного меню есть примечание:

circle-info

Примечание:

Начиная с Visio 2010 г. пользовательский интерфейс Microsoft Office Fluent (пользовательский интерфейс) заменил предыдущую систему многоуровневого меню, панели инструментов и области задач. Объекты и члены VBA, которые использовались для настройки пользовательского интерфейса в предыдущих версиях Visio, по-прежнему доступны в Visio, но работают по-другому.

Примеры кода

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

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

Листинг 1 - Код перебор и вывод содержимого коллекции CommandBars

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

В листинге 2 вы можете увидеть код который позволяет скрывать дополнительное окно «Формат фигуры». Это окно появилось в версиях MS Visio с ленточным интерфейсом (2010+).

circle-exclamation

Меня раздражали эти дополнительные усилия на закрытие данного дополнительного окна…

Листинг 2 - Показ/скрытие дополнительного окна "Формат фигуры" /"Format Shape"

Last updated