将参数传递给 VBA 宏

发布于 2024-07-09 15:45:12 字数 139 浏览 5 评论 0原文

当我双击 Visio 形状时,我尝试运行宏。

我想将形状对象传递给 VBA 宏,以便我可以根据形状对象的 id 在宏中执行某些操作。

是否可以将参数传递给 VBA 宏。 如果是,请告诉我如何?

谢谢。

I am trying to run a macro when I double click on Visio shapes.

I want to pass the shape object to the VBA macro so that I could do something in the macro depending on the id of the Shape object.

Is it possible to pass the parameter to VBA macro. If yes, please let me know how?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱的那么颓废 2024-07-16 15:45:12

您可以将宏作为 EventDblClick 事件放在要观看的形状上。 为此,您可以使用 CallThis 函数 (http:// /msdn.microsoft.com/en-us/library/aa212649(office.11​​).aspx),以便在每次双击形状时调用宏。

但这需要您修改您想要观看的每个形状的形状表。 如果您为您想要观看的形状提供主控,那么这应该不是什么大问题,但否则您必须编写代码将事件添加到您想要观看的每个形状(尽管您每当添加形状时,可以使用文档上的 Document_ShapeAdded 事件将事件添加到形状表中)

You can put your macro as the EventDblClick event on the shapes you want to watch. To do this you would use the CallThis function (http://msdn.microsoft.com/en-us/library/aa212649(office.11).aspx) to have your macro called every time a shape is double-clicked.

This would require though, that you modify the shapesheet for every shape you want to watch. If you're providing the master(s) for the shapes you want to watch it shouldn't be a big deal, but otherwise you'd have to write code that will add the event to every shape you want to watch (though you could use the Document_ShapeAdded event on a document to add your event to the shapesheet whenever a shape is added)

月棠 2024-07-16 15:45:12

当您单击某个对象时,选择会发生变化。 您可以在宏中使用 Selection 对象来引用当前选定的对象。

我不确定宏是否可以通过双击运行,但我的 VBA 经验并非来自 Visio。 通过谷歌搜索发现,这似乎是可能的。 如果您将其作为 CommandBar 上的按钮,甚至在上下文菜单中花费更多精力,那么在任何情况下您都将被限制为不带参数的 Sub 过程。

When you click on an object, the Selection changes. You can use the Selection object in your macro to refer to the currently selected object.

I'm not sure if a macro can be run on double click, but my VBA experience does not come from Visio. As bit of googling turns up that this somehow seems to be possible. If you put it as a Button on a CommandBar, with a little more effort even in the context menu, you would be restricted to a Sub procedure without parameters in any case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文