ShapeSheet — это таблица свойств фигуры, в ячейках которой хранятся размеры, положение, цвет и формулы. Меняя формулы, можно создавать фигуры, которые сами подстраиваются под размер, данные и условия. Определение термина есть в глоссарии.
Как открыть ShapeSheet
Включите вкладку «Разработчик»: «Файл» → «Параметры» → «Дополнительно» → «Режим разработчика». Подробнее — в статье FAQ по Visio.
Выделите фигуру на листе.
На вкладке «Разработчик» нажмите «Показать ShapeSheet» или выберите это действие в контекстном меню фигуры.
Разделитель аргументов в формулах берётся из региональных настроек Windows. В русских региональных настройках это точка с запятой, как показано в таблицах ниже.
Управление формулами и действиями
Функция или ячейка
Что делает
GUARD(выражение)
Защищает формулу от перезаписи: при перетаскивании или изменении размера фигуры значение остаётся вычисляемым.
DEPENDSON(ячейка1; ячейка2; …)
Задаёт зависимости: формула пересчитывается при изменении перечисленных ячеек.
SETF(ячейка; формула)
Записывает формулу в другую ячейку. Используется в действиях и событиях фигуры.
SETATREF(ячейка; ссылка)
Записывает в ячейку ссылку на другую ячейку.
DOCMD(код_команды)
Выполняет команду интерфейса Visio по её числовому коду.
RUNADDON("имя")
Запускает надстройку Visio.
RUNMACRO("макрос")
Запускает макрос VBA.
Условия и логика
Функция или ячейка
Что делает
IF(условие; значение_если_да; значение_если_нет)
Логическое ветвление.
AND(a; b), OR(a; b), NOT(a)
Логические операции.
CHOOSE(номер; значение1; значение2; …)
Возвращает значение по номеру в списке.
Числа и оформление
Функция или ячейка
Что делает
ABS, INT, MAX, MIN, MOD, ROUND, SQRT
Стандартные математические функции.
PI()
Число пи.
RGB(красный; зелёный; синий)
Задаёт цвет по составляющим от 0 до 255.
THEMEVAL()
Возвращает значение из текущей темы оформления, например цвет или шрифт.
FORMAT(значение; "формат")
Преобразует значение в текст по заданному формату.
NOW(), TODAY()
Текущие дата и время, текущая дата.
Ссылки на ячейки
Функция или ячейка
Что делает
Width, Height, Angle
Ширина, высота и угол поворота текущей фигуры.
PinX, PinY, LocPinX, LocPinY
Положение фигуры на странице и положение её точки вращения внутри фигуры.
Sheet.5!Width
Ячейка другой фигуры: здесь ширина фигуры с идентификатором 5.
ThePage!PageWidth
Ячейка страницы: здесь ширина страницы.
Prop.Имя
Данные фигуры (пользовательское свойство) с указанным именем.
User.Имя
Пользовательская ячейка с указанным именем, удобна для хранения параметров.
Controls.Row_1, Actions.Row_1.Action
Маркеры управления и действия контекстного меню.
Примеры формул
Формула
Результат
Width*0.5
В ячейке Height: высота всегда вдвое меньше ширины.
GUARD(Height*2)
В ячейке Width: ширина вдвое больше высоты, и перетаскивание маркеров не заменит формулу числом.
Включите вкладку «Разработчик», выделите фигуру и нажмите «Показать ShapeSheet». То же действие доступно в контекстном меню фигуры. Если вкладки «Разработчик» нет, включите режим разработчика в параметрах Visio.
Зачем нужна функция GUARD в ShapeSheet?
GUARD защищает формулу от перезаписи. Без неё Visio заменит формулу в ячейке числом, когда вы вручную измените размер или положение фигуры.
Почему формула с запятыми не принимается в ShapeSheet?
Разделитель аргументов зависит от региональных настроек Windows. В русских региональных настройках это чаще всего точка с запятой, как в формулах Excel.
Нужно ли знать VBA, чтобы работать с ShapeSheet?
Нет. Формулы ShapeSheet работают без программирования. VBA нужен, когда необходимо автоматизировать действия над документом, а не поведение отдельной фигуры.