VBA里,如何获取鼠标坐标?简单点

VBA,返回鼠标坐标值我要在其他过程中调用鼠标的X,Y坐标值。例如:subtest()callgetmouse_x_y'调用“获取鼠标坐标值过程”(假定你们给的过程/程序... VBA,返回鼠标坐标值
我要在其他过程中调用鼠标的X,Y坐标值。
例如:
sub test()
call getmouse_x_y '调用“获取鼠标坐标值过程”(假定你们给的过程/程序,名叫getmouse_x_y)
if x>100 and y>100 then …… '根据返回当前鼠标的坐标值执行某过程/程序
……
end sub
展开
 我来答
fotconn
推荐于2018-05-07 · TA获得超过3815个赞
知道小有建树答主
回答量:1302
采纳率:33%
帮助的人:954万
展开全部
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Type POINTAPI
X As Long
Y As Long
End Type

Public Function getmouse_x_y() As POINTAPI
GetCursorPos getmouse_x_y

End Function

sub test()
'call getmouse_x_y '调用“获取鼠标坐标值过程”(假定你们给的过程/程序,名叫getmouse_x_y)
if getmouse_x_y.x>100 and getmouse_x_y.y>100 then …… '根据返回当前鼠标的坐标值执行某过程/程序
……
end sub
chaohua008
2011-08-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5800
采纳率:14%
帮助的人:3029万
展开全部
只有在窗体中才有鼠标移动事件
在VBA中添加一个窗体,双击窗体输入代码:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Range("c1") = X
Range("c2") = Y
End Sub
运行时,只要鼠标在窗体上移动,就能在C1与C2单元格中显示坐标。
更多追问追答
追问
我要的是在VBA中,后台检测当前鼠标位置,然后根据得到的X、Y值执行条件语句,不知道你这个如何实现让我调用?
追答
做一个大点的窗体,能覆盖整个屏幕的,你只要在代码中调用窗体让它显示出来,这个代码就能发挥作用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lb781201
2011-08-16 · TA获得超过702个赞
知道小有建树答主
回答量:567
采纳率:50%
帮助的人:143万
展开全部
你想干什么,你可以用worksheet的selectionchang事件或chang事件来解决呀 ,你是不是想取得选定单元格的行号和列标呀
追问
我的excel表格在后台运行,就像windows屏幕保护程序,几分钟鼠标无动作则进入屏幕保护程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
美若之夏花
2011-08-16 · TA获得超过310个赞
知道答主
回答量:239
采纳率:0%
帮助的人:187万
展开全部
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Print X, Y
End Sub
主要是写在鼠标的移动事件里mousemove
更多追问追答
追问
我要的是当前鼠标位置,你的程序如何调用X、Y?
追答
上面的代码就是打印鼠标当前的位置,你可以把XY的值重赋给一个新的变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mycomecomebaby
2018-05-30
知道答主
回答量:54
采纳率:0%
帮助的人:6万
引用fotconn的回答:
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Type POINTAPI
X As Long
Y As Long
End Type

Public Function getmouse_x_y() As POINTAPI
GetCursorPos getmouse_x_y

End Function

sub test()
'call getmouse_x_y '调用“获取鼠标坐标值过程”(假定你们给的过程/程序,名叫getmouse_x_y)
if getmouse_x_y.x>100 and getmouse_x_y.y>100 then …… '根据返回当前鼠标的坐标值执行某过程/程序
……
end sub
展开全部
可以用ontime解决这个问题,隔几分钟获取一次,前后比对不就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式