ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:241.17KB ,
资源ID:14418653      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14418653.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VBA类隐者的秘密Word格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VBA类隐者的秘密Word格式.docx

1、1什么是类2什么缘故要学习类3类的预备知识4创建类属性5创建类方式6创建类事件7一个完整的类实例8未完的结尾估量10天左右完成,权做朋友们中场休息了,呵呵。一、什么是类在咱们身旁,相同或相似的物品无处不在,从生活用品,到工业产品,通常它们都是由同一个能够称为“模具”的东西生产出来。明白得类,一样要先从对象谈起,但由于从不同的角度,有不同的明白得,从而也有不同的关于类的概念,本文不去探讨一个完整而且公认的类概念,在这一部份后,只要你有一个大体的判定而且在碰到时明白是类就能够够了。在上面的那个例子中,一个“模具”确实是一个“类”,而由它生产出的每一个产品,确实是一个“对象”。看下面的VBA语句:D

2、im tx1 As Textbox 不用说明它的意思吧,那个地址咱们用到一个类Textbox概念了一个对象tx1,再来看:Dim tx2 As Textbox 又概念了一个对象tx2,若是你不嫌烦,我还能够继续下去。对象增加了,但As后的Textbox没有变,它能够无穷制的利用下去。类是一个隐者,上面Textbox是VBA已经给咱们预备好的一个类,咱们无法明白VBA是怎么预备的(它的真身被隐藏了),但咱们能够明白对象tx1怎么用。VBA把对对象的利用划分为三种,属性、方式和事件(后面预备知识咱们再提)。但是,Textbox是一个类,仍然不是本文要说的类,因为它是VBA已经给咱们预备好了的,咱们

3、要做的,只是明白如何利用它罢了。本文要介绍的,是利用VBA已经给咱们提供的资源,来构建咱们自己的类,姑且可称之为自概念类。这需要在VBE下,通过插入类模块,然后向类模块中写入代码来完成。这确实是你常常听说的类,本文的主题确实是那个包括代码的模块!通过那个模块,能够提供给咱们一个和VBA提供给咱们的诸如Textbox功能性质完全相同的类,然后,再由咱们自己象利用Textbox一样利用!类是一个隐者,她把自己藏在所有模块的最后,乃至在多数情形,她从不出场。此刻,她挂着神秘的微笑,向你走来,你要拒绝吗?二、什么缘故要学习类类通常被以为是学习VBA的难点之一,之因此如此,因为相关于制造一个标准模块或用

4、户窗体,咱们能够找到的类的学习资源少之又少,乃至很多VB的书籍也只有缪缪字语(在后面的预备知识,咱们再提另一个重要的缘故)。从技术角度上看,类的构建,不象窗体,VBA的类也不象有些语言提供了可视的设计界面,感性上那样直接,隐者!她是不可视的设计,所有的构定都是通过在类模块中写代码来实现的。2.1.学习是一种爱好的追求俗语云:学的千万万,用的有几何?又曰:书到历时方恨少。林语堂先生将做学问划分为三重境遇,第二重说“为伊消得人憔悴,衣带渐宽终不悔”,大多数朋友,包括本人,都不是专业程序员,学习程序只是一种爱好和爱好,就好象有人喜爱*网游一样,对喜爱程序的人,不断地学习和提高,也是一种追求优秀的态度

5、,而且乐意享受那个追求的进程。模块、控件、链接库和类组成软件工程开发的四大技术,而类技术是控件和链接库技术的基础,咱们不能不学。2.2.类有什么用如你前面看到的咱们利用Textbox类,类能够创建大量性质相近的对象,减轻咱们的程序量,简练代码并提高效率。记得清风兄做过一个扫雷的程序,100颗雷,若是没有类,光是单击的代码你就要写100个!类概念后,在其它模块中利历时,咱们就能够够临时忘记或没必要考虑它内部复杂的细节,让咱们变得轻松,VBA尽管不能真正封装类的形式,但在那个地址,咱们能够封装它的概念。这并非是类的全数益处,其它的,留着朋友们用的时候慢慢体会吧。类挂着神秘的微笑,已经走到你的大门口

6、,开门迎接她吧,你还等什么?三、类的预备知识广义上讲,所有VBA的知识,包括语句、函数和为咱们提供的标准类乃至第三方的资源都能够在类中被利用。本文无法也不预备一一探讨,那个地址只说一些最紧密最大体的,但即便如此,笔者仍然不能把这些点的知识都写到,乃至因为对问题说明清楚或符合逻辑的需要,采纳非标准的表述,对专门问题的全面明白得,请读者注意参考有关标准帮忙文档并加以甄别。3.1.从构建者的角度明白得对象上一回咱们提到,类被以为是VBA难点还有一个缘故,这确实是咱们的思想!VBA提供了大量的现成的类,咱们几乎再也不需要去构建自己的类,这种结果,咱们熟练地适应了从利用者的角度去明白得类的实例:对象,包

7、括它的属性、方式和事件。可是,此刻你还要尝试做一个提供者,这和你作为利用者时的试探方式是完全不同的,乃至是革命性的。这种角色的转位是痛楚的,它需要你舍弃你本来能够自豪地说明出对象和它的属性、方式、事件的概念,它们本来是如此逻辑地被划分,如此清楚,但此刻,类模块中的一切,彼此交织,你会发觉它们都模糊了!是需要你忘掉所有固执的“招势”的时候了,当你心中无剑时,转位也就完成了,隐者变得清楚了,她是如此漂亮。且慢,在你完全忘掉前,让咱们最后再看一眼它们的样子,呵呵,若是你实在忘不掉,你就提示一下自己构建者的身份吧。下面是通常情形下关于对象、属性、方式、事件的大体表述,若是你以前没了解过,那么应当找些资

