我知道我可以使用Shape.DrawRectangle
方法在Visio VBA中绘制一个矩形,该方法基本上等效于在手动UI中使用“矩形”工具。但是,Visio形状面板还包括“圆角矩形”。如何使用VBA绘制圆角矩形?
我发现Excel通过msoShapeRoundedRectangle
具有一种等效的形状。但是,我找不到在Visio中创建msoShapeRoundedRectangle
的任何方法,因此它可能是特定于Excel的。除此之外,我在网上或文档中都找不到有关此信息。
答案 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指出的:我使用宏记录器生成了此示例。