Excel VBA课程(一):Excel VBA概述

这是上一期Excel VBA讲座前瞻的第一篇文章。

开始 Excel VBA 课程。 (讲座预告,壮举。为什么我们推荐 Excel VBA)


一、Excel VBA概述

用类似于VB的VBA语言编写的函数称为宏。

VBA Logo
VBA 徽标

1.1. VBA,宏概念

VBA (Visual Basic for Application) 是内置的 MS Office 产品(Excel、PowerPoint、Word、Access、Visio 等) 开发语言(和开发环境)。

宏的意思:

  1. 自动化重复性任务 功能
  2. 用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可以做的所有功能,每个功能组合的新功能,以及使用外部引用对象的扩展功能。

엑셀 VBA로 할 수 있는 것들
使用 Excel VBA 可以做什么
  • 在 Excel 中自动执行重复性任务
  • 除了内置函数之外,还可以创建和使用用户定义的函数
  • 创建、合并、拆分多个 Excel 文件
  • 记录经常重复使用的多步动作,做成一个功能,并分配热键方便使用
  • 通过创建 Excel 加载项扩展 Excel 本身的功能。
  • 与数据库相关的CRUD处理(Excel数据上传下载、现状报告/图表制作等)
  • 网络连接(Naver词典搜索、元标准术语的批量注册申请等)
  • 与其他应用程序一起进行批量处理,自动创建报告/产品
  • 自动化作业处理以创建脚本文件,例如 UNiX shell、SQL、PL/SQL 等。
  • 此外,只要有想像力、搜索力和去做的意愿,就 S/W 而言,几乎任何事情都是可能的。

1.4.学习 Excel VBA 的分步方法

需要分学基础阶段和会用阶段来学习。

엑셀 VBA 학습 단계
Excel VBA 学习步骤

建议按照步骤1)学习对象模型,步骤2)学习VB语法,步骤3)用VB处理对象模型的顺序学习基本步骤。学概念最快一天,最迟三天就够了,要用到一定程度还需要一到两周甚至更长时间。

建议按照使用步骤顺序学习:4)处理外部引用对象,5)处理Module/UserForm,6)处理类。外部引用对象(如DB链接的ADO,web链接的HttpRequest等)应该按类型学习,每个对象都有不同的目的或使用方法,所以当时学习必要的对象是有效的。在这个利用阶段,学习和利用所需要的时间可能因人而异。

下图显示了随着时间的推移,每个级别的 Excel VBA 的学习难度/生产率。

엑셀 VBA 학습/활용 곡선
Excel VBA 学习/使用曲线

至少到第 3 步,您可以在工作中有用地使用它,而且它会很有帮助。步骤 1) 学习对象模型或步骤 2) 学习 VB 语法一段时间,然后放弃。不要放弃,步骤 3) 让我们确保使用 VB 处理对象模型。

这里不要误解的是,仅仅通过学习所有的对象模型和所有的VB语法是不可能用VB来处理对象模型的。相反,如果你那样学习,你会很快感到厌倦并容易放弃,因为它不好玩。遇到不懂的,可以时不时在谷歌上搜索一下,一点一点往前看。

* 参考: Getting started with VBA in Office(Microsoft Learn)

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 的基础知识。如果您有任何问题,请在评论中留下。


<<相关文章一览>>

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

zh_CN简体中文