엑셀 오토마우스
엑셀 오토마우스
업무 시 보안때문에 오토키보드 등 마우스를 사용하지 못하는 경우
엑셀로 이를 대체하는 방법이 있다.
엑셀에서 Alt+F11로 VBA로 진입하여 좌측의 VBA Provject에 우클릭 후 삽입-모듈 클릭
생성된 모듈에서 다음과 같은 코드 입력
Public Declare Function SetCursorPos Lib "user32" (ByVal X As Integer, ByVal Y As Integer) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) 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
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10
Public Type POINTAPI
X As Long
Y As Long
End Type
Sub getCursor()
Dim Cpos As POINTAPI
GetCursorPos Cpos
MsgBox Cpos.X & ", " & Cpos.Y
End Sub
Sub setCusor()
SetCursorPos 600, 500
End Sub
Sub click()
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub
Sub doubleclick()
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
Sub rightclick()
mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
End Sub
닫은 후 엑셀 메뉴 중 보기-매크로-매크로보기에서 getCursor를 사용하여 현재 마우스 포인터의 위치를 알아낸다
위와 같이 알아 낸 후 setCursor를 사용하여 마우스의 위치를 변경가능하다.
이후 click, doubleclick, rightclick 등을 이용 및 응용하여 오토마우스를 만들어 사용한다.