Resumo
Você pode fazer uma chamada Windows API (interface de programação de aplicativos) para uma DLL do Microsoft Windows (Biblioteca de vínculo dinâmico) para obter e definir a posição atual do cursor. A posição atual pode ser obtida usando a função GetCursorPos em USER32.DLL.
Informações adicionais
Microsoft Excel não tem a funcionalidade criada para obter ou definir a posição do cursor. No entanto, você pode usar a instrução Declare em uma macro Microsoft Excel Visual Basic for Applications para chamar uma função Windows Microsoft para acessar a posição atual. Você também pode usar outra função SetCursorPos para definir a posição do cursor. A função SetCursorPos pode ser usada em uma estrutura de loop para mover o cursor pela tela.
A Microsoft fornece exemplos de Visual Basic for Applications apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Os Visual Basic neste artigo são fornecidos "como estão" e a Microsoft não garante que eles podem ser usados em todas as situações. Embora os profissionais de suporte da Microsoft possam ajudar a explicar a funcionalidade de uma macro específica, eles não modificarão esses exemplos para fornecer funcionalidades adicionais, nem ajudarão você a construir macros para atender às suas necessidades específicas. Se você tiver uma experiência de programação limitada, talvez você queira consultar um dos Provedores de Soluções da Microsoft. Os Provedores de Soluções oferecem uma ampla variedade de serviços baseados em taxas, incluindo a criação de macros personalizadas. Para obter mais informações sobre provedores de soluções da Microsoft, chame o Serviço de Informações do Cliente da Microsoft em (800) 426-9400.
EXEMPLOS
-
Digite o seguinte código em um novo módulo:
' Access the GetCursorPos function in user32.dll
Declare Function GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) As Long
' Access the GetCursorPos function in user32.dll
Declare Function SetCursorPos Lib "user32" _
(ByVal x As Long, ByVal y As Long) As Long
' GetCursorPos requires a variable declared as a custom data type
' that will hold two integers, one for x value and one for y value
Type POINTAPI
X_Pos As Long
Y_Pos As Long
End Type
' Main routine to dimension variables, retrieve cursor position,
' and display coordinates
Sub Get_Cursor_Pos()
' Dimension the variable that will hold the x and y cursor positions
Dim Hold As POINTAPI
' Place the cursor positions in variable Hold
GetCursorPos Hold
' Display the cursor position coordinates
MsgBox "X Position is : " & Hold.X_Pos & Chr(10) & _
"Y Position is : " & Hold.Y_Pos
End Sub
' Routine to set cursor position
Sub Set_Cursor_Pos()
' Looping routine that positions the cursor
For x = 1 To 480 Step 20
SetCursorPos x, x
For y = 1 To 40000: Next
Next x
End Sub -
Clique em qualquer lugar dentro do texto da rotina Get_Cursor_Pos e pressione a tecla F5 para executar a macro Get_Cursor_Pos.
Você receberá uma caixa de mensagem exibida com as coordenadas da posição atual do ponteiro do mouse. -
Clique em qualquer lugar dentro do texto da rotina Set_Cursor_Pos e pressione a tecla F5 para executar a Set_Cursor_Pos macro.
O cursor se move diagonalmente para baixo pela tela.