如何在VBA visio中使用TextChanged事件?

时间:2013-12-19 18:18:12

标签: vba events visio textchanged

这与此问题有关 How do I programmatically/automatically change the text formatting for the text of a Visio shape after I am done with the editing?

我尝试使用一些在编辑形状文本时执行的代码 由于某些原因,如那里所述,在某些我无法隔离的情况下,代码会无休止地执行。 这可能是因为脚本在循环中调用自身。每次编辑形状文本时都应该执行代码但代码本身会改变文本的颜色。我想这会算作一个新的文本更改等等。

我正在考虑使用名为TextChanged的事件。根据文档,这应该在用户完成编辑时执行代码 http://msdn.microsoft.com/en-us/library/office/ff768749.aspx

我找不到在VBA中使用此类事件的示例,这是我需要您帮助的地方 提前致谢 Uni

这是我测试的方式: 我使用CallThis('ThisDocument.warning')从该形状的“TheText”事件调用下面的过程(可通过形状表获得)

子警告(oShape As Visio.Shape) MsgBox(“文本编辑”) 结束子

如果我直接编辑形状文本并按空格键(为现有文本添加空格),则会执行三次

1 个答案:

答案 0 :(得分:1)

好的就是你如何做到这一点:

打开代码编辑器 在Project explorer中选择“ThisDocument” 接下来在ObjectWindow中选择Document 然后在Method下拉框中选择ShapeExitedTextEdit 您将看到如下所示的骨架程序

Private Sub Document_ShapeExitedTextEdit(ByVal oShape As IVShape)

End Sub

每次编辑完成时都会添加要执行的代码