文档章节

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

索大的三刀流
 索大的三刀流
发布于 2017/09/07 14:34
字数 1620
阅读 2
收藏 0

宏是一组指令。能使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子程序

VBA子程序

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

2、VBA函数

VBA函数

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

模块

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

创建一个VBA宏

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

录制新宏

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

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

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

看看我们录制了什么

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

宏

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

Marco_1

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

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

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

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

插入函数

应用它:

应用
结果

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

© 著作权归作者所有

共有 人打赏支持
索大的三刀流
粉丝 0
博文 4
码字总数 3214
作品 0
厦门
私信 提问
PageOffice 如何录制宏和编辑宏

宏是微软公司为其Office软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出来的一种工具,它利用简单的语法,把常用的动作写成宏,当在...

山里的红杏
09/12
0
0
python与macro宏调用

一、简单的宏示例 打开excel 软件,在视图里打到宏功能,创建一个名为Test_Marco 的宏,其代码如下: Sub Test_Macro() MsgBox "This is a macro in Excel" End Sub 二、宏调用 1、vbs 调用宏...

还是要坚强
06/05
0
0
MicrosoftExcel2013下的VBA宏:生成程序修改单

注意: 1.这段宏是在MicrosoftOfficeStandard2013下撰写和调试的。用在其他Office版本中可能需要适当修改 2.保存带有宏的Excel表格,应该保存为*.xlsm格式(启用宏的工作簿) 关于本宏的用途...

北风其凉
2014/11/18
0
0
基于Visual C++2010 与office2010开发办公自动化(15)-执行excel2010宏

Office 2010,是微软推出新一代办公软件,开发代号为Office 14,实际是第12个发行版。该软件共有6个版本,分别是初级版、家庭及学生版、家庭及商业版、标准版、专业版和专业高级版,此外还推...

junwong
2012/03/09
0
0
Office密码破解软件VBA功能

Advanced Office Password Recovery中有各种不同的攻击类型,除了暴力破解和字典攻击还有一个独具特色的“VBA后门”功能。那么VBA究竟是什么?确切地说,它是一种自动化语言,可以使常用的程...

neluzyy1
2015/09/02
93
0

没有更多内容

加载失败,请刷新页面

加载更多

码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
今天
3
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
6
0
小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部