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

Programmatic access to Visio shape tooltip

为了避免 XY problem,我正在尝试完成以下操作:选择形状后,我希望屏幕上显示有关该形状的详细文本。

我首先尝试使用形状数据,但它仅支持单行名称=值对。我的详细信息是一个任意的多行文本块。

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

我的 _SelectionChange 事件处理正常工作,但在调试器中查看 Selection 对象时,我找不到任何 属性 显示屏幕提示信息的所选对象。

Visio 的编程 API 是否过于贫乏以致无法支持他的那种东西?还有其他方法可以做到这一点吗?是否有另一个 工具 可能对此更好(最好是免费的)?

Visio 的 API 能够轻松做到这一点。

您似乎不知道 Visio 的形状表,它是存储屏幕提示文本的地方,以及您想要了解的关于形状的几乎所有信息。

要访问屏幕提示文本,您只需阅读所选形状的形状表中的评论单元格即可:

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

此代码将 return 评论文本。

您在使用 SelectionChange 事件的正确轨道上,当然您正在检查选择计数是否为 1,或者至少 >0。