【问题标题】:Programmatic access to Visio shape tooltip以编程方式访问 Visio 形状工具提示
【发布时间】:2020-07-01 06:01:40
【问题描述】:

为避免出现XY problem,以下是我想要完成的操作:选择形状后,我希望屏幕上显示有关该形状的详细文本。

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

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

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

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

【问题讨论】:

    标签: vba visio


    【解决方案1】:

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

    您似乎不知道 Visio 的 shapesheet,其中存储了屏幕提示文本以及您想了解的有关形状的几乎所有内容。

    要访问屏幕提示文本,您只需从所选形状的 shapesheet 中读取注释单元格:

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

    此代码将返回注释文本。

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

    【讨论】:

    • 这真是个好消息。那么如何按名称访问我的“详细信息”形状(我看不到 哪里 你可以命名一个形状,甚至),以便我可以更新它的文本?
    • 想通了。整个 API 非常杂乱无章,但它确实有效。
    • 是的,它有一点学习曲线,但我在另一边,它确实非常强大。坚持下去,VBA 宏记录器对学习这些东西有很大帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-08-04
    • 2011-03-31
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    相关资源
    最近更新 更多