MacOS — Горячие клавиши для макросов Microsoft Word VBA?

Основной вопрос/в двух словах:

Как назначить следующий макрос VBA сочетанию горячих клавиш и клавиш в Microsoft Word для MacOS? Это заводит меня за поворот.

Системная информация:

  • Аппаратное обеспечение: M1 Macbook Pro
  • ОС: MacOS Сонома 14.2.1.
  • Microsoft Word: версия 16.81 для Mac

Проблема под рукой:

Я пытаюсь настроить макросы VBA для выполнения следующих действий:

а) сделать выделенный текст зеленым б) сделать выделенный текст красным и зачеркнуть его

Хотя написанный код VBA, похоже, работает при выборе «Выполнить» вручную, я изо всех сил пытаюсь настроить его на горячие клавиши. Я хочу иметь возможность нажимать комбинацию клавиш (например, Ctrl + G или Ctrl + R) и запускать указанные макросы. Несмотря на все мои усилия, я, похоже, не могу этого сделать и не знаю почему.

Попытки на данный момент:

Я попробовал записать макрос и назначить комбинацию клавиш из всплывающего меню, которое открывается при нажатии «записать макрос». Затем я предпринял шаги и сохранил. К сожалению, изменение цвета шрифта не записывается при использовании «макроса записи», поэтому мне пришлось изменить код VBA в макросе на следующее:

Sub ChangeToGreen()
'
' ChangeToGreen Macro
'
    With Selection.Font
        .Color = RGB(0, 255, 0) ' This sets the color to green
    End With
End Sub

Я пытался найти меню в Microsoft Word на MacOS, чтобы вручную назначить это сочетание горячих клавиш и клавиш после сохранения, но не смог его найти. Пожалуйста помоги!

Кроме того, рассмотрите возможность использования вместо прямого форматирования с использованием vba стилей символов. Стили также можно назначить сочетаниям клавиш. Смотрите мою страницу: addbalance.com/usersguide/stylesImportance.htm

Charles Kenyon 26.06.2024 17:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
139
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Хорошо, я понял это.

Для тех, у кого такая же проблема: зайдите в меню «Инструменты», затем «Настроить клавиатуру». Оттуда вы сможете выбрать любой макрос по своему усмотрению и назначить горячую клавишу по вашему выбору.

Звучит так, как будто вы находитесь в правильном месте, но может помочь проверить, правильно ли вы поступаете.

Вы можете использовать два варианта: тот, который вы уже нашли в диалоговом окне при запуске средства записи макросов, и параметр «Инструменты Mac Word-> Настроить клавиатуру...» в строке меню Mac, который аналогичен. Обратите внимание, вы не можете попасть туда из меню VB Editor, только из основной программы Word.

Это отличается от Windows Word, где эта опция доступна через диалоговое окно организатора ленты/QAT.

Если вы используете меню «Инструменты-Настроить клавиатуру...», вам нужно сделать следующее (почти так же, как в Windows). Я предполагаю, что вы уже все это делаете, но давайте проверим...

  • Выберите Macros в раскрывающемся списке Categories:.
  • Найдите и выберите макрос (например, ChangeToGreen) в раскрывающемся списке Commands:.
  • Убедитесь, что вы сохраняете в нужное место, используя опцию SaveChanges In: в нижней части диалогового окна.
  • Нажмите на квадратик Press New Keyboard Shortcut:
  • нажмите нужную комбинацию клавиш, например control-G Здесь вы можете обнаружить, что некоторые комбинации не работают на Mac. На Mac также существует различие между комбинациями клавиатуры, в которых используется клавиша Control, и комбинациями, в которых используется клавиша Command. Word должен сообщить вам, используется ли ключ для какой-либо другой команды/макроса.
  • Обязательно нажмите кнопку Assign
  • Нажмите кнопку OK

Вернувшись в Word, вы сможете выделить текст и нажать Control-G, чтобы запустить макрос.

Я только что прошел через все это на M1 Mac mini и Mac OS Sonoma. И да, VB Recorder не поддерживается должным образом, и есть много вещей, даже самых простых, которые он не записывает. (Регистратор также не записывает это действие в версии Windows)

Еще один вариант, который вы можете сделать, если ничего из этого не работает, — это использовать макрос для назначения одной или нескольких комбинаций клавиш. Неплохая идея создать и поддерживать такой макрос, чтобы при необходимости можно было повторно создавать предпочитаемые вами ярлыки, например если Normal.dotm поврежден. Поэтому, если вы это сделаете, обязательно сохраните копию макроса в виде текстового файла из редактора VB).

например

Sub AssignKBShortcuts()
With Application
  .CustomizationContext = NormalTemplate
  ' assign control-G to ChangeToGreen
  .KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, wdKeyG), _
    KeyCategory:=wdKeyCategoryMacro, Command: = "ChangeToGreen"
  ' you can assign more keys here
  
  End With
End Sub

Другие вопросы по теме