如何用代码创建类模块,VBA编程进阶学习,千万别错过
Excel vba编程进入深水阶段,那就对底层的一些代码构建有一定的了解。
类模块就是其重要的一环,可以利用类模块做一些十分有用的事情。
其实在VBA实际应用中,离不开类模块的运用,只有我们并不知道而已。
每一个代码之后,或许就应用到类模块,大多是系统给我们预置完成的一些模块,看上去并不能很明显地发现,但它实实在在的存在,并处理着所有的表格功能。
本节重点讲一下,如何利用代码来创建一个类模块和删除一个类模块。
然后再给新建的类模块添加代码,代码可以是你想构建的任何功能。
上图为本节示例中的部分代码。
三个按钮分别实现不同的功能,下面具体看代码进行认识,功能都进行了模块化构建,所以在使用的时候要分清楚什么地使用这些代码。
添加类模块过程:
Public Sub AddClassCode(ClassName As String, CodeString As String)'添加类模块代码Dim Class As ObjectFor Each Class In ThisWorkbook.VBProject.VBComponents If Class.Name = ClassName Then Class.CodeModule.AddFromString (CodeString) End IfNext ClassEnd Sub
删除类模块过程:
Public Sub DelClass(ClassName As String)'删除类模块Dim Class As ObjectFor Each Class In ThisWorkbook.VBProject.VBComponents If Class.Name = ClassName Then ThisWorkbook.VBProject.VBComponents.Remove Class End IfNext ClassEnd Sub
添加类模块代码过程:
Public Sub AddClassCode(ClassName As String, CodeString As String)'添加类模块代码Dim Class As ObjectFor Each Class In ThisWorkbook.VBProject.VBComponents If Class.Name = ClassName Then Class.CodeModule.AddFromString (CodeString) End IfNext ClassEnd Sub
调用如上代码使用下面的按钮过程:
Private Sub CommandButton1_Click()Dim ClassName As String, CodeString As StringClassName = 'NewClass01' '定义类模块名称DelClass ClassName '删除类模块addClass ClassName '添加类模块'定义类模块代码CodeString = 'Public s As New Worksheet' & VBA.vbCrLfCodeString = CodeString & 'Private Sub opensheet(s As Worksheet)' & VBA.vbCrLfCodeString = CodeString & 'Set s = ActiveSheet(2)' & VBA.vbCrLfCodeString = CodeString & 's.Select' & VBA.vbCrLfCodeString = CodeString & 'End Sub' & VBA.vbCrLfAddClassCode ClassName, CodeString '添加类模块代码End Sub
具体实现方法仔细看代码,就会慢慢明白。
下面列出重点代码:
- 添加类模块:ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule)
- 删除类模块:ThisWorkbook.VBProject.VBComponents.Remove '类模块对象'
- 添加类模块代码:ThisWorkbook.VBProject.VBComponents('类模块名').CodeModule.AddFromString (CodeString)
类模块是一个比较难学习的内容,要多次进行练习,如果很难入门,也不要太着急,如果不是深入编程,进行一些很繁杂的程序处理,基本也用不着。
但是,如果学会之后,那将是一个很大的进步。
至于如何利用类模块来实现一些功能,以后有机会,慢慢做一些示例进行讲解。
赞 (0)