Для русскоязычных пользователей Visio. Начинающих и профессионалов. Где взять, как сделать, что купить и т.д.

Кроме программ

Буквально после первых шагов в Visio возникает ситуация, когда еще страшно браться за программирование, но уже хочется поглубже влезть в управление шейпами. Делать свои шейпы, в том числе смарт-шейпы, связывать шейпы с данными, сделать специфический стиль линнии или заливку и т.д. Наконец, требуется добавить интерактивность, например, переключить видимое изображение шейпа или настроить шейп (выбрать ту или иную опцию).

Visio позволяет очень много делать и без программирования. Основной инструмент при этом - шейп-лист (ShapeSheet или как его еще иногда называют - "таблица фигур").

Обычно возникают такие вопросы:

- как добиться того или иного поведения шейпа и можно ли это вообще сделать без программирования;

- как делать некоторые специфические виды шейпов (легенды, data graphics, контейнеры...);

- как создавать и изменять темы, стили линий, заливки;

- как сделать шейп чувствительным к командам пользователя

Примеры задач, которые решаются с помощью шейп-листа:

- Сделать шейп, высота которого изменяется в зависимости от количества текста в шейпе.

- Сделать "мультифигуру", чтобы шейп содержал несколько изображений и можно было выбрать нужное.

- Сделать шейп, изображение которого изменяется на отраженное при "правом" и "левом" подключении к родительскому шейпу.

- Сделать шейп невидимым после удалении текста.

- Добавить контекстное меню для выбора одной из возможных конфигураций изображения.

- Подкрашивать шейп при перемещении.

И этот список можно наращивать до бесконечности. Большинство из таких возможностей реализуется как зависимости между ячейками шейп-листа. В ячейке может находиться либо постоянное значение, либо формула, связывающая ячейку с значением другой ячейки. Как только появляются хитрые связи с формулами, так шейп становится "умным", приобретает специфическое поведение.

Чаще всего достаточно иметь просто зависимость между ячейками. Тогда изменение одной ячейки будет автоматически приводить к изменению другой, зависимой. Однако иногда требуется "толкнуть" первичное изменение, причем сделать эту операцию поудобнее для неподготовленного пользователя. Смотрим, что предлагает шейп-лист для такого случая:

- изменение ShapeData;

- использование секции Action для создания контекстного меню;

- использование встроенных событий;

- настройка поведения шейпа по двойному щелчку.

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

Изменение ShapeData. Простейший способ настройки шейпа. Простейший, потому что достаточно задать просто данные шейпа, а все остальное выполняется штатным инструментарием. Уже есть специальное окно, которое и отобразит данные шейпа, и примет изменения данных.

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

Встроенные события. Привычный подход к обработке событий - это когда пишется (например, на VBA) код обработчика, который запускается при наступлении события. Но есть несколько событий, которые привязаны к каждому шейпу и могут работать даже без программного кода. Это перемещение шейпа, изменение текста, "опускание" шейпа на страницу и двойной щелчок по шейпу.

Действия по двойному щелчку, помимо прямого ввода формул в ячейку, могут настраиваться и через специальное диалоговое окно Format / Behavior, что несколько упрощает работу с ячейкой EventDblClick.

Рекомендуемые источники информации по работе с шейп-листом

Документация Microsoft

Подфорумы visguy и visio.getbb.ru

База знаний от Surrogate

 

Перечень литературы

13.06.2022  Taking Visio Actions Rows to the limit   David Parker    

19.07.2019  What makes Visio smart?   David Parker    

27.06.2019  Про контекстные меню   Геннадий Туманов    

26.08.2018  ShapeSheet Formula AutoComplete, Other Improvements   Microsoft    

20.02.2017  Understanding Visio’s Color Formulas   David Parker    

09.02.2017  More secrets of the Visio Legend shape   David Parker    

08.01.2017  A Blackstar alphabet in Visio   David Parker    

12.07.2016  Секция Actions - описание   Vigil   Видео 

13.10.2011  Formatting Custom Units in Visio   David Parker    

01.01.2010  Microsoft Visio 2010 Developer Training   Microsoft    

05.11.2007  A Working Visio Clock   David Parker    

  Как создать будильник? Методы создания интерактивных объектов   Ничков А.В.    

Ответы на вопросы

Сортировка меню Action

Я пытаюсь создать меню Action, что делал уже несколько раз. Но теперь мне нужно, чтобы пункты располагались в самом низу списка. Знаю, что есть свойство Sort Order. Но оно действует только в верхней части, выше пункта Show ShapeSheet. Можно ли расположить свой пункт в самом низу списка?  

Просто вставьте знак % перед текстом меню. Например %Mark for Delete. Напомню, что есть еще специальные знаки:Знак "&" для подчеркивания следующего символа. Знак "_" для вставки разделителя. Источник - http://visguy.com/vgforum/index.php?topic=8816