使用Visio VBA设置容器字体大小遇问题求助
Visio VBA设置容器字体大小不生效的解决方法
问题原因
Visio容器的标题文本并非直接属于容器主形状,而是作为独立的子形状嵌套在容器内部。直接修改容器主形状的Char.Size属性,只会更新界面上的字体大小显示,但实际不会作用到标题文本上——手动修改时Visio会自动关联到标题子形状,而VBA需要显式操作这个子形状。
解决步骤
- 通过容器的
ContainerProperties.TitleShape属性,直接获取标题子形状(这是最可靠的方式,避免通过索引找子形状出错) - 对标题子形状设置
Char.Size属性
修正后的代码示例
' 假设con是已获取的容器形状对象 Dim titleShape As Visio.Shape Set titleShape = con.ContainerProperties.TitleShape ' 检查标题形状存在后设置字体大小 If Not titleShape Is Nothing Then titleShape.Cells("Char.Size").FormulaForceU = "8 pt" End If
补充说明
如果你的容器还有其他需要设置字体的文本元素,也需要找到对应的子形状进行操作。容器的子形状可以通过con.Shapes集合遍历,但标题形状用TitleShape属性是最直接的官方方式,兼容性更好。
内容的提问来源于stack exchange,提问作者WV_Mapper
相关产品推荐
相关产品推荐

