在看完VB课本以及敲完百例之后,用了很长的时间看完了陈伟视频,有的视频没有声音,画面卡顿,属实让自己有些暴躁,强忍着想砸电脑的冲动把视频看完了。看完这些视频之后确实对一些知识点有了更深的理解。有下:
窗体模块、标准模块和类模块的区别
1、窗体模块
由于VB是面向对象的应用程序开发工具,所以应用程序的代码结构就是该程序在屏幕上表示的对应模型。根据定义,对象包含数据和代码。应用程序中的每个窗体都有一个相对应的窗体模块(文件扩展名为.frm)。
窗体模块是VB应用程序的基础。窗体模块可以包含处理事件的过程、通用过程以及变量、常数、自定义类型和外部过程的窗体级声明。写入窗体模块的代码是该窗体所属的具体应用程序专用的;也可以引用该程序内的其它窗体和对象。
每个窗体模块都包含事件过程,在事件过程中有为响应该事件而执行的程序段。窗体可包含控件。在窗体模块中,对窗体上的每个控件都有一个对应的事件过程集。除了事件过程,窗体模块还可包含通用过程,它对来自该窗体中任何事件过程的调用都作出响应。
2、标准模块
标准模块是程序中的一个独立容器,包含全局变量、Function(函数)过程和Sub过程(子过程)。
可将那些与特定窗体或控件无关的代码放入标准模块中。标准模块中包含应用程序内的允许其它模块访问的过程和声明。它们可以包含变量、常数、类型、外部过程和全局声明或模块级声明。写入标准模块的代码不必固定在特定的应用程序上。
3、类模块
在VB中类模块是面向对象编程的基础。可以在类模块中编写代码建立新对象。这些新对象可以包含自定义的属性和方法。实际上,窗体正是这样一种类模块,在其上可安放控件,可显示窗体窗口。
用类模块创建对象,这些对象可被应用程序内的过程调用。标准模块只包含代码,而类模块包含代码又包含数据,可视为没有物理表示的控件。
Get、Let和Set的区别
1、在类模块中
- Property Get 语句:在Class块中,只读取(返回)的值的Property,返回值可以是对象变量或普通变量。
- Property Let 语句:在Class块中,是给普通变量进行赋值操作的Property,该种Property将不能在其前面使用Set,因而用户将不能对对象变量进行赋值。
- Property Set 语句:在Class块中,是给对象变量进行设置引用操作的Property。
2、在普通模块中
Let语句是对普通变量赋值,使其指向该对象,将对象引用赋给变量或属性,默认情况下省略Let。
Set语句将一个对象赋值给一个变量,使其指向该对象,将对象引用赋值给变量或属性。
Sub test()
'Let 与 Set的区别,Let是一般变量赋值,Set是对象变量赋值
Dim a As Integer
Dim rng As Range
Let a = 3
MesBox a
Set rng = Range("a1")
End Sub
Set的语法
Set objectvar = {[New]objectexpression | Nothing}
Set语法的语法包含下面部分:
objectvar 必需的,变量或属性的名称,遵循标准变量名约定
New 可选的, 通常在声明时使用New,以便可以隐式创建对象。如果New和Set一起用,则将创建该类的一个新实例。如果obgectvar包含了一个对象引用,则在赋予新值的时候释放该引用。不能使用New关键字来创建任何内部数据类型的实例。
objectexpression 必需的,由对象名,所声明的相同对象类型的其他变量,或者返回相同对象类型的函数或方法所组成的表达式。
Nothing 可选的, 断绝Objectvar与任何指定对象的关联,如果没有其他变量指向objectvar原来所引用的对象,将其赋为Nothing会释放该对象所关联的所有系统及内存资源。