欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Office

Office Excell VBA宏简介包含模块及启用宏创建宏录制宏

程序员文章站 2022-05-31 16:44:59
宏是一组指令。能使Excell的某些操作自动化,从而可以有效地工作并减少错误的发生,本节对Office Excell VBA宏做个简介,包含模块及启用宏创建宏录制宏...

宏是一组指令。能使Excell的某些操作自动化,从而可以有效地工作并减少错误的发生,本节对Office Excell VBA宏做个简介,包含模块及启用宏创建宏录制宏,感兴趣的朋友可以看看。

启用宏

对宏最广泛的定义是,“宏是一组指令。能使Excell的某些操作自动化,从而可以有效地工作并减少错误的发生。例如,您可以创建一个宏来完成重复而复杂的输入,设置某种报表的格式并打印。

不必成为一个专业用户就能创建和使用简单的VBA宏。因为Excell提供了一个宏录制器,Excell可以记录用户的一系列操作从而自动形成一个宏。高级用户能够使用VBA语言自己创建程序,来告诉Excelle进行某些操作。这样做有着极大的*度,能够完成宏不能完成的操作。例如,可以自定义对话框、在Excell菜单中插入一个自己的命令,建立一个自己的函数供工作表使用。

首先,我们来实验一下宏。想使用宏,必需保证“开发工具”选项卡出现在Excell中:

/EXCELL2007

office按钮 →Excell 选项

Excell 选项→ 常用 。

选中“在功能区显示‘开发工具’选项卡”复选框。

单击确定。

/EXCELL2010

文件→ 选项,

自定义功能区,

选中对话框右侧列表中“开发工具”被选中,

单击确定。

现在,Excelle窗口中出现了“开发工具”选项卡。不过在操作它之前还要了解一下宏的安全性。由于Office中的VBA*度极高,可以访问系统的不少核心部分,所以Excell对宏默认是禁止使用的(功能越强大的东西越容易形成对电脑的严重伤害)。这种禁止是对于不懂宏或VBA的用户的善意之举,就像洗洁精瓶子上写着要将他放到儿童够不到的地方并且禁止饮用。下面我们从高出取下这个瓶子。

在“开发工具”→ “宏安全性”中设置“禁用所有宏,并发出通知”,这样,在打开含有宏的文档时会提示您是否使用宏。最好的方法是在“信任中心”→“信任位置”里设置一个或多个文件夹,这样,在这个位置的文档中的宏会被信任而允许执行,其他来源的含有宏的文档被拒之门外。(Excell2010,文件→选项→信任中心→信任中心设置)

保存带有宏的工作簿,要将格式改为:*.xlsm ,否则不能保存。这也是2007版以来的规则,这也是一种保护吧,从文件名上区分了是否携带宏(普通Excell文档是 *.xlsx)。

两种VBA宏

1、VBA子程序

Office Excell VBA宏简介包含模块及启用宏创建宏录制宏

子程序,就是一组语句的集合,完成一系列操作、不返回值。总是以Sub开头,End Sub 结束。其间“ ' ”号后面的文字(深绿色)是注释即说明,程序不会理会它们,主要是方便人们理解程序的功能。其他的是语句了。

2、VBA函数

Office Excell VBA宏简介包含模块及启用宏创建宏录制宏

函数,与工作表里的函数功能上差不多,它必须要返回一个单一值。它经常被子程序或其它函数所使用。如果把一个函数放到合适位置它也可以被工作表使用,就像Excell内置函数一样。函数以“Function 函数名(参数)”开头,以End Function 结束,中间放着对参数的处理过程,并返回一个值。函数的作用很多,至少他可以把冗长的工作表函数精简许多,并且看上去更容易让人理解。比如上例,函数B返回参数的立方根。

模块

模块,听起来很神的东西,其实他就是VBA代码的容器,即过程、函数写在哪儿?哦,在模块里。

创建一个VBA宏

录制一个宏,将得到一个过程(SUB)。通过“开发工具”→“录制宏”按钮,可以录制一个宏,按下按钮后,Excell就像一台录像机记录用户的所做所为,直到您按下“开发工具”→“停止录制”。在开始录制时出现这个对话框:

Office Excell VBA宏简介包含模块及启用宏创建宏录制宏

这时应当给这个宏取个合适的名字,加上一个快捷键。比如Marco1,Ctrl+q ,之后就可以在工作表上做些事了,比如在一个单元格上输入名字。我在A5单元格上输入文字,之后停止了录制。

现在我在键盘上按下Ctrl+q,没事发生啊,清除A5上的文字,再按Ctrl+q事情有了变化,A5格里被填写了刚才输入又清除的文字。这就是宏,重复的做一件事。

如果您在录制前点击“开发工具”→“使用相对引用”,重复以上操作,重新录制后的宏可以在您选定任意单元格并按下快捷键时把那些文字输入当前的单元格。

看看我们录制了什么

“开发工具”→“宏”按钮,得到:

Office Excell VBA宏简介包含模块及启用宏创建宏录制宏

单击列表中的"Marco_1“(刚才命名的宏),单击编辑,得到:

Office Excell VBA宏简介包含模块及启用宏创建宏录制宏

这时VB编辑器打开,默认的模块1里放着我录制的宏。可以看出它是一个过程,不返回什么值只是做了一件事:在当前单元格里输入“qqq”,之后活动单元格设为同列的下一格。

您可以做一些更复杂的操作,绝大部分是可以记录下来,留以后反复使用的。注意定义快捷键时可以同时按下Shift键,这样就成为Shift+Ctrl+字母以免与Excell内置的快捷键冲突。

您可能注意到先前的Function B 这个函数也出现在模块1里,这个是我手工输入的。可以在这里(模块1)输入这样格式的函数,这样就可以在工作表里使用它。

我现在在工作表里插入函数,在函数列表里可以看见它(B)。

Office Excell VBA宏简介包含模块及启用宏创建宏录制宏

应用它:

Office Excell VBA宏简介包含模块及启用宏创建宏录制宏
Office Excell VBA宏简介包含模块及启用宏创建宏录制宏

看到这里想必你对VBA宏有个大概的了解了吧,是否有写VBA的冲动,那就赶快动手吧!