Как нарисовать скругленный прямоугольник в Visio VBA? - PullRequest
0 голосов
/ 24 сентября 2018

Я знаю, что могу нарисовать прямоугольник в Visio VBA, используя метод Shape.DrawRectangle, который в основном эквивалентен использованию инструмента "прямоугольник" в ручном пользовательском интерфейсе.Однако панель фигур Visio также содержит «прямоугольник с закругленными углами».Как нарисовать прямоугольник с закругленными углами, используя VBA?

Я обнаружил, что Excel имеет вид эквивалентной формы через msoShapeRoundedRectangle.Однако я не смог найти способ создать msoShapeRoundedRectangle в Visio, так что, возможно, это специфично для Excel.Кроме этого, я не нашел никакой информации об этом онлайн или в документации.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Во-первых, вы рисуете прямоугольник, а во-вторых, вы делаете его округленным:)

Set shp = ActivePage.DrawRectangle(0, 0, 1, 1)
shp.Cells("Rounding").Formula = 0.1

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

--- update ---

Если вы хотите иметь форму «прямоугольник со скругленными углами» (стилизованный прямоугольник с желтой ручкой), вы можете использовать что-то вроде приведенного ниже кода («закругленный»Прямоугольник "shape" находится в шаблоне "basic shape" ("Basic.vss" или "Basic.vssx", в зависимости от версии Visio).Вы открываете этот трафарет и затем перетаскиваете фигуру из этого трафарета на страницу с заданными координатами:

Set stencil = Application.Documents.OpenEx("Basic.vss", visOpenDocked)
ActivePage.Drop stencil.Masters("Rounded Rectangle"), 1, 1
0 голосов
/ 24 сентября 2018

Как-то так?

Dim vsoShape As Visio.Shape
Set vsoShape = Application.ActiveWindow.Page.DrawRectangle(1#, 7.375, 3#, 6.375)
vsoShape.CellsSRC(visSectionObject, visRowLine, visLineRounding).FormulaU = "12.5 pt"

Редактировать: Как заметил @Nikolay: я использовал макрос-рекордер для генерации этого примера.

...