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 展开
我要在其他过程中调用鼠标的X,Y坐标值。
例如:
sub test()
call getmouse_x_y '调用“获取鼠标坐标值过程”(假定你们给的过程/程序,名叫getmouse_x_y)
if x>100 and y>100 then …… '根据返回当前鼠标的坐标值执行某过程/程序
……
end sub 展开
5个回答
展开全部
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
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
展开全部
只有在窗体中才有鼠标移动事件
在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中添加一个窗体,双击窗体输入代码:
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值执行条件语句,不知道你这个如何实现让我调用?
追答
做一个大点的窗体,能覆盖整个屏幕的,你只要在代码中调用窗体让它显示出来,这个代码就能发挥作用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你想干什么,你可以用worksheet的selectionchang事件或chang事件来解决呀 ,你是不是想取得选定单元格的行号和列标呀
追问
我的excel表格在后台运行,就像windows屏幕保护程序,几分钟鼠标无动作则进入屏幕保护程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Print X, Y
End Sub
主要是写在鼠标的移动事件里mousemove
Print X, Y
End Sub
主要是写在鼠标的移动事件里mousemove
更多追问追答
追问
我要的是当前鼠标位置,你的程序如何调用X、Y?
追答
上面的代码就是打印鼠标当前的位置,你可以把XY的值重赋给一个新的变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用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
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解决这个问题,隔几分钟获取一次,前后比对不就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询