分享

如​何在vba中用mouse_event操作鼠标?

 winona535 2019-09-06

如何在vba中用mouse_event操作鼠标?

2018年2月7日 作者:exceloffice

暂无评论

api函数mouse_event可以实现各种鼠标操作,如左键单击、左键双击、右键单击、滑动滚轮等等。

它的语法如下

Visual Basic

VOID WINAPI mouse_event( _In_ DWORD dwFlags, _In_ DWORD dx, _In_ DWORD dy, _In_ DWORD dwData, _In_ ULONG_PTR dwExtraInfo );

1

2

3

4

5

6

7

VOID WINAPI mouse_event(

  _In_ DWORD     dwFlags,

  _In_ DWORD     dx,

  _In_ DWORD     dy,

  _In_ DWORD     dwData,

  _In_ ULONG_PTR dwExtraInfo

);

具体的参数含义可以看帮助文档。

以下是在vba中用api函数mouse_event执行鼠标双击操作的代码:

Visual Basic

Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) Public Const MOUSEEVENTF_LEFTDOWN = &H2 Public Const MOUSEEVENTF_LEFTUP = &H4 Sub QQ1722187970() x = Sheet1.Range("A1") y = Sheet1.Range("b1") SetCursorPos x, y mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 End Sub

1

2

3

4

5

6

7

8

9

10

11

12

13

Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Public Const MOUSEEVENTF_LEFTDOWN = &H2

Public Const MOUSEEVENTF_LEFTUP = &H4

Sub QQ1722187970()

    x = Sheet1.Range("A1")

    y = Sheet1.Range("b1")

    SetCursorPos x, y

    mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0

    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

    mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0

    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

End Sub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多