当前位置: 首页 > news >正文

第5讲:如何构建类的方法

【分享成果,随喜正能量】在这个社会上,对别人好一点,多站在别人的角度考虑,不要为小事争执,不要取笑他人,不要在别人背后嚼舌根,更不能逼人太甚。凡事退一步,对你有好处。。

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:第5讲:如何构建类的方法208a01634cf95f22d9738f49238eb350.jpeg

第五讲 如何构建类的方法

大家好,今天继续讲解VBA中类的解读及应用,今日讲解第5讲内容: 如何构建类的方法。在VBA代码中:属性、方法、事件是我们经常用到的,类也是一样。

这套书写到这里,大家对类已经有所了解,并知道了类属性是如何建立的。我在之前的讲解中讲过,类相当于“魂”,“魂”体现在属性中,“魂”的“肉身”相当于对象。我们在实际应用的时候也是利用对象的,构建对象的过程就是要把“魂”实例化的过程。如何利用这些对象呢?就是建立类的方法和事件。这讲的内容就是构建类的方法。构建类的方法其实就是在类模块中写公共的Sub和Function。

1类的应用环境

在讲解类的方法构建之前我们先看一下类的应用环境。类可以如同VBA提供给我们的很多标准类一样使用,类方法的应用环境也就是指包括类所在工程的其它成员在内的,可以调用的资源的集合,包含工作簿、工作表、窗体或其它。在类模块中,你可以象在标准模块中一样操作它们,千万不要因为换成了类模块而产生任何疑虑。类模块中的代码也如同标准模块中一样。在写代码时,如果你预期方法环境在运行时可能会有变化,你要事先预知它们并使用恰当的措施,比如:你不能确定运行时活动工作表的名称,你就可以使用ActiveSheet。这和我们在标准模块中的处理方式是一致的。

在类模块中创建方法,可以对工程中其它成员进行操作,和标准模块中的方式一样。

2在类模块中创建方法的过程

下面我们通过一个实例,来演示一下。在类模块中创建方法的过程,这一过程就是写公共的Sub和Function。

现在我们给前面提到的MyClass创建一个方法PutIntoActiverange功能:将x属性值写入活动单元格。

在类模块中写入下面的过程代码:

Public x$

Sub PutIntoActiverange()

   ActiveCell = x

End Sub

在标准模块中用下面的代码:

Sub mynzclass5() '第5讲构建类的方法,并应用

    Dim mycl As New MyClass

mycl.x = "VBA学习"

   mycl.PutIntoActiverange

End Sub

代码截图:

5dc168196b3d7b424f97a1a217a58044.jpeg

a4dece217b153f094ff9c0e5d69cad42.jpeg

代码的讲解:运行上述过程将在当前的活动单元格中写入"VBA学习"。PutIntoActiverange是类mycl的方法。运行结果:

787f49161c47fd603e7fe945e7c2bf02.jpeg

今日内容回向:

1 如何构建类的方法?

2 类的应用环境是怎么样的?

本讲内容参考程序文件:VBA-CLASS(1-28).xlsm

494a6ff40e90f1338a9266b04ab9168f.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


a6aec0af6ff2b79a1dc2cc3d588cab3d.jpeg

http://www.lryc.cn/news/116145.html

相关文章:

  • 【TypeScript】TS接口interface类型(三)
  • Python web实战之Django 的 RESTful API 设计详解
  • Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数)
  • 【MySQL系列】表约束的学习
  • 低功耗LoRaWAN国产低功耗LoRa+RF射频前端芯片XD6500S
  • 【基础IO】文件系统 {磁盘的物理结构,存储结构,逻辑结构;CHS 和 LBA 寻址方式;磁盘分区和块组;文件inode;软硬链接}
  • 全角字符和半角字符
  • 【java】【经验】java: 错误: 不支持发行版本 6
  • Spring Boot3.0(四):Thymeleaf 使用详解
  • 杨辉三角【Java二维数组】
  • 解决SpringBoot服务返回数据存在$ref $.data等相关问题
  • 【iOS安全】开启任意app的WebView远程调试
  • windows下 java程序无窗口启动、无窗口启动java -jar
  • 锦程消费金融业务生变:App下架,部分自营信贷暂停
  • Python爬虫在框架下的合规操作与风险控制
  • 前端页面如何创建表格?table的结构、属性有哪些?
  • 神码ai伪原创工具【php源码】
  • Linux命令200例:mkdir用于创建目录(常用)
  • C语言内嵌汇编
  • 《网络是怎样连接的》(三)
  • SpringBoot 配置文件
  • 【K8S】 deployment.yaml文件与Service yaml文件详解
  • GMSL 9296芯片对GMSL链路 插损/回损/线束要求
  • 用库造一个list的轮子 【C++】
  • java中的,>>,<<位运算
  • 成功解决Android设备adb连接后显示device unauthorized
  • 初识mysql数据库之引入mysql客户端库
  • 勘探开发人工智能技术:机器学习(1)
  • MySQL查看当前数据库视图-SQL语句
  • Clickhouse 存储引擎