ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 27566|回复: 7

[分享] 基础知识普及:为什么需要宏和VBA?什么情况下需要宏和VBA?宏和VBA的区别是什么?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-10-10 13:16 | 显示全部楼层 |阅读模式
初学Excel编程,大多数人搞不懂VBA和宏的关系,其实这两样是一回事。VBAVisual Basic for Application的缩写,通俗说就是用VB对程序进行控制。宏,即Macro,个人认为这个翻译害了一群人,因为它把简单的事情搞高深了。宏的背后其实也是一堆VBA代码,只不过是由系统自动生成的。
VBA和宏既然是同一个东西,都是基于VB代码以丰富Excel的功能。那么马上就会引出另外的疑问。
1.       我们为什么需要宏和VBA
2.       什么情况下我们需要宏和VBA
3.       宏和VBA的区别是什么?
首先,我先回答第一个问题:“我们为什么需要宏和VBA?”
并非想要上纲上线,但是从宏观的角度看,我认为,这是因为世界上不存在完美的事物,同样也不存在完美的软件。虽然微软通过升级在不断地完善Office系列软件的功能,使其标准功能已可以满足日常绝大部分的应用,但也逃不过这个规律。于是微软便聪明的整合了宏和VBA到它的产品中,给用户留下了可以自行去定义属于自己需求的软件的可能性(多说一句,WPS还需要继续努力啊,在这点上还差的太远了)。
那么,什么情况下我们需要宏和VBA呢?
形象的说,“宏”像一个机器人,VBA是用来制作宏这个“机器人”工具和零件。当我们遇到下列问题时,我们就可以想到使用它们了(可能不全):
1.       劳动强度大,重复性高的工作,比如每月报,周报等。
2.       Office本身一些功能的细节控制与完善,如数据透视表(Pivot Table)等。
3.       和其它系统的交互,如数据库系统
4.       ……
所有这些,我会在今后的文章中陆续讲到,也希望大家持续关注。
值得注意的是,宏的录制和VBA的编写是需要时间的,一定要权衡是否需要做一个宏或者VBA
最后,VBA和宏的区别是什么?
刚才已经提到了,“宏”像一个机器人,VBA是用来制作宏这个“机器人”工具和零件。如果再进一步说明,宏就像是一个录音机或者录像机,只是它所录制的是你的操作自动制作一个“机器人”给你。当你需要重复操作的时候,只需要按一下启动键,“机器人”就会开始干活儿,而你则可以喝茶,抽烟,喝酒,聊天, XXOO… …
听起来很美是不是?仿佛不论你是否掌握VBA编程技巧,你都能利用宏去制造“机器人”。但是,你必须掌握VBA,这是因为:
1.       电脑不是人脑,至少目前还取代不了,有些时候一个微小的差别就会使你的宏失效,比如说文件名和文件结构的改变等。使得你尽心费力做好的宏可以被重复使用的可能性大大降低。
2.       “机器人”出了故障,你必须知道怎么修。
3.       “机器人”中可能会存在很多可以被其它“机器人”重复使用的“零件”,只有掌握了VBA,你才能做到自己建造“机器人”
虽然还有很多细节性的东西没有说到,但从我的经验来看,太长的文章看起来费劲,所以我也先在这里结尾了。希望这篇文章已经能够大体回答文章开头的疑问。其它的细节我会在今后的文章中一点一点的补充,也希望大家持续关注。

该贴已经同步到 zhangnay2008的微博

TA的精华主题

TA的得分主题

发表于 2013-10-10 16:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
可以把“宏”理解为能实现一定功能的“VBA代码”段

点评

Macro是vba的超集  发表于 2015-5-5 10:25

TA的精华主题

TA的得分主题

发表于 2015-5-4 23:43 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-5-5 10:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不明白不要乱讲!


如果你研究了Excel软件或者Office软件的历史的话,你会发现在vba之前,还有若干种自动化操作方式,这些方式有的依然保留到现在,例如宏表、Excel5.0对话框等。

所以,Macro这个单词表示的是所有自动化操作office的方法的总和,包括VBA、宏表(实际是C API)、各种加载项所提供的函数及命令等等

TA的精华主题

TA的得分主题

发表于 2015-5-5 10:30 | 显示全部楼层
你没事看看维基百科,关于Macro,国内翻译成宏、台湾翻译成巨集;在某些书里面,把这个叫做脚本。

其实总结起来就一句话:把各种命令统一到一起,来执行批量批处理的命令的统称。

所以,即使在office里面,Macro也是VBA的超集,具体说明看四楼。

TA的精华主题

TA的得分主题

发表于 2015-5-5 11:06 | 显示全部楼层
liucqa 发表于 2015-5-5 10:30
你没事看看维基百科,关于Macro,国内翻译成宏、台湾翻译成巨集;在某些书里面,把这个叫做脚本。

其实总 ...

在于“宏”的概念

TA的精华主题

TA的得分主题

发表于 2019-4-28 19:52 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-4-28 20:52 | 显示全部楼层
最尾三點沒寫到最重點
要是只有這樣也不用特地學vba了
有一大堆東西根本錄不了,單單是 if, for loop已經不可能錄
你說的像什麼也能錄,只要微調就可以像的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-8 03:03 , Processed in 0.036294 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表