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

时间:2018-09-24 16:52:49

标签: vba visio

我知道我可以使用Shape.DrawRectangle方法在Visio VBA中绘制一个矩形,该方法基本上等效于在手动UI中使用“矩形”工具。但是,Visio形状面板还包括“圆角矩形”。如何使用VBA绘制圆角矩形?

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

2 个答案:

答案 0 :(得分:4)

首先,您绘制一个矩形,然后将其绘制为圆角:)

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

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

---更新---

如果您想要“圆角矩形”形状(带有黄色手柄的样式矩形),则可以使用下面的代码(“圆角矩形”形状位于“基本形状”模具中,即“基本” .vss”或“ Basic.vssx”,具体取决于您的Visio版本)。打开该模具,然后将形状从该模具放到给定坐标的页面上:

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

答案 1 :(得分:1)

像这样吗?

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