文档章节

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

索大的三刀流
 索大的三刀流
发布于 2017/09/07 14:34
字数 1620
阅读 2
收藏 0
点赞 0
评论 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
厦门
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
Office密码破解软件VBA功能

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

neluzyy1
2015/09/02
93
0
详解AOPR中的VBA后门功能

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

学术研究软件
2016/04/18
21
0
您试图运行的函数包含宏或需要宏语言支持的内容

您试图运行的函数包含宏或需要宏语言支持的内容 听语音 | 浏览:26283 | 更新: 2014-04-18 17:36 | 标签:函数 1 2 3 4 5 6 7 分步阅读 在Office成员Word,Excel使用过程中,经常会碰到下面...

技术小大人
2017/11/15
0
0
基于Visual C++2010 与office2010开发办公自动化(15)-执行excel2010宏

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

junwong
2012/03/09
0
0
Open XML应用安全(1)宏安全

Open XML应用安全(1)宏安全 宏是通过一次单击就可以应用的命令集。它们几乎可以自动完成你在程序中执行的任何操作,甚至还可以执行你认为不可能的任务。 宏是编程,但即使你不是开发人员也...

zting科技
2017/01/19
0
0
样本分析 | virus.office.obfuscated 宏病毒分析

文件信息 类型:宏病毒 MD5:ab74ee2373229626fe368a83d98f2a47 病毒名:TrojanDownloader:Win32/Skidlo 文件大小:121Kb 宏病毒 宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开...

皆明
01/03
0
0
推荐一款很好用的oracle,mysql,sqlserver表结构导出到word的软件

平时有时写文档,往往会遇到这样的情况,比如数据库表结构设计好,在数据库中加了 注释后,想导出到WORD,EXCEL文档,今天终于发现有个不错的工具可以实现, 实现其实是利用OFFI...

神勇小白鼠
2011/06/14
0
0
Excel中的VBA宏:每次划款前从总名册中同步用户数据到当前页

我使用的Office为 Microsoft Office Professional Plus 2010,我使用的Excel 版本为14.0.4760.1000(32位)。 这段时间遇到了一件事,就是我需要给很多小伙伴打钱,但是每次打给的人又不一样...

北风其凉
2016/02/18
48
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Win10专业版安装GIT后使用Git Bash闪退解决办法

百度后把过程和最终解决办法记录下来: 百度首先出来的解决办法如下: 来自:https://segmentfault.com/q/1010000012722511?sort=created 重启电脑 重新安装 安装到C盘 尝试网上的教程 \Git...

特拉仔
18分钟前
0
0
设计模式

1.装饰器模式 概念 允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,以达到特定的目的。 实现 增加一个修饰类包裹原来的...

EasyProgramming
32分钟前
1
0
用python2和opencv进行人脸识别

一、安装cv2 sudo apt-get install python-opencv opencv-data 二、 Haar特征分类器 Haar特征分类器就是一个XML文件,该文件中会描述人体各个部位的Haar特征值。包括人脸、眼睛、嘴唇等等。 ...

wangxuwei
32分钟前
0
0
python模板中循环字典

{% for k,v in user.items %} {{ k}} {{ v}} {% endfor %}

南桥北木
今天
0
0
Java8系列之重新认识HashMap

简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示: 下面针对各个实现类...

HOT_POT
今天
0
0
获取调用方的className

/** * 获取调用方的class * @return */private static String getInvoke() { StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); S......

iborder
今天
0
0
深入了解一下Redis的内存模型!

一前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符...

Java填坑之路
今天
1
0
从实践出发:微服务布道师告诉你Spring Cloud与Spring Boot他如何选择

背景 随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加。在这个背景下,平台的技术架构也完成了从传统的单体应用到微...

老道士
今天
1
0
大数据学习的各个阶段

第一阶段:Linux课程讲解Linux基础操作,讲的是在命令行下进行文件系统的操作,这是Hadoop学习的基础,后面的所有视频都是基于linux操作的。鉴于很多学员没有linux基础,特增加该内容,保证零linux...

董黎明
今天
0
0
CVE-2013-0077 堆溢出分析

找了很久才发现这个环境比较容易搭建分析... 环境: 系统---Win XP SP3 漏洞程序:QQPlayer 3.7.892.400 出错DLL:quartz.dll 6.5.2600.5512 调试工具:x32db+gflag.exe 过程: 首先gflag设置...

Explorer0
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部