制作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, 下载次数: 4036)
[此贴子已经被作者于2008-9-20 22:05:36编辑过] |