作者:zyg365 发布日期:2011-06-06 22:03:17点击:13671
【宏通Excel_VBA Com加载宏制作通用模板】、Dll制作
一、创建工程: 打开VB6.0,新建一个外接程序
二、VB中添加引用:
在“工程”菜单中点击“引用”,然后选上“Microsoft Excel 9.0 Object Libray”这个选项,因为我用的是Excel2000版,其它版本的版本号就不是9.0,选择对应的即可。引用后,在代码编写过程中,就可以自动完成对象的属性、方法了。
三、设置设计器属性:
工程名称:VBA_COM
四、编写代码:
1、设计器代码:
Option Explicit
'加载时事件
Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As
AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
Set xlApp = Application
Set ExcelEvents = New VBAsoft 'VBAsoft:类模块名称
End Sub
'卸载后事件
Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
Set xlApp = Nothing
Set ExcelEvents = Nothing
End Sub
2、模块代码:
Option Explicit
Public xlApp As Excel.Application
Public ExcelEvents As VBAsoft 'VBAsoft:类模块名称
3、类模块代码:VBAsoft
Option Explicit
Public WithEvents XL As Excel.Application
Private Sub Class_Initialize()
Set XL = xlApp
Call zyg365 'zyg365后加的语句:这样确保刚打开的工作簿网格线就是要设置的颜色
End Sub
'工作簿事件:
Private Sub XL_NewWorkbook(ByVal Wb As Workbook)
Call zyg365
End Sub
Private Sub XL_WorkbookActivate(ByVal Wb As Workbook)
Call zyg365
End Sub
'工作表事件:
Private Sub XL_SheetActivate(ByVal Sh As Object)
Call zyg365
End Sub
Private Sub XL_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
'所有工作簿的所有工作表活动单元格都变色:高亮显示
XL.Cells.Interior.ColorIndex = xlNone '取消所有单元格的高亮显示颜色:恢复默认色
XL.Cells(Target.Row, Target.Column).Interior.ColorIndex = 3
End Sub
'通用模块代码:
Private Sub zyg365()
On Error Resume Next
If XL.ActiveWindow.GridlineColorIndex <> 14 Then XL.ActiveWindow.GridlineColorIndex = 14
MsgBox "宏通VBA软件工作室制:" & Chr(10) & Chr(10) & " Excel_VBA Com加载宏模板。", , "宏通VBA软件工作室:"
MsgBox "宏通VBA软件工作室制作:" & Chr(10) & Chr(10) & " http://www.vbasoft.com/" & Chr(10) & "QQ:798017976 Email:zyg365@126.com", , "宏通VBA软件工作室:"
frmAddIn.Show 0
End Sub
五、生成Dll,注册Dll。 【宏通加载宏制作通用模板】、Dll制作
制作方法、步骤请详见附件中的:
【宏通Excel_VBA Com加载宏通用模板】.chm
发表:
1、Office精英俱乐部:http://www.officefans.net/cdb/viewthread.php?tid=105292
2、ExcelHome论坛:http://club.excelhome.net/thread-431819-1-1.html