VBA对象的方法、属性、事件及编程小技巧

VBA对象的方法、属性、事件及编程小技巧

相信大家在看过VBA快速入门之后,对VBA有了一定的了解,在此基础上,本篇文章想分享一下VBA在实操方面的内容,并在最后会给出参考资料,供大家进一步研究。

VBA中子过程、函数、数组

子过程

子过程的含义是一些语句的集合,并且没有返回值。之前说过的宏,在VBA中就表现为一个子过程,所以子过程和宏的意义很相似,也就是对某一功能的封装,后续如果还需要此功能,只需要简单的调用子过程名称就OK了,不用再重复的写该功能对应的全部语句了。子过程在VBA的关键字为Sub,完整语法如下,其中方括号("[]")表示内容可选,竖线("|")表示多个中选择一个。

VBA对象的方法、属性、事件及编程小技巧

子过程的一个实例如下,说明,VBA中注释用单引号表示。

VBA对象的方法、属性、事件及编程小技巧

函数

VBA函数是指执行计算并返回结果的过程,这句话就点名在VBA中函数与过程的区别与联系,核心区别是函数有返回值,子过程没有返回值,可以在VBA代码或者工作表中使用函数,函数的完整语法如下,乍一看觉得挺复杂,其实不难,因为函数需要返回值,所以就有 As Type 来指明返回值类型,还有函数具体要返回哪个值呢?又没有return语句,所以就需要函数名来当作返回的值了。

VBA对象的方法、属性、事件及编程小技巧

函数的一个实例及引用如下:

VBA对象的方法、属性、事件及编程小技巧

数组

数组是一组同类元素,使用数组名来标识,使用数组名和一个下标可以引用数组中的某个特定元素,数组在VBA中的申明如下,在默认情况下,VBA数组的下标从0开始,即当开始下标和To省略后,数组下标从0开始。

VBA对象的方法、属性、事件及编程小技巧

动态数组没有提供元素的数目,因此,在声明动态数组时应使用一组空括号,在使用之前,需要使用ReDim语句来说明VBA动态数组中包含多少个元素。

VBA对象的方法、属性、事件及编程小技巧

VBA对象和方法的引用

VBA中对象的引用格式为对象名.属性名,同样的,在VBA中方法的引用方式为对象名.方法名,可以这样来理解,当我们叫一个人时,是不是也是姓名的xxx。例如 小明的头发、小明的衣服……,请看示例。

VBA对象的方法、属性、事件及编程小技巧

上述示例比较有代表性,大家在看的过程中有不理解的地方欢迎留言讨论,我简单总结一下。

  • 以后出现多个点的情况,请从左到右逐个分析,出现这种情况的原因是对象的属性也可能是另外一个对象。那该如何识别对象呢?直观的考虑是除了基本数据类型外,其余都是对象。
  • 带名称的参数含义明确,且参数之间顺序可以任意,不带名称的参数,参数含义严格与函数/过程定义时的保持一致,例如Offset(2,3)不等于Offset(3,2)
  • 对象变量的赋值使用关键字Set。

事件

在Excel中,事件是指会话中发生的动作。对于Excel中的对象而言,发生的任何事情都要通过事件,例如,打开工作簿、双击单元格、改变单元格的值。当某一个具体事件发生时,就是要告诉Excel要运行某个宏或某段代码,即事件处理函数。可以这样来理解,事件发生了,当然需要来处理啦。在Excel中,事件可以分为以下几类。

  • 工作簿事件:某个具体的工作簿发生的事件,例如open事件(打开或者新建),NewSheet事件(添加新工作表)
  • 工作表事件:某个具体的工作表发生的事件,例如Change事件(修改工作表山的某个单元格)
  • 图表事件:某个具体的图表发生的事件,例如Select事件
  • 应用程序事件:Excel应用程序发生的事件,包括NewWorkbook事件(新建一个工作簿)
  • 用户窗体事件:具体的窗体中发生的事件。例如Click事件。
  • 与对象无关的事件:例如Ontime事件和Onkey事件。

事件处理程序必须放置在正确的位置,才能生效。工作簿级别事件的代码应该放在ThisWorkbook代码模块中,工作表级别事件的代码应该放在特定工作表的代码模块中,例如Sheet1。每一个事件事件处理程序都有一个预先确定的名称,例如Workbook_Open。

以下实例的功能是每当Excel文件代开后会显示问候语,小伙伴们赶紧试试吧。

VBA对象的方法、属性、事件及编程小技巧

编程小技巧

  • 使用Not关键字来切换布尔类型的属性值。
  • 不清楚某个对象到底有哪些属性和方法,可以选中该对象,然后按F1,系统会自动跳转到帮助页面,很推荐。

好了,本次的介绍就到这儿,如果你在读的过程中有什么疑问或者建议,欢迎留言讨论;如果觉得有帮助,麻烦点赞支持,谢谢。

最后说明:因为头条对markdown支持不是很完整,代码支持的可读性很差,所以文中代码部分我使用了截图,需要源代码的麻烦关注一下我的微信公众号“码上有效率”,或者扫下面的二维码,谢谢关注。

VBA对象的方法、属性、事件及编程小技巧

参考文章

  • https://docs.microsoft.com/zh-cn/office/vba/language/reference/user-interface-help/sub-statement
  • https://docs.microsoft.com/zh-cn/office/vba/language/reference/user-interface-help/function-statement
  • https://wenku.baidu.com/view/ce900524b9f3f90f77c61b84.html


分享到:


相關文章: