Visio:我可以在visio的每一页上使用CommandButton,而只有一组代码在单个图层上执行相同的任务吗?

时间:2018-08-02 09:50:24

标签: visio

是否有可能在每个页面上有一个按钮(调用),该按钮将使用完全相同的代码,但仅适用于被调用页面上的各个层,从而减少了要编写/修改的代码量或添加到。

具有CommandButton(或ToggleButton)代码的Page-1更改了图层可见性的状态。有用。 如果我一遍又一遍地编写代码,则将Page-2视为Page-1等。

我目前有11个页面,每个页面具有相同的图层属性名称(页面上共有31个图层)...(例如,第1页具有ALLBACK,BAU,Callout .....)(第- 2具有ALLBACK,BAU,Callout .....)等,因此31 * 11 Commandbuttons = 341个将Thie代码减少到31个选项的按钮会很好,但是我找不到这样做的线索。

为清楚起见,每个页面都是一个时间表,每个页面为6个月,第1页是2018_Q34,第2页是2019_Q12,第3页是2019_Q34,等等。

感谢您的任何帮助。 斯蒂芬

2 个答案:

答案 0 :(得分:0)

可以,但是自从我在Visio中完成任何VBA以来已经很长时间了,所以请耐心等待。

打开VBA编辑器,然后选择“文档对象”。假定您正在查看要对其进行这些修改的图形。

创建一个新的子例程,将其命名为任意名称。按下按钮时,这就是您要拨打的电话。编写您需要为页面执行的代码。

现在,在按钮的OnClicked()处理程序中,在文档上调用新的子例程。

我希望我仍然有Visio的副本,我可以在大约五分钟的时间内为您写一个简单的示例。

我希望这会有所帮助。

答案 1 :(得分:0)

这是一个比较晚的答案,但是也许其他人可以使用它。

我建议您在功能区栏中添加一个新菜单,而不是使用这些按钮。我使用此工具来这样做:https://www.rondebruin.nl/win/s2/win001.htm

然后您可以使用此按钮调用sub。在子页面的开头,您可以使用活动页面来获取当前页面并对其进行处理。

要使其更加灵活,请更改子项以接受页面作为参数。然后创建另一个模块,该模块中有多个小子。这些Subs可以通过按钮调用,然后返回调用原始Subs,并传递要编辑的页面。