Программно установить курсор «Выбрать объекты» в Excel - PullRequest
2 голосов
/ 15 мая 2009

Я пытаюсь выяснить, как программно включить тип курсора «Выбор объектов». Я проверил браузер объектов и ожидал найти свойство типа Application.CursorType или Application.DrawingMode.

Изменение типа курсора не выполняется в макросе, и я должен искать неправильные термины, поскольку нигде не могу найти информацию об этом.

Редактировать: Я должен был дать понять, что я не говорю о появлении курсора, который можно установить с помощью Application.Cursor. Скорее, я хочу установить курсор в тот же режим, который можно установить с помощью графического интерфейса, щелкнув значок «Выбор объектов» на панели инструментов «Рисование». Это курсор, который позволяет выбирать только фигуры и игнорирует ячейки, текст и панель формул.

На самом деле, я никогда не знал правильного имени для этого режима курсора, пока не проверил подсказку, чтобы написать это обновление, возможно, это поможет.

Ответы [ 4 ]

2 голосов
/ 17 мая 2009

Я не совсем понимаю, почему вы хотите это сделать, но вы можете программно переключить режим рисования «Выбор объектов», выполнив встроенный элемент управления CommandBar:

Call CommandBars("Drawing").Controls("Select Objects").Execute

И вы можете определить текущий режим, проверив его состояние:

If CommandBars("Drawing").Controls("Select Objects").State Then
  Call Debug.Print("Select Object mode is on")
End If

Удачи!

0 голосов
/ 08 апреля 2014

Я немного "опоздал на вечеринку", но вот ответ на вопрос "почему он хочет это сделать", а также "что он хочет сделать".

'Turn ON 'Select Objects' option during initial display. While ON, cell input is prevented.
If CommandBars("Drawing").Controls("Select Objects").State = False Then
    CommandBars("Drawing").Controls("Select Objects").Execute
End If

Я использую это в простом приложении таймера, которое имеет одну кнопку и два флажка на экране «ActiveSheet». Включив «Выбрать объекты», я ограничиваю цели ввода курсора этими тремя элементами. Ячейки не могут быть выбраны.

Cheers, Lawrence

0 голосов
/ 15 мая 2009

Я не знаю, что вы имеете в виду под «режимом рисования». Однако, если вы хотите изменить внешний вид курсора мыши, вам нужно задать свойство Application.Cursor

Вы можете установить одно из четырех предопределенных значений: xlWait, xlNorthwestArrow, xlIBeam и xlDefault.

Если вы хотите отобразить другие курсоры, посмотрите в этой статье , как отобразить пользовательский курсор в Access. Поскольку он использует WinAPI, решение должно работать одинаково в Excel.

Редактировать:

В ответ на ваши изменения: я не думаю, что можно делать то, что вы хотите. Устройство записи макросов не подхватывает его, потому что нет команды VBA, которая могла бы это сделать. В зависимости от того, чего вы пытаетесь достичь, переключаясь в режим разработки, могут быть и другие способы.

Если вы не хотите, чтобы пользователь изменял данные в вашей рабочей книге, вы можете скрыть полное окно Excel, используя свойство Application.Visible.

Если вы хотите, чтобы пользователь не мог выбрать или изменить что-либо, но при этом отображать данные, взгляните на ActiveSheet.Protect или ActiveWorkbook.Protect, доступные в разделе Инструменты - Защита .

Если вы хотите переместить или изменить размеры некоторых элементов управления в своей книге, вы можете сделать это программно, изменив свойства элемента управления Left, Top, Height и Width, вам не нужно переключитесь в режим разработки, чтобы сделать это из вашего макроса.

0 голосов
/ 15 мая 2009

Помогла бы эта ссылка ?

Вот краткий обзор:

В приложении у вас есть четыре варианта:

  • xlDefault
  • xlWait
  • xlBeam
  • xlNorthwestArrow

Вы называете это как:

Application.Cursor = xlDefault

Над формами у вас есть больше вариантов. Подробнее читайте в статье.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...