宏的录制和运行问题

以下是在 Visual Studio 中录制和运行宏时可能遇到的问题列表。

宏记录问题

记录宏时,环境跟踪更改的元素和所按的键,并根据此输入生成宏代码。 然而,并不是每个 UI 元素或事件都可以被记录下来。 宏记录对象仅限于:

  • 文本/代码编辑器,如 Visual Studio 代码编辑器。

  • Visual Studio 命令与菜单项。 默认情况下,如果命令本身不对特定于 UI 功能的自动化模型发出代码,则 Visual Studio 按名称录制命令调用。

  • 常用的树视图工具窗口,如解决方案资源管理器。

  • “添加项”对话框。

  • “查找和替换”对话框。

  • 常规窗口事件,如激活或关闭窗口。

如果在记录宏的过程中,碰巧操作一个不生成宏代码的环境元素,并且也没有经过标准环境命令(如在对话框中的 Edit 控件中进行编辑),则宏中会有一个记录间隔,宏由此将不按预期那样工作。

如果发生了这种情况,可以手动编辑宏,而大多数情况下,可以自己创建必需的代码。 有关如何执行此操作的详细信息,请参见 如何:编辑宏和以编程方式创建宏

某些命令在宏记录过程中被禁用,如立即搜索 (ISearch) 和记录项目与“记录”模块的用户模型。

在代码/文本编辑器中记录宏时,不记录任何鼠标单击和其他鼠标事件。

提示

VS 宏当前不支持 Windows 窗体。

宏运行问题

  • 如果无法生成宏的父项目(如项目中的另一个宏有错误),则不能运行该宏。

    宏在宏执行之间保持它们的变量值,但不在集成开发环境 (IDE) 的会话之间保持变量值。 例如,如果某个宏在每次执行时都使计数器的值递增,则此值在该宏的调用之间保持,但是如果关闭 Visual Studio IDE,此值就会丢失。

  • 从 Macro 资源管理器运行宏时,环境将打开 Macro 资源管理器之前打开的最后一个窗口视为最近激活的窗口,并且宏如同该窗口具有焦点一样运行。 这防止了 Macro 资源管理器窗口本身在您操作宏时不小心得到焦点的问题。

请参见

参考

Macro 资源管理器窗口

概念

使用宏自动执行重复性操作

宏安全性和共享问题