Процедура Visual Basic для получения или задания позиции курсора


Аннотация


Можно сделать вызов Windows API (интерфейс прикладного программирования) для библиотеки DLL Microsoft Windows (динамическая библиотека) для получения и задания текущей позиции курсора. Текущее положение можно получить с помощью функции GetCursorPos в USER32. DLL.

Дополнительная информация


Microsoft Excel не имеет встроенные функциональные возможности для получения или установки позиции курсора. Тем не менее можно в Microsoft Excel Visual Basic для приложений макроса используйте оператор Declare, для вызова функции Microsoft Windows для доступа к текущей позиции. Можно также использовать другую функцию SetCursorPos для установки положения курсора. Функция SetCursorPos используется в структуре цикла для перемещения курсора по экрану. Корпорация Майкрософт предоставляет примеры процедур Visual Basic для приложений только для иллюстрации и без гарантии или подразумеваемых, включая, помимо прочего, подразумеваемые гарантии товарности или пригодности для определенной цели. Visual Basic процедуры, описанные в этой статье предоставлены «как есть» и корпорация Майкрософт не гарантирует, что они могут использоваться во всех ситуациях. Хотя специалисты службы технической поддержки Майкрософт могут объяснить возможности конкретного макроса, они будут изменять примеры для расширения его функциональности, а также они помогут вам создавать макросы для удовлетворения конкретных потребностей. Если вопросам программирования может потребоваться обратитесь к одной из поставщиков решений корпорации Майкрософт. Поставщики решений предоставляют широкий спектр платных служб, включая создание пользовательских макросов. Дополнительные сведения о поставщиках решений Microsoft вызов сведений служба поддержки клиентов на (800) 426-9400.

ПРИМЕРЫ

  1. Введите следующий код в новый модуль:
    ' 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
  2. Щелкните в любом месте внутри текста процедуру Get_Cursor_Pos и нажмите клавишу F5 для запуска макроса Get_Cursor_Pos. Вы получите окно сообщения отображается с помощью координат текущего положения указателя мыши.
  3. Щелкните в любом месте внутри текста процедуру Set_Cursor_Pos и нажмите клавишу F5 для запуска макроса Set_Cursor_Pos.
Курсор будет перемещение по диагонали вниз по экрану.