Visio VBA获取文本的BoundingBox

时间:2012-06-27 13:23:32

标签: vba visio shapesheet

我在Visio中有一个形状是一个组。组形状可以编辑其文本,当它被编辑时,我希望其中一个子形状位于组形状文本的右侧。

为此,我创建了一个VBA函数,它将组形状作为参数,并在形状表上的TextText事件中调用。

因此,例程只需在组形状上调用BoundingBox(visBBoxUprightText)以获取文本的边界并找到bbox右侧的子形状。但界限似乎是错误的。他们有时会回到最后一个角色的左边或右边。

visBBoxUprightText标志是否应该表示除了渲染文本字符周围的矩形坐标之外的其他内容?

编辑: 再看一下,我看到BoundingBox方法查看shape.type属性以确定边界框包含的内容。如果形状类型是visGroup,那么它也会包含子形状,并且似乎没有一个标志来强制它将该组视为一个简单的形状。

所以我想现在的问题是,是否有办法获取文本的BoundingBox,忽略子形状?我尝试使用单独的子形状来保存文本,现在它就像一个魅力。

1 个答案:

答案 0 :(得分:1)

当忽略分组形状中的子形状文本时,Visio不允许您获取文本的边界框。