Office中国论坛/Access中国论坛

标题: [原创]自定义增加EXCEL 的一些事件的DLL. [打印本页]

作者: stanleypan    时间: 2007-4-5 03:08
标题: [原创]自定义增加EXCEL 的一些事件的DLL.
对于Private Sub Workbook_Open()等事件,其实这些事件也是代码写在:EXCEL.EXE里面.从Object Browser里面可以查到:
Library        Class                Member
Excel         Workbook             Open
在WINDOWS下事件是由消息驱动来产生的.
所以通地子类化,钩住相关消息可以自定义一件事件.
对于EXCEL中不支持MouseMove,MouseUp,WheelMoved等等事件.
特做了此DLL.
缺点是占用CPU比较多.


作者: stanleypan    时间: 2007-4-5 22:15
Option Explicit
Dim WithEvents sh As MouseHook.cSystemHook
Dim WithEvents Wb As Excel.Workbook   '= Dim WithEvents Wb As Workbook
Private Sub sh_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
On Error Resume Next
Application.Caption = "X:" & x & ";" & "Y:" & y & " " & ActiveWindow.RangeFromPoint(x, y).Address
ActiveWindow.RangeFromPoint(x, y).Activate
End Sub
Private Sub sh_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "KeyDown:" & KeyCode & "; " & Shift; ""

End Sub
Private Sub sh_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
On Error Resume Next
If Button = 1 Then
   Debug.Print "你按了左键"
End If
If Button = 2 Then
   Debug.Print "你按了右键"
End If   '
If Button = 4 Then
   Debug.Print "你按了中键"
End If
End Sub
'写入Workbook事件中相当不稳定.
Sub StartHook()
Set sh = New cSystemHook
sh.SetHook
End Sub
Sub StopHook()
sh.RemoveHook
Set sh = Nothing
End Sub

Private Sub sh_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Debug.Print "Mouse Up:" & Button & "; " & Shift; ""
End Sub

Private Sub sh_WheelMoved(Button As Integer, Shift As Integer, x As Single, y As Single)
Debug.Print "WheelMoved:" & Button & "; " & Shift; ""
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
sh.RemoveHook
Set sh = Nothing
End Sub
Private Sub Workbook_Open()
Set sh = New cSystemHook
sh.SetHook
End Sub



作者: WXHNR    时间: 2008-5-18 11:37
顶一下
作者: jxtao    时间: 2008-6-17 18:24
标题: thx
thx
作者: 风流第一人    时间: 2008-6-30 20:19
dddddddddddddddd
作者: 风流第一人    时间: 2008-6-30 20:20
thank you!!!
作者: 风流第一人    时间: 2008-6-30 20:20
dddddddddddddd
作者: jfxwc    时间: 2008-7-6 12:24
小气啦,直接放出来就好。
作者: jfxwc    时间: 2008-7-6 12:25
小气啦,直接放出来就好。
作者: jfxwc    时间: 2008-7-6 12:25
小气啦,直接放出来就好。
作者: 4color    时间: 2008-7-7 11:22
恩 [:26] [:30] [:34]
作者: 30297047    时间: 2008-11-1 01:25
ddddd
作者: anjing572    时间: 2008-11-1 18:11
www.office-cn.net
作者: zhoudafang    时间: 2008-11-18 14:53
thank you!!!
作者: dickfish9226    时间: 2008-11-20 20:38
广告歌
作者: zhanghutao    时间: 2009-3-2 16:32
呵呵,不错
作者: WMY920130    时间: 2009-3-21 15:06
小气啦,直接放出来就好
作者: aaaaa1234    时间: 2009-4-3 13:14
gdfgdgdg
作者: oure    时间: 2009-4-11 10:10
看来挺复杂
作者: CRCT    时间: 2009-7-17 23:31
aaaaaaaaaaaaaaaaaaaaaaaaaaaa
作者: sun00001    时间: 2009-9-10 00:38
llllllllllllllllllllllll
作者: goway    时间: 2009-12-4 11:07
顶一下,下来看看。
作者: botjoe    时间: 2011-11-27 02:19
小气啦,直接放出来就好
作者: /kuk心如止水    时间: 2013-5-25 15:19
{:soso_e152:}{:soso_e152:}




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3