VBA для изменения курсора Excel для Workbook на Workbook_Open - PullRequest
0 голосов
/ 25 июня 2019

Есть ли способ изменить курсор Excel для конкретной книги? Не могу найти никакого решения для этого.

Моя рабочая книга заблокирована для редактирования ячеек, доступны только определенные ячейки, и я хочу заменить этот курсор в Excel:

enter image description here

По указателю:

enter image description here

Я прошел через это, но не понимаю, возможно ли реализовать это в Workbook? https://docs.microsoft.com/en-us/office/vba/api/excel.application.cursor

Private Sub Workbook_Open()
Application.Cursor = xlDefault
End Sub

1 Ответ

1 голос
/ 25 июня 2019

В ThisWorkbook модуле кода вы можете сделать что-то вроде этого. Идея заключается в том, что мы фиксируем начальный стиль курсора при открытии рабочей книги (событие Workbook_Open вызывает changeCursor, в котором текущий стиль курсора сохраняется в переменной cursor. Затем мы добавляем еще несколько обработчиков событий, чтобы при книга теряет фокус (Workbook_Deactivate) и перед закрытием (Workbook_BeforeClose) мы восстанавливаем этот курсор в прежнем стиле с помощью метода * 1007. * Могут быть дополнительные крайние случаи, которые я не рассматривал, но это Общая идея, которую вам нужно реализовать.

Option Explicit
Private cursor As Long

Private Sub Workbook_Activate()
changeCursor
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
resetCursor
End Sub

Private Sub Workbook_Deactivate()
resetCursor
End Sub

Private Sub Workbook_Open()
changeCursor
End Sub

Private Sub changeCursor()
cursor = Application.cursor
Application.cursor = xlNorthwestArrow
End Sub
Private Sub resetCursor()
On Error Resume Next
Application.cursor = cursor
If Err.Number <> 0 Then
    Application.cursor = xlDefault
End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...