在vba中,有很多预置的类,比如
Dim oWK As Worksheet
Worksheet就是一个类。
对象是类的实例化,比如Worksheet是工作表类,sheet1就是类的一个实例对象。
如果要新建一个类,可以在vbe编辑窗口 鼠标右键插入类模块。
其中类模块的名称就是类的名称。
我们知道类具有属性和方法和事件。
新建的类,如果要设置它的属性可以定义全局变量或者使用Property Get 语句设置属性。
比如新建了一个名为“类1”的类模块
然后添加如下的代码:
Public height As Long Property Get length() length = 100 height = 20 End Property
在标准模块中插入如下的代码:
Sub QQ1722187970() Dim obj As 类1 Set obj = New 类1 With obj MsgBox .length MsgBox .height End With Set obj1 = Nothing End Sub
从以上代码可以看出来,length ,height 都成为了 obj 的属性。
如果要为类指定方法,只需要在类模块中添加sub过程即可。
如下所示在类模块中输入以下代码:
Sub lyq() MsgBox 1 End Sub
然后在标准模块中输入以下代码:
Sub xyf() Dim obj As New 类1 With obj .lyq End With End Sub
就可以调用类的方法lyq了。
如果要为类的属性赋值,可以使用 Property Let 语句。
比如在类模块中输入如下代码:
Public lLen As Long Property Get length() As Long length = lLen End Property Property Let length(ByVal i As Long) lLen = i End Property
在标准模块中可以通过这样的代码给类的Length属性赋值:
Sub xyf() Dim obj As 类1 Set obj = New 类1 With obj .length = 123 End With End Sub
其中Property Let length(ByVal i As Long) 中的形参 i 表示要给属性Length的赋值,该形参类型要和Property Get length() As Long 中的返回值的类型一致。
发表评论