Как "назначить" клавишам свой собственный макрос? (горячие клавиши для макроса)

  1. Вариант. Разместите в любом стандартном модуле нужной рабочей книги:
    code: #vba
    Private Sub Auto_Open()
        Application.OnKey Key:="+^%{F1}", Procedure:="MessageBox"
        ' Сочетание клавиш SHIFT + CTRL + ALT + F1
    End Sub
     
    Private Sub MessageBox()
        MsgBox "Здесь могла быть Ваша реклама ..."
    End Sub

    или:

    code: #vba
    Private Sub Auto_Open()
        Application.OnKey Key:="^c", Procedure:="NewName"
        ' Сочетание клавиш CTRL + C (c)
    End Sub
     
    Private Sub NewName()
        Application.Dialogs(xlDialogWorkbookName).Show
    End Sub

    Вернуть всё обратно можно выполнив единственную инструкцию:

    code: #vba
    Application.OnKey Key:="^c"

    А вот так можно заблокировать выполнение операции, связанной с нажатием стандартных горячих клавиш:

    code: #vba
    Application.OnKey Key:="^c", Procedure:=""
  2. Вариант. Если Вас устроит сочетание таких клавиш, как CTRL + r или CTRL + SHIFT + R, то создать горячие клавиши для макроса можно и вручную. Для этого, при записи макроса в стандартном диалоговом окне Запись макроса в поле, которое размещено под надписью Сочетание клавиш: необходимо ввести нужную букву.

    Программно это может выглядить так :

    code: #vba
    Sub Auto_Open()
        Application.MacroOptions Macro:="Printers", _
        HasShortcutKey:=True, ShortcutKey:="Q"
        ' Сочетание клавиш CTRL + SHIFT + Q (q)
    End Sub
     
    Sub Printers()
        Application.Dialogs(xlDialogPrinterSetup).Show
    End Sub
Поделиться:

Похожие статьи: