竹笋

首页 » 问答 » 问答 » 4分钟带你快速入门OfficeVBA
TUhjnbcbe - 2023/6/3 22:15:00

在使用VBA高效化我们的工作之前,我们需要先了解其中的一些概念,理解这些概念对使用VBA来说是很重要的。本文会简要介绍VBA中的基本概念,并在文章末尾给出参考文章,供大家进一步研究。

VBA和宏

什么是VBA和宏?

VBA(VisualBasicforApplications)是用来拓展Office办公软件功能的编程语言。正因为VBA能够拓展Office软件的功能我们才使用它,这个好理解;说它是一门编程语言,是因为它是基于VisuaBasic(VB)的,VB是微软开发的一门程序设计语言(而Office软件也是微软的,这就能理解VBA为什么是基于VB而不是别的编程语言例如C++、Java),VBA基于VB是指VBA中编程规范要符合VB的要求,但VBA中的已有对象自己独有的,而不是所有VB都有的,例如ExcelVBA中的Range对象,含义为单元格或者单元格区域。

宏是录制的一系列操作,这些操作目的是完成某个功能,将其录制下来,为了减少重复,提高工作效率(后续需要这个功能,直接播放对应的宏就行了),宏可以理解为自动编写的VBA程序。这里的自动是指office软件会将你的每一步操作都对应为一条VBA语句。

VBA有什么用?

自动化和重复用户交互的扩展Office应用程序之间的交互对象模型

编程语言中对象(object)的含义是指一切客观存在的实体,例如人、房子、大象、文件、程序窗口、Excel单元格。描述一个对象需要两方面的信息,即对象本身的特征和对象的行为,例如下图中描述山羊,我们可以说它的毛是白颜色的(本身特征),能够跑(行为)。这些描述在编程语言中体现为对象的属性和方法,对象的属性可以理解为形容词,来描述对象自身所具有的一些特点;对象的方法可以理解为动词,来描述对象可以做什么。那小狗举例,小狗的属性可以有毛色、眼睛,小狗的方法可以有跑、吃饭、睡觉等。

随便说一句,理解对象的概念特别重要,现在几乎所有的编程语言(Python、Java、C++、Scala、JavaScript等)都支持面向对象,而所谓的面向对象,就是以对象为基础。

在VBA中将office所有的对象都组成为层次结构,下图所示的是的Excel中对象的组织结构。层次结构的直观例子就是家谱、公司职位,这类结构中最高层一般只有一个对象,其余各层都可能包含许多对象。

由于VBA主要应用在Excel中,所有我们对上图中常见的Excel对象做简洁介绍。

Application:excel程序本身Workbooks(工作簿):workbook是单个Excel文件。workbooks是指多个Excel文件thisWorkbooks:当前VBA代码所处的Workbook,Activeworkbook:当前活跃的WorkbookWorkbooks:已经打开的所有excel文件Worksheets(工作表也可以表示为sheets)sheets(工作表名称)或者sheets(n)表示顺序排列,第n个工作表。ActiveSheet:表示活动工作表,即光标所在的工作表单元格Cells(row,column):表示位于第row行,第column列位置的单元格(单个单元格)ActiveCell:表示正在选中或编辑的单元格Range(“单元格地址):可以表示单个单元格(例如Range(A1))也可以表示区域(例如Range(A1:B2))

VBA编程基础

年,计算机科学家Bohm与Jacopini证明任何程序都可以由顺序结构、选择结构()、循环结构构成,见下图,所以我们需要知道指这些结构在如何在VBA中表达,在此之前,请注意VBA的一个特点:在VBA中关键字、保留对象及其属性和方法、变量的名称都是不区分大小写的。

数据类型及变量声明

VBA中的数据类型包括:整数型(Integer)、字符串型(String)、双精度浮点型(Double)、日期型(Date)、布尔型(Boolean)等,详细内容见下图。

VBA中的变量声明用Dim(Dimension尺寸),具体为Dim变量名As变量类型,请看示例:

如果不为VBA中使用的变量声明数据类型,VBA将使用默认的数据类型Variant.

VBA运算符包括算术运算符、比较运算符、连接运算符、逻辑运算符、通配符及运算符优先级,详细见本文的参考资料,参考的那篇文章中关于通配符的描述中有部分不正确,特将正确的列举如下:

选择语句

VBA中选择语句有If……Then……Else……EndIf、If……Then……ElseIf……Then……EndIf、SelectCase语句,示例如下:

循环语句

VBA中循环语句包括:For……Next、DoWhile、DoUntil示例如下,示例中用方括号(“[]”)表示的是可选,用尖括号()表示必选。

VBA特有语句

当我们对同一个对象进行持续操作时,该对象会多次出现,这样就会显得重复麻烦,此时可以使用VBA的With语句,示例如下:

好了,本次的介绍就到这儿,如果你在读的过程中有什么疑问或者建议,欢迎留言讨论。

1
查看完整版本: 4分钟带你快速入门OfficeVBA