Resumo
Pode fazer uma chamada Windows API (interface de programação de aplicações) para uma DLL do Microsoft Windows (Biblioteca de ligação dinâmica) para obter e definir a posição atual do cursor. A posição atual pode ser obtida ao utilizar a função GetCursorPos em USER32.DLL.
Mais Informações
Microsoft Excel tem a funcionalidade incorporada para obter ou definir a posição do cursor. No entanto, pode utilizar a declaração Declare numa macro Microsoft Excel Visual Basic for Applications para chamar uma função do Microsoft Windows para aceder à posição atual. Também pode utilizar outra função DefinirCursorPos para definir a posição do cursor. A função DefinirCursorPos pode ser utilizada numa estrutura repetida para mover o cursor pelo ecrã.
A Microsoft fornece exemplos de procedimentos de utilização Visual Basic for Applications apenas para ilustração, sem garantia expressa ou implícita, incluindo, sem limitação, as garantias implícitas de comerciante e/ou adequação a um fim específico. Os Visual Basic procedimentos neste artigo são fornecidos "tal como estão" e a Microsoft não garante que podem ser utilizados em todas as situações. Embora os profissionais de suporte da Microsoft possam ajudar a explicar a funcionalidade de uma determinada macro, não irão modificar estes exemplos para fornecer funcionalidades adicionadas, nem o ajudarão a construir macros para satisfazer as suas necessidades específicas. Se tiver uma experiência de programação limitada, poderá consultar um dos Fornecedores de Soluções da Microsoft. Os Fornecedores de Soluções oferecem uma grande variedade de serviços baseados em taxas, incluindo a criação de macros personalizadas. Para obter mais informações sobre Os Fornecedores de Soluções da Microsoft, ligue para o Serviço de Informações do Cliente da Microsoft através do número (800) 426-9400.
EXEMPLOS
-
Escreva o seguinte código num 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 parte do texto da rotina Get_Cursor_Pos e prima a tecla F5 para executar a Get_Cursor_Pos macro.
Será apresentada uma caixa de mensagem com as coordenadas da posição atual do ponteira do rato. -
Clique em qualquer parte do texto da rotina Set_Cursor_Pos e prima a tecla F5 para executar a Set_Cursor_Pos macro.
O cursor desloca-se na diagonal para baixo no ecrã.