Sammanfattning
Du kan ringa Windows API-anrop (application programming interface) till ett Microsoft Windows DLL-bibliotek (dynamic-link Library) för att hämta och ställa in den aktuella markörpositionen. Du kan få den aktuella positionen genom att använda funktionen GetCursorPos i USER32.DLL.
Mer information
Microsoft Excel har inte de inbyggda funktionerna för att få eller ställa in markörens position. Du kan dock använda Declare-satsen i ett Microsoft Excel Visual Basic for Applications-makro för att anropa en Microsoft Windows-funktion för att komma åt den aktuella positionen. Du kan också använda en annan funktion Som SetCursorPos för att ställa in markörens position. Funktionen SetCursorPos kan användas i en slinga för att flytta markören över skärmen.
Microsoft tillhandahåller exempel på Visual Basic for Applications endast för illustrationer, utan garantier som vare sig uttrycks eller underförstådda, inklusive, men inte begränsat till, underförstådda garantier om säljbarhet och/eller lämplighet för ett visst ändamål. De Visual Basic i den här artikeln anges "som är" och Microsoft garanterar inte att de kan användas i alla situationer. Microsofts supportpersonal kan hjälpa dig att förklara funktionaliteten i ett visst makro, men de ändrar inte de här exemplen för att ge ytterligare funktioner, och de hjälper inte heller dig att skapa makron efter dina specifika behov. Om programmeringsupplevelsen är begränsad kan du kontakta någon av Microsofts lösningsleverantörer. Lösningsleverantörer erbjuder ett brett utbud av avgiftsbaserade tjänster, inklusive att skapa egna makron. Mer information om Microsoft-lösningsleverantörer finns på Microsofts kundtjänst (800) 426-9400.
EXEMPEL
-
Skriv in följande kod i en ny modul:
' 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 -
Klicka någonstans i texten på Get_Cursor_Pos rutin och tryck på F5-tangenten för att köra Get_Cursor_Pos makrot.
Ett meddelande visas med koordinaterna för muspekarens aktuella position. -
Klicka någonstans i texten på Set_Cursor_Pos rutinen och tryck på F5-tangenten för att köra Set_Cursor_Pos makrot.
Markören flyttas diagonalt nedåt över skärmen.