Caution:Ihave not yet upgraded all the modules to 64-bit Office, so some of the code maynot work in 64-bit Office, especially code that uses the Windows API functionswith the Declare syntax. Don't confuse 64-bit Office with 64-bit Windows. Allof the code will work fine in 32-bit Office, regardless of whether you have64-bit or 32-bit Windows.
大家好,我们继续VBA类的知识的学习,这讲开始我们进入到下册的学习。下册的讲解将主要突出实例讲解为主,这和上册有所不同,在这册的学习中大家会继续感悟到类的虚无和无形,在任何对象消失之后,感悟这种虚无与无形的永恒。
在上册中我们借助二师兄的成长,给大家展示了一个类模块从初始到逐步完善的过程,这个过程我们还没有最终的完结,因为需要先进行关于事件的引深讲解。这一讲和之后的几讲会在二师兄的成长中加入自定义的事件,让二师兄成为有血有肉的对象。
首先我们为生日事件添加一个年龄参数inAge。那么当你触发这个事件,向外部传播之前,需要给这个参数赋值。大家也许会注意到我的参数命名规则,一般是非常简单的。
1我的过程级代码中一般以MYNZ开始,如果需要增加必要的内容,则在后面加上必要的序号。
2变量命名时一般输入变量在前面有IN。
3 对于相似变量的命名则以英文字母为排序,比如一个变量I,之后如有必要不重复的变量,则命名为IA,之后是IB,等等。
这种命名非常简单和实用。
这里的变量命名为inAge,我们看具体的代码类模块的共用部分:
PrivatemyName As String '宿主myName
PrivatemyDOB As Date '宿主myDOB
PrivatemyAge As Integer '宿主myAGE
PrivatemyGender As String '宿主myGender
PublicSituation As String '属性:场合
PublicEvent BIR(inAge As Integer)
PrivateWithEvents myTEXT As MSForms.TextBox
PublicEnum pGender
Female = 1
Male = 2
End Enum
代码的截图:
代码讲解:这里我定义了一个自定义的时间BIR(),在这个事件中需要传入的参数为INAGE。
在类模块中我们将要增加一个年龄的属性,作为秒年龄。为什么要增加这个属性呢?因为考虑到我们的代码监听的过程,如果一年才监听到一次,真的太慢了,那么我们将年龄的参数设置为秒年龄,每个一分钟会增加一岁,这样我们的监听会快速地实现些,为了这个新增的年龄属性,我们需要在类模块中完善写入下面的代码:
PublicProperty Let AgeA(inagea As Integer) '属性:年龄写
myAge = inagea
EndProperty
PublicProperty Get AgeA() As Integer '属性:年龄读
AgeA = myAge
EndProperty
同时要增加一个AgeA变量的宿主:
PrivatemyAge As Integer '宿主myAGE
代码的截图:
另外在类模块中,我们还要完善一下窗体的相应事件,这块的内容我们在下一讲进行讲解。
今日内容回向:
1 参数的命名要注意哪些问题?
2 在自定义事件中如何在声明时进行参数的传递设置?
备注:本讲的代码的测试程序为VBA-CLASS(下43-45).xlsm
在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。
学习VBA是个过程,这个过程是自己忍受孤独的过程。 “水善利万物而不争”,你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。 VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友: 第一套:VBA代码解决方案是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备; 第二套:VBA数据库解决方案数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。 第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。 第四套:VBA代码解决方案之视频是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。 第五套:VBA中类的解读和利用这是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。 学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。我的上述教程是我多的经验的传递,大家可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深入的逐渐学习。 最后将一阙词送给致力于VBA学习的朋友: 浮云掠过,暗语无声, 唯有清风,惊了梦中啼莺。 望星,疏移北斗, 奈将往事雁同行。 阡陌人,昏灯明暗,忍顾长亭。 多少VBA人, 暗夜中,悄声寻梦,盼却天明。 怎无凭! 分享成果,随喜正能量