失恋重修手册吉他简谱:Excel VBA封装为Dll的例子、方法与总结【逐步完善中...】

来源:百度文库 编辑:中财网 时间:2024/05/11 14:27:50

VBA封装为Dll的例子、方法与总结【逐步完善中...】 [复制链接]

制作DLL时,ThisWorkBook中的代码封装方法如下:
1、打开VB6,新建ActiveX DLL。修改“工程”名称和“类模块”名称为需要的名称。本例中,工程修改为TestDLL,类模块修改为Test。
2、建立引用。一般需要引用Microsoft Office 11.0 Object Library和Microsoft Excel 11.0 Object Library。如果VBA代码中还有其他引用,在VB中也要对他们引用。
3、这一步就是具体封装代码了。
在刚才建立好的TestDLL中,将代码放入Test类模块中。
如封装ThisWorkBook中的Open事件:
Sub wbk_open(EApp As Excel.Application, wb As Excel.Workbook, sh As Excel.Worksheet)
'--VBA中需要封装的主体代码
End Sub
其中VBA中的代码为事先做好的要封装的代码,如下面这个例子:
'打开工作薄后在当前的工作表A1中输入Test
Private Sub workbook_open()
    Cells(1, 1) = "Test"
End Sub
封装为DLL的代码为:
Sub wbk_open(EApp As Excel.Application, wb As Excel.Workbook, sh As Excel.Worksheet)
    Cells(1, 1) = "Test"
End sub
现在在VB6中生成Dll,到此就完成封装了。
4、在VBA中使用封装的代码
首先,在VBA中要引用刚才生成的TestDll.dll。
然后新建一个模块,在其中定义这样一个变量T:
Public T As New TestDll.Test
然后在ThisWorkBook的Open中引用TestDll中的Test,代码如下:
Private Sub workbook_open()
   On Error Resume Next
   T.wbk_open Application, ThisWorkbook, ActiveSheet
End Sub
这样每次打开Excel后,就在Sheet1的Cells(1,1)中输入“Test”。
当然,如果你想在第2张工作表的A1中输入Test,那么可以这样用:
Private Sub workbook_open()
   On Error Resume Next
   T.wbk_open Application, ThisWorkbook, Sheets(2)
End Sub

以上就是代码封装的全过程,需要注意的是变量的传递要互相对应。

上面示例中的封装代码是用3个变量传递的,如果只用1个变量传递,代码如下:
'封装为DLL的代码为:
Sub wbk_open(sh As Excel.Worksheet)
    Cells(1, 1) = "Test"
End sub
'ThisWorkBook中使用Dll的代码为
Private Sub workbook_open()
   On Error Resume Next
   T.wbk_open ActiveSheet
End Sub

Dll文件和Test文件,测试时请重新引用TestDll.dll文件:KuUrBNQj.rar(9.68 KB, 下载次数: 1805)