8、料先认真地明白得它们,然后再依照上面的提示去做。对象是由类创建的一个实例,它是类的实体化。对象的引用和操作被逻辑上划分为不重叠的三个部份:属性是指对象的特性。以前面的Textbox为例,有长度,高度,框中显示的文字等等。方式是指对象的某个操作。如让Textbox成为当前的核心(即光标移动到它上面)。事件是指对象对外部动作的响应。如咱们用鼠标点击Textbox时,会产生一个Click事件,改变它的值,那么产生一个Change事件。3.2.变量的作用域变量因为声明的位置和方式不同,从而有不同的作用域。作用域是指变量在多大范围内能被代码识别。能够划分为进程级、模块级和全局变量。进程级变量在进程中声明

9、,那个地址进程指的是一个Sub或Function,也包括后面提到到属性进程。通经常使用Dim或Static进行声明。Dim声明的变量,只在该进程执行时存在,进程终止,变量的值也就消失了。Static声明的变量称为静态变量,那个值在整个程序运行期间都存在。模块级变量对整个模块的所有进程都有效,但对其它模块不可用。能够在模块顶部声明。声明模块级变量用Private关键字和直接利用Dim没有区别。但推荐利用Private进行声明,因为如此能够方便地与后面的全局变量区分开来。全局变量是对整个VBA工程的所有进程都有效的变量,利用Public关键字在标准模块的顶部来声明。在类模块中,对变量作用域的明白得

10、要注意下面两点:(a)由于类是生成对象的模具,每生成一个对象,相当于产生了一个副本,那个副本确实是对象的“真身”,副本间是彼此独立的,从而,模块级的变量只作用于副本自身。(b)类模块中利用Public关键字,只有当对象变量是那个类的实例时,才能被访问。3.3.进程和函数变量、进程(Sub)、函数(Function)是咱们在标准模块中利用的最大体的构件,在类摸块中,它们仍然是最大体和重要的角色。关于它们,你已经再熟悉只是,之因此前面还要花这么多文字,是为了突出它的重要,也是想让你轻松一下,哦,我花了很短的时刻已经看了这么多(我也写了这么多!)。进程和函数并无实质的区别,当需要返回值时,就利用Fu

11、nction,若是不需要返回任何结果,随你的爱好,但这时推荐你利用Sub,因为如此更符合微软的本意。进程(Sub)、函数(Function)也有作用域,在标准模块中通过利用Private和Public关键字(能够省略Public关键字,因为它是默许的),能够划分为模块级和全局级,以决定它是在当前的模块有效仍是整个工程有效。同变量一样,在类模块中利用Public关键字,只有当引用对象变量是那个类的实例时,才能被访问。3.4.通用内部控件Control(s)VBA提供Control类作为一样内部控件类型,当利用 Dim Ct As Control 声明了一个变量后,就能够够将任何控件赋给该变量,而

12、不管具体的类型,因为在类的利用一般是处置大量相近的对象,因此这种特性超级有效。在实际利历时,咱们多是通过容器控件的Controls属性来返回一个Control的集合对象。 For Each Ct In If TypeName(Ct) = CommandButton Then MsgBox Next 上面这段代码能够遍历窗体的所有控件并报告找到的命令按钮。3.5.集合CollectionCollection是咱们在利用类时最经常使用到的对象。一个Collection对象代表一组相关的项目,尽管它的成员并非被强制要求是同一类型的的,但请记住,这通常并非能给咱们带来额外的方便,相反,咱们一般是用来搜

13、集同一类型的数据。成立集合的方式和成立其它对象一样,如:Dim col As New Collection 集合成立后,能够利用Add方式添加成员,用Remove方式删除成员,用Item方式从集合中返回特定成员。Private Sub CommandButton1_Click() Dim col As New Collection Dim i% Dim ct As Control For Each ct In If Left, 7) = TextBox Then ct Next ct For i = To 1 Step -1 MsgBox 下面删除成员 & (i).Name i Next i

14、End Sub 上面的代码先将窗体上所有的TextBox加入到集合中,然后再删除掉。Count属性返回集合的成员数量,Remove方式后面的参数是集合成员的索引号。成员的索引号一般是依照加入的顺序自然编号,从1开始,但能够在加入时利用Add方式的参数进行改变。Add方式的完整语法是: item, key, before, after item 必需的。任意类型的表达式,指定要添加到集合中的成员。key 可选的。唯一字符串表达式,指定能够利用的键字符串,代替位置索引来访问集合中的成员。before/after 可选的。表达式,指定集合中的相对位置。下面语句向集合增加一个对象TextBox1,并概念该成员的关键字为tx1。 TextBox1, tx1 然后,下面两句都能够向集合中增加一个TextBox2,并把它放在成员TextBox1的前面。 TextBox2, , TextBox2, , 第一句中,因为只有一个成员,因此也是索引号3.6.利用事件的WithEvents变量WithEvents不是一个单独的语句,为了利用对象的事件,需要在声明该对象时利用WithEvents关键字。例如:Dim WithEvents app As Application 将上面的语句写入ThisWorkBook的模

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1