关于录制宏

VBA最大的特点就是可以录制宏,将你所有的操作都以代码的形式录制下来,以备将来使用。这也是宏使用如此广泛的原因之一。

在我看来,录制宏最大的好处是查看代码的写法。在vba开发过程中,难免会遇到不知道某个方法,某个参数的时候,这时候录制宏就是一个很好地解决方法。边录制宏边写宏也许是你以后vba开发的常态。

当然了,录制宏也还是有缺陷的,有些操作是录制不了的。比如循环,分级判断等。

如何录制宏

在功能区的“开发工具”选项卡中点击“录制宏”按钮,弹出录制宏对话框。如图所示。 录制宏 录制宏对话框

录制宏对话框可以设置的项目。

  • 宏名: 录制的宏的名字,默认是Macro1。第二次录制是Macro2,第三次是Macro3……以此类推。宏的名字可以修改。建议根据宏的功能起一个容易一看就明白的名字,如sheetAdd,rowsDelete。宏名必须是英文,下划线_或者汉子开头,特殊符号和数字开头的宏名,会报错。

  • 快捷键: 执行宏的快捷方式。如果设置的快捷键和Excel自带的快捷键有冲突时,优先执行宏。例如,Ctrl + c 是Excel自带的复制功能,如果你录制的宏设置了快捷键 Ctrl + c,那么按下 Ctrl + c 时,会执行宏而不是复制。

  • 宏的保存地址: 保存地址有三个选项,默认是当前工作簿,其余的两个分别是个人宏工作簿和新工作簿。具体的含义如下。

(1)个人宏工作簿 如果把录制的宏保存在“个人宏工作簿”中,那么该宏在所有本机上打开的Excel文件中都能使用,“个人宏工作簿”在正常情况下是隐藏的,并随着Excel的启动而开启。

如果想在本机上其它EXCEL中使用此宏,需要保存到个个宏工作簿中。

(2)新工作簿 如果把录制的宏保存在“新工作簿”中,那么录制的宏会保存在一个新建的工作簿中,当前工作簿并不保存录制宏所自动生成的VBA代码。

(3)当前工作簿 如果选择把即将录制的宏保存在“当前工作簿”中,那么录制宏所自动生成的VBA代码将保存在当前工作簿文件中,可以随着当前文件分发给其他用户。

  • 宏说明: 宏的说明。最后会以注释的形式来说明宏。

实际操作-录制宏

现在我们来实际操作下录制宏的功能。

录制宏rowABolder

从开始按钮找到Excel应用程序,打开Excel,新建一个空白Excel工作簿。点击“开发工具”菜单的“录制宏”。弹出录制宏对话框。宏名为rowABolder。快捷键Ctrl + C。

实际操作录制宏

点击OK按钮后,开始录制宏。“录制宏”按钮变为正在录制。选中A列,加上粗体效果。然后再次点击“开发工具”菜单的“结束宏录制”按钮,结束录制宏。

结束宏录制

查看宏rowABolder的代码

打开Visual Basic编辑器(快捷键Alt + F11),查看录制好的宏代码。在项目资源窗口会多出一个模块项目。里面有模块1。录制好的宏代码就在模块1里面。

录制好的宏代码

录制好的代码如下,从代码可以看到之前输入的快捷键和宏说明都编程了注释(注释是以单引号’开始的,运行时会被忽略的部分,在VBE中注释默认是绿色的)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Sub rowABolder()
'
' rowABolder Macro
' A列的文字变粗体。
'
' Keyboard Shortcut: Ctrl+c
'
    Columns("A:A").Select
    Selection.Font.Bold = True
End Sub

关于代码的写法我们以后会逐步讲解,现在你先有个大概印象即可。

应用宏rowABolder

新建一个sheet,在A1单元格里面写入写东西,例如“vba快速入手02-录制宏”。运行刚才录制好的宏rowABolder,就可以将新建sheet里面的A列设置为粗体。运行宏rowABolder有三种方法。

方法1,快捷键 Ctrl + c 。录制宏设定的时候,我们就指定了快捷键。按下Ctrl+c就会执行宏rowABolder。注意此时的快捷键Ctrl+c覆盖了Excel自带的Ctrl+c(复制功能),因为宏的快捷键优先级高。如图执行前和执行后效果。

快捷键运行

方法2,点击“开发工具”中的“宏”按钮,弹出运行宏的对话框(快捷键Alt + F8也可以)。

运行宏按钮

选中宏rowABolder,然后点击运行按钮。

运行宏

方法3,点击“开发工具”中的“Visual Basic”按钮,进入VBE编辑器。

Visual Basic编辑器

点击你录制好的宏代码,此时画面右上侧的rowABolder是选中状态,按下工具栏中的“运行”即可(快捷键F5也可以。)

Visual Basic编辑器,运行宏

保存宏rowABolder

为了以后继续使用宏rowABolder,需要保存宏rowABolder。Excel 2007版本开始,普通的Excel文档(扩展名是.xlsx)是不能保存宏文件的。要想保存带有宏文件的Excel文档,必须将其保存为扩展名是.xlsm的Excel文档才可以。所以,点击文件->文件另存为,在另存为对话框中,选择保存文件类型是.xlsm的文档,如下图。

保存宏


参考资料:
维基百科-vba https://zh.wikipedia.org/wiki/Visual_Basic_for_Applications

转载请注明本网址。