Excel中的宏(Macro)是什么
在Excel的“视图”标签页下,有一个宏的功能,示例如下图:
宏其实是一段可以重复执行的代码,对应上图的两个选项:
- 查看宏:查看已经存在的宏的代码段,并且可以执行
- 录制宏: Excel提供了可以像录制声音那样录制宏的代码段,点击“录制宏”之后,接下来对Excel的操作会自动转换为代码。
宏的来历
既然宏是可以重复执行的代码段,那宏是什么语言的代码呢?答案是VBA, 那VBA是什么语言呢? 这就要从BASIC语言说起了。
- BASIC是一门很古老的计算机语言,发表于1964年。BASIC代码通过BASIC解释器翻译为计算机能识别的机器指令。
微软的DOS、Windows 3、Windows 9系列预装了BASIC解释器(称为:QBasic),所以可以直接写Basic程序;但从Windows 2000开始,就不再预装BASIC解释器了。 - 微软基于Windows 图形界面开发了新的Visual Basic语言,并提供了可视化的便捷开发工具Visual Basic IDE。不过是需要收费的。
1996年,微软开发Visual Basic Scripting Editing(即VBScript),类似快速书写批处理脚本,语法和VB保持一致。VBScript在操作系统内置。
VBA: Visual Basic for Applications 。微软在Office系列产品中集成了VBScript解释器,这个VBScript就是VBA。除了解释器,还有集成开发环境,一个简化版的Visual Basic IDE。
所以, 宏属于VB语言系列,但是属于脚本语言, 也就是不需要编译为exe文件,可以由解释器直接解释运行,宏的代码示例:
Sub 宏1()
'
' 宏1 宏
'
'
Cells.Select
Range("G22").Activate
Sheets("Sheet1").Select
Cells.Select
Range("F26").Activate
End Sub
- Sub 是VB语言的过程, 相当于函数的概念
- 单引号 ’ 用来添加注释,属于VB的语法
- Cells、Sheets、ActiveSheet 是VBA的对象
集成在Excel 中的开发IDE如下:
宏能干什么?
宏是一段脚本代码,能够帮助我们进行重复、繁杂的动作。最重要的是宏的编写或录制很简单,没有编程经验或是没有VBA语言的基础也可以实现简单的宏。宏一般是用来处理复杂的Excel,也就是内容较多或是格式等较为复杂。宏可以用来:
- 对Excel文件、工作表(Sheet)等进行操作,可以像界面操作一样复制、删除、移动
- 对单元格(Cell)进行操作,包括设置值、获取Comment等
- 可以将Excel中的数据输出到文件中
- …
典型应用包括:
- 收集不同Excel中的工作表统一到一份Excel中,自动产生报表
- 在系统开发时,用来收集初始数据或是增量的Admin数据
3.。。。
宏的录制
接下来以一个复制工作表的实例演示宏的录制。
-
视图>宏>录制宏
-
切到Sheet2,在界面上Ctrl+A选中Sheet2的所有Cell, 键盘Ctrl+C
-
切到Sheet1,Ctrl+A选中Sheet1的所有Cell,键盘Ctrl+V
-
点击“停止录制”,保存宏
以上宏的录制就完成了, 通过查看宏, -
点击“执行”就可以重复刚刚录制的动作了
-
点击“编辑”就可以打开IDE并看到录制的宏的代码。如果有VB的编程基础,基础VBA的API就可以进行宏的编程了。
宏的保存
宏的代码段是保存在Excel文件中,在老版本的Excel中需要开启允许宏的设置, 新版本的Excel则需要保存后缀名是 .xlsm 的文件。如下图:
如果不保存.xlsm 类型,则会报如下提示,而且保存之后宏也可能丢失。