Excel VBA课程(一):Excel VBA概述
这是上一期Excel VBA讲座前瞻的第一篇文章。
开始 Excel VBA 课程。 (讲座预告,壮举。为什么我们推荐 Excel VBA)
一、Excel VBA概述
用类似于VB的VBA语言编写的函数称为宏。
1.1. VBA,宏概念
VBA (Visual Basic for Application) 是内置的 MS Office 产品(Excel、PowerPoint、Word、Access、Visio 等) 开发语言(和开发环境)。
宏的意思:
- 自动化重复性任务 功能
- 用VBA(开发语言)编写的Procedure(加工过程、函数)
严格来说,VBA语言写的函数都是Macros,所以意义不同,但是可以肯定的说,VBA和Macros的意义是一样的。 VBA 是最大限度地利用 Excel 的最佳工具,它是可以极大地帮助提高生产率(输出的数量和质量与投入时间相比)的最佳工具。
VBA是解释型语言,不是编译型语言,无需安装单独的开发工具(Visual Studio、Eclipse、Delphi等)。 (已包含在 MS Office 产品中)它的优点是易于开发和部署。
VB和VBA语言差别不大,但VBA不支持多线程,有不能创建独立可执行文件(.exe、.dll等)的局限性。
1.2.处理 Excel VBA 所需的经验、知识和心态
Excel用的人很多,用Excel VBA的人不多。很多人甚至不知道Excel VBA的存在,也有很多人知道它对自己的工作有帮助却不去接触。
在开始使用 Excel VBA 时,请记住以下几点:
- 要想用好Excel VBA,首先要用好Excel。
- 如果您有应用程序开发经验(C/S、Web、shell 脚本等),您可以快速学习这门语言。
- 最好了解 Visual Basic 语言语法。
- 您需要了解 Excel 对象模型。
- 需要想象力(这可能吗?这对我的工作没有帮助吗?等)。
- 你需要搜索能力(善用谷歌)。
- 最好以组装的心态来处理(多个组件、服务混搭等)。
- 무엇보다 중요한 것은 스스로 해결하고자 하는 마음과 의지이다.
1.3.您可以使用 Excel VBA 做什么?
几乎可以无限扩展,例如Excel可以做的所有功能,每个功能组合的新功能,以及使用外部引用对象的扩展功能。
- 在 Excel 中自动执行重复性任务
- 除了内置函数之外,还可以创建和使用用户定义的函数
- 创建、合并、拆分多个 Excel 文件
- 记录经常重复使用的多步动作,做成一个功能,并分配热键方便使用
- 通过创建 Excel 加载项扩展 Excel 本身的功能。
- 与数据库相关的CRUD处理(Excel数据上传下载、现状报告/图表制作等)
- 网络连接(Naver词典搜索、元标准术语的批量注册申请等)
- 与其他应用程序一起进行批量处理,自动创建报告/产品
- 自动化作业处理以创建脚本文件,例如 UNiX shell、SQL、PL/SQL 等。
- 此外,只要有想像力、搜索力和去做的意愿,就 S/W 而言,几乎任何事情都是可能的。
1.4.学习 Excel VBA 的分步方法
需要分学基础阶段和会用阶段来学习。
建议按照步骤1)学习对象模型,步骤2)学习VB语法,步骤3)用VB处理对象模型的顺序学习基本步骤。学概念最快一天,最迟三天就够了,要用到一定程度还需要一到两周甚至更长时间。
建议按照使用步骤顺序学习:4)处理外部引用对象,5)处理Module/UserForm,6)处理类。外部引用对象(如DB链接的ADO,web链接的HttpRequest等)应该按类型学习,每个对象都有不同的目的或使用方法,所以当时学习必要的对象是有效的。在这个利用阶段,学习和利用所需要的时间可能因人而异。
下图显示了随着时间的推移,每个级别的 Excel VBA 的学习难度/生产率。
![엑셀 VBA 학습/활용 곡선](https://prodskill.com/wp-content/uploads/2022/09/image-57.png)
至少到第 3 步,您可以在工作中有用地使用它,而且它会很有帮助。步骤 1) 学习对象模型或步骤 2) 学习 VB 语法一段时间,然后放弃。不要放弃,步骤 3) 让我们确保使用 VB 处理对象模型。
这里不要误解的是,仅仅通过学习所有的对象模型和所有的VB语法是不可能用VB来处理对象模型的。相反,如果你那样学习,你会很快感到厌倦并容易放弃,因为它不好玩。遇到不懂的,可以时不时在谷歌上搜索一下,一点一点往前看。
1.5.使Excel VBA变难的因素及解决方法
- VB语法不熟,不知道,反正很难。
与 C、C++ 或 Java 相比,VB 语法非常简单,您可以在一小时内学会所有基础知识。
OOP在VB中是可以实现的,但是相对于C++和Java来说,有很多限制,就这么简单。
- 我不熟悉 Excel 对象模型。
엑셀의 기본적인 Object Model은 5분이면 알 수 있다.
如果您不确定,可以使用宏录制器,或者只是谷歌一下。
- 我不确定如何实现所需的功能。
如果你在谷歌上搜索,你可以找到在大多数情况下(90% 及以上)已经实现的代码。
- 我不知道为什么我必须这样做。
如果你自己做,你会发现个人工作效率提高了。
当更多的人可以使用 VBA 时,项目/团队会变得更有效率。
1.6.使用 Excel VBA 的注意事项
这将取决于每个人的情况和情况,但总的来说,遵循以下标准。
1.6.1.使用 Excel VBA 时
- 当预计编写 VBA 代码所需的时间将大大少于手动工作所需的时间时。
- 是一次性的任务,但是当写VBA代码的时候判断会生效
- 当确定一个操作将重复多次时
1.6.1.何时不使用 Excel VBA
- 写VBA代码没赶上进度的时候(万一肚脐比肚子大)
- 1회성 작업이고, 수작업이 더 빠를 때
到目前为止,我们已经了解了 Excel VBA 的概述。接下来,我们将了解 Excel VBA 的基础知识。如果您有任何问题,请在评论中留下。
<<相关文章一览>>
- 开始 Excel VBA 课程。 (讲座预告,壮举。为什么我们推荐 Excel VBA)
- Excel VBA课程(一):Excel VBA概述
- Excel VBA教程(二):Excel VBA基础
- Excel VBA教程(三):Excel对象模型
- Excel VBA教程(四):使用Excel对象模型
- Excel VBA教程(五):Excel文件扩展名、VBE、字体设置
- Excel VBA教程(六):Excel VBA语言基础-变量
- Excel VBA教程(七):Excel VBA语言基础——语法
- Excel VBA教程(八):Excel VBA语言基础——数据类型、数据结构
- Excel VBA教程(九):Excel VBA How-To
- Excel VBA教程(十):与Excel VBA一起开发和使用的工具
- Excel VBA 课程的完整目录