VB封装Excel - VBA成DLL技巧

更新时间:2023-03-15 17:37:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

VB封装Excel_VBA成DLL技巧

VB封装Excel_VBA成DLL技巧

使用VB6.0在WinXP_sp2、Excel 2000环境下制作、测试通过。一、启动VB6.0: 执行:“文件夹(F)”——“新建(N)”——选择“ActiveX DLL”,如下图1:二、引用:VB中对Excel的引用 执行:“工程(P)”——“引用(N)”——选择所要引用的项目:如下图2 Excel 2000中:

Microsoft Excel 9.0 Object Library

Microsoft Office 9.0 Object LibraryExcel 2003中: Microsoft Excel 11.0 Object Library

Microsoft Office 11.0 Object Library三、编写代码: 1、将工程默认名称“工程1”,改为“zygtest”,将类模块默认名称“Class1”, 改为“zyg365”,

2、在类模块的代码编辑区写入代码:如下图3

模块名称为“hongtong”,代码如下 在VB中编写代码时:要注意以下声名 Dim XLAPP As Object

Set XLAPP = GetObject(, \

代码中引用对象,如SHEET,Cell等,前面要加“XLAPP.”

(或按照 Sub hongtong() 中的格式编写。)Sub hongtong()

Dim excelApp As New Excel.Application Dim excelWorkBook As Excel.Workbook Dim excelWorksheet As Excel.Worksheet

Set excelWorkBook = excelApp.Workbooks.Add '创建新工作簿

Set excelWorksheet = excelWorkBook.Sheets(1) excelWorksheet.Cells(2, 3) = \宏通\ '写入数据 excelWorksheet.Cells(3, 4) = \ '写入数据 excelApp.Visible = True '显示excel界面,用于调试 excelWorkBook.PrintPreview '打印预览 excelWorkBook.PrintOut '打印输出 excelWorkBook.Saved = True

'excelWorkBook.Close '关闭工作薄 'excelApp.Quit '退出excel

End Sub四、工程属性设置:(可以不设置,本步骤可以省略) 为了使自己开发的程序更规范,可以对本工程的属性加以描述:如下图4

执行:“工程(P)”——“工程1属性(E)…”(当前工程中为:“zygtest属性(E)…”)五、保存工程、测试、打包生成Dll文件:

1、保存:单击保存,保存到一个文件夹中;

2、测试:执行工具栏上的“启动”(右向的三角图标)按钮,检查是否存在错误; 3、打包生成Dll文件:

执行:“文件(F)”——“生成工程1.dll(K)”(当前工程中为:“zygtest.dll”),

重命名为“zyg.dll”,至此,Dll文件制作结束。六、在Excel_VBA工程中引用、调用zyg.dll文件:如下图51、引用zyg.dll文件:

首先在Excel的VBE窗口中,执行“工具(T)”——“引用(R)”——在“引用”对话框中,

单击“浏览(B)…”按钮,找到“zyg.dll”文件——“确定”即可。

在工作簿事件中,编写代码:工作簿启动时,注册“zyg.dll”控件,工作簿关闭时,反注册

“zyg.dll”控件:在ThisWorkbook中:Private Sub Workbook_Open() '注册、引用zyg.dll

Shell \ThisWorkbook.Path & \vbHide End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean) '反注

册zyg.dll

Shell \ThisWorkbook.Path & \vbHide

End Sub2、编写调用zyg.dll中代码的模块: Sub test()

Dim kk As New zyg365 'zyg365为VB中类模块名称:输入完New后,敲空格键,

'直接出现选择列表框,从中选择“zyg365”

'kk可任意命名

kk.hongtong 'hongtong为VB中要执行的模块的名称:输入完kk.后,

'直接出现选择列表框,从中选择“zyg365” '为你的VB中的过程名称,从列表中选的 Set kk = Nothing '释放类资源

End Sub 以上技巧主要是从本论坛及ExcelHome论坛学习、借鉴,然后查阅一些资料编制而成,首先感谢本论坛中不吝赐教的各位版主、网友们,因水平有限,错误、不当之处难免,敬请各位朋友继续不吝指教。

本文来源:https://www.bwwdw.com/article/hl6v.html

Top