⚒️
MS Visio Automation Hints
  • 📖MS Visio VBA
  • 💡Объектная модель Visio
  • ⚠️Проблема с отображением кириллицы в VBA-редакторе
  • 💻Как изменить координаты фигуры программно
  • 📌Преобразование в абсолютные координаты страницы
  • 🕹️Эмуляция работы с интерфейсом приложения
  • 📜Применение CommandBars в Visio 2010+
Powered by GitBook
On this page
  • Зачем нужна эмуляция работы с интерфейсом
  • Как выполняется эмуляция
  • Примеры кода

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

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

PreviousПреобразование в абсолютные координаты страницыNextПрименение CommandBars в Visio 2010+

Last updated 1 year ago

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

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

  • ;

  • ;

  • Изменения настроек документа или ;

  • ;

  • .

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

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

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

Application.Docmd(CommandID)

Часть из этих констант вызова команд CommandID могут использоваться при создании пользовательского решения в среде (также известной русскоязычному пользователю как ) с применением .

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

На стороннем ресурсе есть .

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

Примечание:

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

Примеры кода

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

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

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

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

Это окно занимает довольно большую часть относительно всего окна приложения Visio, у этого окна нет встроенной команды скрытия или сворачивания и закрыть его можно только нажав кнопку x, в верхнем правом углу этого окна!

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

2. Использовать , который представляет собой коллекции встроенных меню Visio (), панелей инструментов () и ускорителей () встроенного пользовательского интерфейса Visio. Эти элементы появились в интерфейсе Visio во времена когда продукт разрабатывался компанией .

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

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

Наиболее полно настройка пользовательского интерфейса приложения для версий с классическим интерфейсом описана в главе 22 в .

🕹️
объект UIObject
MenuSets
Toolbars
AccelTables
Visio Corp
CommandBars
Customizing the Visio User Interface
документации SDK Visio 2002
метод DoCmd
ShapeSheet
таблица свойств
функции DOCMD
вариант этой таблицы с возможностью сортировки и фильтрации
Таблица 1 - Команды DoCmd/DOCMD
Листинг 1 - Код перебор и вывод содержимого коллекции CommandBars
Листинг 2 - Показ/скрытие дополнительного окна "Формат фигуры" /"Format Shape"
Вызов различных диалоговых окон
Переключение инструментов рисования
приложения
Показ/скрытие дополнительных окон приложения
Запуск надстроек