엑셀 오토마우스

2018. 7. 29. 18:04MS Office/Excel

엑셀 오토마우스



업무 시 보안때문에 오토키보드 등 마우스를 사용하지 못하는 경우

엑셀로 이를 대체하는 방법이 있다.



엑셀에서 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 등을 이용 및 응용하여 오토마우스를 만들어 사용한다.






'MS Office > Excel' 카테고리의 다른 글

엑셀 maxif 사용하기  (0) 2018.07.31