以编程方式访问Visio形状工具提示

时间:2015-09-30 00:05:36

标签: visio visio-vba

为了避免XY problem,这就是我想要完成的事情:当选择了一个形状时,我希望有关该形状的详细文字显示在屏幕上。

我首先尝试使用Shape Data,但它仅支持单行name = value对。我的详细信息是一个任意的多行文字blob。

我的下一个想法是使用形状的ScreenTip(也就是工具提示)来保存文本数据,然后编写一些VBA代码来处理_SelectionChanged事件。当选择一个形状时,我想将它的屏幕提示文本复制到另一个对象的文本中(我的详细信息面板)。

我得到_SelectionChange事件处理工作,但是在调试器中调用Selection对象时,我找不到公开ScreenTip信息的所选对象的任何属性。

Visio的编程API太缺乏支持他的那种东西吗?还有其他方法可以做到这一点吗?是否有其他工具可能更好(最好免费)?

1 个答案:

答案 0 :(得分:3)

Visio的API能够轻松地执行此操作。

您似乎并不了解Visio的形状表,这是存储屏幕提示文字的地方,以及您想要了解的任何形状的任何内容。

要访问屏幕提示文字,您只需从所选形状的形状表中读取评论单元格:

Application.Selection(1).CellsU("Comment").ResultStr(visNone)

此代码将返回评论文本。

您使用SelectionChange事件进入了正确的轨道,但当然您要检查选择计数= 1,或者至少> 0。