将宏转换为VBA此项功能对VBA初学者相当好用,即使是VBA高手,有时也会使用此功能,因多数宏都有VBA解决方案,但有些宏操作的VBA表示法颇为复制,如RunCommand操作有数百项可用操作参数,在VBA内需查看帮助说明,方可查知正确常量.较快的方法是先建立宏,再将宏转换为VBA程序代码.
操作方法很简单,只要选取宏,再使用“文件”→“另存为”选项,再于“保存类型”选取“模块”,之后按下“确定”按钮后,会显示另一对话框,询问是否要加上错误处理及宏批注,再按下“转换”按钮,即可转换完成。另读者也可使用“工具”→“宏”→“将宏转换为Visual Basic代码”选项。
可转换的内容包括程序代码、错误处理、注释等,每次转换均会产生新模块,内含一个转换完成的程序.故若转换多次,会产生多个模块.转换的语法为,如"DoCmd.OpenForm..."的形式,即"DoCmd"就是在VBA内执行宏操作的对象,其后即为操作名称。
◎说明:但有少数几个操作,无法顺利转换,这是因为在VBA中没有替代方案.除此之外,有多个宏操作在转换后,不会直接将其本身列为DoCmd对象的方法,
如下表所示:
表:宏操作与转换后的结果
宏操作
|
转换后
|
MsgBox |
MsgBox函数或语句 |
RunApp |
Shell函数 |
SendKeys |
SendKeys语句 |
RunCode |
Call及程序名称 |
SetValue |
与Let语句功能类似或使用等号设定数据,如“D=Now()”,其中D为变量 |
AddMenu |
无对于函数或语句 |
StopAllMacros |
End |
StopMacro |
Exit Function |
RunCommand |
无对于函数或语句 |
另如宏名称在转换后也将取消,条件则会转换成If...Een If的结构.