Podsumowanie
Możesz wywołać interfejs Windows API (interfejs programowania aplikacji) do biblioteki DLL Microsoft Windows (biblioteki linku dynamicznego), aby pobrać i ustawić bieżące położenie kursora. Bieżącą pozycję można uzyskać przy użyciu funkcji GetCursorPos w programie USER32.DLL.
Więcej informacji
Microsoft Excel nie ma wbudowanej funkcji służącej do uzyskania lub ustawienia położenia kursora. Można jednak użyć instrukcji Declare w makrze Microsoft Excel Visual Basic for Applications w celu wywołania funkcji Microsoft Windows w celu uzyskania dostępu do bieżącej pozycji. Możesz również ustawić położenie kursora za pomocą innej funkcji SetCursorPos. Funkcji SetCursorPos można używać w strukturze pętli w celu przenoszenia kursora w poprzek ekranu.
Firma Microsoft podaje przykłady procedur Visual Basic for Applications tylko na ilustracji, bez gwarancji jawnych lub domniemanych, w tym z gwarancją dorozumianą z tytułu przydatności handlowej i/lub przydatności do określonego celu. Procedury Visual Basic w tym artykule są udostępniane "w takiej, w której są", a firma Microsoft nie gwarantuje, że będzie można ich używać we wszystkich sytuacjach. Pracownicy pomocy technicznej firmy Microsoft mogą pomóc w objaśnieniach funkcjonalności określonego makra, ale nie będą modyfikować tych przykładów w celu dodania funkcji ani nie będą pomagać w konstruować makra w celu zaspokojenia konkretnych potrzeb. Jeśli masz ograniczone środowisko programowania, możesz skonsultować się z jednym z dostawców rozwiązań firmy Microsoft. Dostawcy rozwiązań oferują szeroki zakres usług opartych na opłatach, w tym tworzenie makr niestandardowych. Aby uzyskać więcej informacji na temat dostawców rozwiązań firmy Microsoft, zadzwoń do działu informacji o klientach firmy Microsoft pod numer (800) 426-9400.
PRZYKŁADY
-
Wpisz następujący kod w nowym module:
' 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 -
Kliknij dowolne miejsce w tekście procedury Get_Cursor_Pos i naciśnij klawisz F5, aby uruchomić Get_Cursor_Pos makro.
Zostanie wyświetlone okno komunikatu ze współrzędnymi bieżącej pozycji wskaźnika myszy. -
Kliknij dowolne miejsce w tekście procedury Set_Cursor_Pos i naciśnij klawisz F5, aby uruchomić Set_Cursor_Pos makro.
Kursor zostanie przesunął się po przekątnej w dół ekranu.