如何在 Visio VBA 中绘制圆角矩形?

How do I draw a rounded rectangle in Visio VBA?

我知道我可以使用Shape.DrawRectangle方法在VisioVBA中画一个矩形,这基本上等同于使用手册UI中的"rectangle"工具。但是,Visio 形状面板还包括一个 "rounded rectangle"。如何使用 VBA 绘制圆角矩形?

我发现 Excel 通过 msoShapeRoundedRectangle 有一种等效的形状。但是我找不到在 Visio 中创建 msoShapeRoundedRectangle 的任何方法,所以它可能是 Excel 特定的。除此之外,我没有在网上或文档中找到任何关于此的信息。

是这样的吗?

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 指出的那样:我使用宏记录器生成了这个示例。

首先,你画了一个矩形,其次,你把它弄圆了:)

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

这里的一个常见建议是使用宏记录器,手动执行这些步骤,然后查看生成的代码。

---更新---

如果你想要 "rounded rectangle" 形状(带有黄色手柄的样式矩形),你可以使用类似下面的代码("rounded rectangle" 形状存在于 "basic shapes" 模板中,即 "Basic.vss" 或 "Basic.vssx",具体取决于您的 Visio 版本)。您打开该模板,然后将形状从该模板拖放到给定坐标处的页面:

Set stencil = Application.Documents.OpenEx("Basic.vss", visOpenDocked)
ActivePage.Drop stencil.Masters("Rounded Rectangle"), 1, 1