Как назначить сочетание клавиш в excel на макрос

Сочетание клавиш для вызова процедуры (макроса). Назначение горячих клавиш для вызова процедуры (макроса) вручную и с помощью кода VBA Excel.

Ручное назначение сочетания клавиш

Назначение горячих клавиш для вызова процедуры (макроса) вручную:

  1. Перейдите на вкладку «Разработчик» и нажмите кнопку «Макросы» (вторая кнопка на ленте слева) или сочетание клавиш «Alt+F8».
  2. В открывшемся окне «Макрос» выберите нужную процедуру и нажмите кнопку «Параметры».

  1. В окне «Параметры макроса» задайте сочетание клавиш, вписав нужную букву в соответствующее поле и нажав кнопку «OK».

Программное назначение горячих клавиш

За программное назначение горячих клавиш для запуска процедур (макросов) в VBA Excel отвечает метод Application.OnKey.

Обычно первой клавишей в сочетании клавиш является Shift, Ctrl или Alt, которые обозначаются следующими символами: Shift — + (плюс), Ctrl — ^ (крышка), Alt — % (процент).

Буквенные клавиши в коде назначения горячих клавиш обозначаются соответствующими буквами в фигурных скобках: клавиша a — {a}, клавиша b — {b}, клавиша c — {c} и т.д.

Пример назначения сочетания клавиш Ctrl+Shift+k процедуре Module10.Test:

Sub Primer1()

Application.OnKey «^+{k}», «Module10.Test»

End Sub

После выполнения кода процедуры Primer1 процедура Module10.Test начнет запускаться нажатием сочетания клавиш Ctrl+Shift+k.

Если необходимо назначить сочетание клавиш какой-либо процедуре при открытии книги, используйте событие Workbook_Open:

Private Sub Workbook_Open()

Application.OnKey «^+{k}», «Module10.Test»

End Sub

Размещается данный код в модуле книги.

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

Sub Primer2()

Application.OnKey «^+{k}»

End Sub

Если у заданного сочетания клавиш было какое-либо действие по умолчанию, оно будет восстановлено.


Как добавить сочетания клавиш для быстрого доступа к элементам управления пользовательской формы смотрите в статье VBA Excel. Сочетания клавиш для кнопок.


На чтение 5 мин Опубликовано 25.01.2021

Макрос – это специальный программный код, реализованный на интегрированном в табличный редактор языке программирования Visual Basic for Application. Обычно происходит так, что пользователь табличного редактора создает пользовательский макрос во встроенном языке программирования VBA, а затем применяет его на рабочем листе табличного документа, используя несколько диалоговых окон. Эта процедура занимает слишком много времени, особенно если в табличном файле располагаются большие объемы информации. Каждому макросу можно задать собственную комбинацию горячих клавиш, позволяющую мгновенно применить его на рабочем листе табличного документа. В статье мы детально рассмотрим процесс назначения макросу сочетания клавиш в табличном редакторе.

Содержание

  1. Что такое макрос в табличном редакторе
  2. Включение макроса в табличном редакторе
  3. Процедура назначения макросу горячих клавиш
  4. Заключение и выводы о назначении макросу горячих клавиш

Что такое макрос в табличном редакторе

Для начала определим, что такое макрос. Макрос – это специальный инструмент, который предназначен для создания команд в табличном редакторе, позволяющий значительно ускорить процесс выполнения различных задач.

Включение макроса в табличном редакторе

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

  1. При помощи левой клавиши мышки перемещаемся в подраздел «Файл», располагающийся в левом верхнем углу интерфейса табличного редактора.
  2. Передвигаемся в подраздел, имеющий наименование «Параметры».
  3. В возникшем окошке параметров передвигаемся в пунктик под названием «Центр управления безопасностью».
  4. Жмем на «Параметры центра управления безопасностью».

Как назначить макросу сочетание клавиш в Excel

  1. На дисплее возникло окошко, имеющее наименование «Центр управления безопасностью». Передвигаемся в подраздел «Параметры макросов».
  2. Ставим отметку около надписи «Включить все макросы».

Как назначить макросу сочетание клавиш в Excel

  1. Готово! Мы активировали макросы в табличном редакторе. Теперь мы можем заняться назначением макросу специальных горячих клавиш.

Процедура назначения макросу горячих клавиш

В табличном редакторе каждому макросу могут быть назначены комбинации горячих клавиш. Программный код языка программирования Visual Basic for Application хранит комбинацию клавиш, которая осуществляет запуск макроса. К примеру, у нас есть готовый пользовательский макрос, в который нам нужно добавить комбинацию горячих клавиш. Детально разберемся как реализовать эту непростую процедуру.

Как назначить макросу сочетание клавиш в Excel

Подробная инструкция по назначению макросу горячих клавиш выглядит так:

  1. Первоначально нам необходимо попасть в окошко, имеющее наименование «Макрос». Существует несколько вариантов попадания в это окно. Первый вариант: передвигаемся в подраздел «Вид», раскрываем перечень под названием «Макросы» и выбираем элемент с аналогичным наименованием «Макросы». Второй вариант: перемещаемся в подраздел «Разработчик», а затем выбираем элемент «Макросы». Ко всему прочему, в окошко «Макрос» можно попасть при помощи специальной комбинации клавиш «Alt+F8».

Как назначить макросу сочетание клавиш в Excel

  1. В появившемся небольшом окошке при помощи левой клавиши мышки осуществляем выбор того макроса, которому мы желаем назначить горячие клавиши. Кликаем ЛКМ на элемент «Параметры…».
  2. В появившемся окошке в пункте «Сочетание клавиш:» мы осуществляем назначение горячих клавиш выбранному макросу. Для примера сделаем комбинацию «Ctrl+m».

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

  1. В поле «Описание:» можно ввести какую-либо вспомогательную для себя информация. Это поле необязательно заполнять.

Как назначить макросу сочетание клавиш в Excel

  1. После проведения всех манипуляций щелкаем левой клавишей мышки на кнопку «ОК», расположенную в нижней части окошка «Параметры макроса».
  2. Готово! Мы назначили макросу собственное сочетание клавиш.

Стоит отметить, что всегда можно изменить комбинацию, просто вернувшись в это же окошко и введя другое сочетание.

Бывают такие ситуации, когда пользователю необходимо назначить макросу горячие клавиши только временно. К примеру, пользователю нужно активировать комбинацию в определенный момент, а затем деактивировать ее и продолжить работать с табличным документом. Для реализации этой процедуры необходимо добавить в программный код макроса некоторые строчки.

  • Такая строчка позволяет временно присвоить процедуре MoveDown комбинацию кнопок «Ctrl+m»: Application.OnKey Key:= «^m«, Procedure:=»MoveDown«
  • Такая строчка позволяет вернуться к стандартному определению комбинации клавиш «Ctrl+m»: OnKey Key: =»^m»
  • Такой фрагмент кода позволяет окончательно изменить кнопку быстрого доступа в табличном редакторе: Application.MacroOptions Macro:=»MoveDown«,
    ShortcutKey:=»m»

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

  1. Перемещаемся в редактор
  2. Жмем ПКМ по модулю. В появившемся контекстном меню выбираем элемент «Export File».
  3. Осуществляем сохранение файла.
  4. При помощи Блокнота осуществляем открытие файла в формате *.bas.
  5. В любом модуле находится строчка со специальными атрибутами, которые начинаются с переменной Attribute. Определить назначенную комбинацию кнопок можно по фрагменту кода n14. К примеру, на нижеприведенном изображении видно, что реализовано назначение комбинации клавиш «Ctrl+m».

Как назначить макросу сочетание клавиш в Excel

Заключение и выводы о назначении макросу горячих клавиш

Мы выяснили, как осуществить процедуру назначения макросу горячих клавиш. Первоначально необходимо убедиться в том, что макросы активированы в табличном редакторе, а затем при помощи окошка параметров назначить необходимое сочетание. При помощи нескольких строчек кода в VBA можно реализовать временное включение назначенной комбинации.

Оцените качество статьи. Нам важно ваше мнение:

Перейти к содержимому

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

Назначение кнопок на запуск макроса с клавиатуры в «Excel» .

Проще всего макрос закрепляется за горячими клавишами в «Excel».
Для назначения кнопкам макроса достаточно последовательно выполнить следующие действия:

Действие первое:
Войти в книгу макросов и выбрать (выделить) нужный нам макрос левой кнопкой мыши.Создание макроса в Word

Действие второе.
Кликнув по кнопке «Параметры» вызвать меню настройки параметров.Выбрать макрос

Действие третье.
В меню параметров прописать нужные горячие клавиши на выполнение макроса и нажать кнопку «Ok».

Назначение кнопок на запуск макроса с клавиатуры в «Word».

В программе «Word» назначить (закрепить) клавишу клавиатуры за макросом немного сложнее.
Для назначения макросу горячих клавиш придется выполнить следующую последовательность действий:

Действие первое.

Вызвать контекстное меню кликнув правой кнопкой мыши по панели быстрого доступа.

Действие второе.

Выбрать в появившимся меню «Настройка ленты»Настройка ленты

Действие третье.

В появившемся окне настроек выбрать «Сочетание клавиш «Настройка…»»Настройка сочетания клавиш в ворд

Действие четвертое.

В разделе «Категории» открывшегося окна выбрать категорию «Макросы». В соседнем разделе выделить мышью нужный макрос.Горячие клавиши макроса в ворд

Действие пятое.

В поле «Новое сочетание клавиш» внести сочетание клавиш для запуска макроса и нажать «Ок».

Теперь макрос будет закреплен за указанным сочетанием горячих клавиш.

Вопросы можно задавать в комментариях к статье или на форуме сайта.

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel Starter 2010 Еще…Меньше

Существует несколько способов запуска макроса в Microsoft Excel. Макрос — это действие или набор действий, с помощью которых можно автоматизировать различные задачи. Макрос записывется на Visual Basic для приложений программирования. Макрос всегда можно запустить, нажав кнопку Макрос на вкладке Разработчик на ленте. В зависимости от того, как макрос назначен для запуска, его также можно запустить, нажав сочетание клавиш сочетание клавиш, нажав кнопку на панели быстрого доступа или в настраиваемой группе на ленте либо щелкнув объект, рисунок или элемент управления. Кроме того, макрос можно запускать автоматически при запуске книги.

Перед запуском макроса

Перед началом работы с макросами следует включить вкладку Разработчик.

  • Чтобы Windows, перейдите в меню Параметры > >Настроить ленту.

  • Для Macперейдите на Excel > параметры… >ленты & панели инструментов.

  • Затем в разделе Настройка ленты в разделе Основныевкладки, в разделе Разработчик, нажмите кнопку ОК.

  1. Откройте книгу, содержащую нужный макрос.

  2. На вкладке Разработчик в группе Код нажмите кнопку Макросы.

  3. В поле Имя макроса выберите макрос, который вы хотите запустить, и нажмите кнопку Выполнить.

  4. У вас также есть другие варианты:

    • Параметры: добавление сочетания клавиш или описания макроса.

    • Шаг. Откроется Visual Basic редактора в первой строке макроса. Нажатие F8 позволит вам по одной строке пролиться между кодами макроса.

    • Изменить. Откроется редактор Visual Basic и вы сможете при необходимости изменить код макроса. После внесения изменений можно нажать F5, чтобы запустить макрос из редактора.

Вы можете добавить сочетание клавиш в макрос при его записи, а также добавить его к существующему макросу:

  1. На вкладке Разработчик в группе Код нажмите кнопку Макросы.

  2. В поле Имя макроса выберите макрос, который нужно назначить сочетанием клавиш.

  3. Нажмите кнопку Параметры.

    Откроется диалоговое окно Параметры макроса.

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

    Примечания: 

    • Для Windowsклавиша для букв в нижнем регистре — CTRL+letter. Для букв верхнего регистра это CTRL+SHIFT+Letter.

    • Для Macдля букв в нижнем регистре есть клавиши OPTION+COMMAND+LETTER,но клавиши CTRL+letter также будут работать. Для букв верхнего регистра это CTRL+SHIFT+Letter.

    • Будьте внимательны при назначении ярлыков, так как они будут переопределять все эквивалентные стандартные Excel, пока открыта книга с макросом. Например, если назначить макрос CTRL+Z,вы потеряете возможность отменить. В связи с этим обычно лучше использовать клавиши CTRL+SHIFT+БУКВА С верхнего регистра, например CTRL+SHIFT+Z, для которых в Excel нет эквивалентных Excel.

    Список сочетаний клавиш CTRL, которые уже назначены в Excel, см. в статье Excel сочетания клавиш и клавиши для работы с функцией.

  5. Введите описание макроса в поле Описание.

  6. Нажмите кнопку ОК, чтобы сохранить изменения, а затем — кнопку Отмена, чтобы закрыть диалоговое окно Макрос.

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

Вы можете создать пользовательскую группу, которая появится на вкладке ленты, а затем назначить макрос кнопке в этой группе. Например, можно добавить настраиваемую группу «Мои макросы» на вкладку Разработчик, а затем добавить в новую группу макрос (который отображается как кнопка). Для этого см. назначение макроса кнопке.

Запуск макроса путем щелчка области графического объекта

Вы можете создать хот-спот на графическом элементе, который пользователи могут щелкнуть, чтобы запустить макрос.

  1. На компьютере вставьте графический объект, например рисунок, или нарисуйте фигуру. Распространенный сценарий — нарисовать фигуру Скруглённый прямоугольник и отформатировали ее так, чтобы она выглядела как кнопка.

    Чтобы узнать о вставке графического объекта, см. добавление, изменение и удаление фигур.

  2. Щелкните правой кнопкой мыши созданный хот-спот и выберите пункт Назначить макрос.

  3. Выполните одно из указанных ниже действий.

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

    • Чтобы записать новый макрос для назначения выбранному графическому объекту, нажмите кнопку Запись ,в диалоговом окне Запись макроса введите имя макроса и нажмите кнопку ОК, чтобы начать запись макроса. Завершив запись макроса, нажмите кнопку Остановить Изображение кнопкина вкладке Разработчик в группе Код.

      Совет:  Вы также можете нажать Изображение кнопки в левой части панели состояния.

    • Чтобы изменить существующий макрос, щелкните его имя в поле Имя макроса и выберите изменить.

  4. Нажмите кнопку ОК.

На вкладке Разработчик нажмите кнопку Visual Basic, чтобы запустить редактор Visual Basic(VBE). Перейдите Project проводнике, чтобы найти модуль, содержащий макрос, который вы хотите запустить, и откройте его. Все макрос в этом модуле будут перечислены в области справа. Выберите макрос, который вы хотите запустить, разместив курсор в любом месте макроса и нажимая F5или выбрав в меню пункт Выполнить > Макрос.

Создайте Workbook_Open события.

В следующем примере событие Open используется для запуска макроса при открытии книги.

  1. Откройте или создайте книгу, в которую нужно добавить макрос.

  2. На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.

  3. В окне Project проводника щелкните правой кнопкой мыши объект ThisWorkbook и выберите просмотр кода.

    Совет: Если окно Project проводника не отображается, в меню Вид выберите пункт Project проводник.

  4. В списке Объект над окном Код выберите книга.

    При этом автоматически создается пустая процедура для события Open, например:

    Private Sub Workbook_Open()

    End Sub

  5. Добавьте в процедуру следующие строки кода:

    Private Sub Workbook_Open()Листы даты
    MsgBox(«Лист1»).
    Диапазон(«A1»). Value = Date
    End Sub

  6. Переключитесь на приложение Excel и сохраните данную книгу как книгу с поддержкой макросов (.XLSM).

  7. Закройте и снова откройте книгу. При повторном запуске книги Excel выполняется процедура Workbook_Open, в которой в окне сообщения отображается сегодняшняя дата.

  8. В окне сообщения нажмите кнопку ОК.

    Примечание: Ячейка A1 на листе «Лист1» также содержит дату в результате Workbook_Open процедуры.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

К началу страницы

См. также

Автоматический запуск макроса при открытии книги 

Автоматизация задач с помощью средства записи макросов — Excel

Запись макроса для открытия определенных книг при запуске Excel

Создание и сохранение всех макросов в одной книге

Сохранение макроса

Нужна дополнительная помощь?

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

Файлы для скачивания:

Файл Описание Размер файла: Скачивания
Скачать этот файл (P_Macros_04.zip)Пример   11 Кб 1358

Давайте возьмем файл с предварительно записанным макросом или запишем новый макрос, как это сделать описано в статье «Как записать макрос не зная языка VBA?«.

Нажимаем в меню «Вид» кнопку «Макросы» и в выпавшем списке выбираем пункт «Макросы» или нажимаем сочетание клавиш Alt+F8:

Должно будет открыться диалоговое окно «Макрос», в этом окне выбираем наш макрос «Макрос1» и нажимаем кнопку «Параметры»:

Как назначить макросу сочетание клавиш?

После чего должно открыться диалоговое окно параметров нашего макроса, в котором в пункте «Сочетания клавиш», напротив надписи Ctrl+, в пустое поле вводим любую букву, например, «й» и нажимаем «ОК»:

kak-naznachit-makrosu-sochetanie-klavish_2.png

Данное окно закроется, в диалоговом окне «Макрос» нажимаем кнопку «Отмена», после чего окно закроется:

kak-naznachit-makrosu-sochetanie-klavish_3.png

Собственно говоря, все готово, чтобы запустить макрос переключите раскладку клавиатуры в положение «РУС», и нажмите сочетание клавиш Ctrl+й, макрос выполнится.

Важно:

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

Если вы поставите вместо «й» «Й«, то макрос будет выполняться по нажатию клавиш Shift+Ctrl+Й, так как данная функция чувствительна к регистру.

Чтобы создать кнопку для запуска своего макроса, читайте статью «Как сделать кнопку для запуска своего макроса?»

Добавить комментарий

Если уже имеете код макроса записанный в рабочей книге или надстройке, можно его запустить и выполнить несколькими способами. Если еще нет кода макроса или вы еще не знаете, как его написать, тогда сначала прочитайте статью: Как написать макрос в Excel на языке программирования VBA.

В данной статье для Вас буде приведет пошаговый пример с картинками и фрагментом простейшего готового кода VBA.

Как выполнить макрос VBA в Excel

Например, самый простой способ запустить макрос для понимания, но сложный для реализации:

  1. Выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы».
  2. Макросы.

  3. В появившемся окне «Макрос» из списка всех в первую очередь доступных макросов для данной рабочей книги Excel выберите любой понравившийся вам и нажмите на кнопку «Выполнить».

Выполнить.

Программа макроса выполнить свои функции.

Теперь мы можем двигаться от простого к еще простейшему) Ведь запускать макросы таким способом весьма неудобно. Далее рассмотрим более простые варианты.

Полезный совет! Если вы хотите отредактировать макрос тогда выберите его в списке выше описанного инструмента и нажмите на кнопку «Войти», а не используйте кнопку «Изменить». С помощью кнопки войти вы всегда сможете перейти к исходному коду выбранного макроса. Автоматически откроется редактор Visual Basic именно в том месте где написан код данного макроса. Кнопка «Изменить» к сожалению, не для всех макросов работает одинаково.

Внимание! Макросы, созданные в надстройках Excel, могут быть по умолчанию не доступны в списке диалогового окна «Макрос» в целях политики безопасности. Ведь имена макросов в надстройках Excel обычно скрыты от сторонних пользователей. Но если ввести правильно соответственное значение в поле «Имя макроса:» то все кнопки в диалоговом окне будут активными. А значит готовы к работе с данным макросом из надстройки и пользователь является автором надстройки или доверительным лицом.



Запуск макроса с помощью горячих клавиш

Для каждого макроса в Excel можно присвоить свою комбинацию горячих клавиш. Благодаря этому вы можете вызывать свою макропрограмму при нажатии определенной комбинации клавиш на клавиатуре. Что может быть ее проще?

Чтобы присвоить свою комбинацию клавиш для определенного макроса следует сделать так:

  1. Снова выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы».
  2. РАЗРАБОТЧИК.

  3. В появившемся диалоговом окне «Макрос» выберите желаемую макропрограмму из списка и нажмите на кнопку «Параметры».
  4. Параметры.

  5. В появившемся диалоговом окне «Параметры макроса» в поле ввода «Сочетание клавиш: CTRL+» введите маленькую или большую латинскую букву. И нажмите на кнопку ОК.

Теперь нажмите свою комбинацию горячих клавиш для вызова выбранного макроса. Как видно теперь вашему макросу присвоена комбинация горячих клавиш для быстрого вызова.

Обратите внимание! В диалоговом окне «Параметры макроса» доступно поле для ввода его описания. Данное описание будет доступно внизу при выборе макроса из списка. Рекомендуем всегда подписывать свои макросы. Такой пользовательский тон этики работы с Excel будет высоко оценен, когда список пополниться десятками макросов.

Полезный совет! Старайтесь не использовать популярные комбинации горячих клавиш для работы с Excel: CTRL+S; CTRL+A; CTRL+T; CTRL+C; CTRL+V; CTRL+SHIFT+L и т.п. Ведь тогда их предназначение будет изменено. В окне «Параметры макроса» так же присутствует возможность использовать в комбинациях клавиш клавишу SHIFT. Как только вы придадите фокус клавиатуры для поля ввода «Сочетание клавиш: CTRL+» и попытаетесь ввести большую букву для комбинации, естественно с использованием клавиши SHIFT на клавиатуре, сразу название поля ввода поменяется на «Сочетание клавиш: CTRL+ SHIFT+».

SHIFT.

В результате будет немного длиннее комбинация, которая позволит расширить варианты, чтобы обойти часто используемые горячие клавиши.

Как запустить макрос на панели быстрого доступа

Excel позволяет пользователям запускать макросы с помощью панели быстрого доступа к инструментам. Данная панель по умолчанию находиться в самом верху окна программы.

Чтобы запустить макрос с помощью панели быстрого доступа, требуется сделать так:

  1. Щелкните на самую последнюю кнопку на панели быстрого доступа (стрелка вниз), чтобы получить доступ к меню «Настроить панель», в котором необходимо выбрать опцию «Другие команды». В результате чего откроется окно «Параметры Excel», к которому можно было получить доступ и другим путем: «ФАЙЛ»-«Параметры»-«Панель быстрого доступа». Или щелкнув правой кнопкой мышки по любой панели Excel на любой закладке и выбрать опцию «Настройка панели быстрого доступа».
  2. Настройка панели быстрого доступа.

  3. В левом выпадающем списке «Выбрать команду из:» выберите опцию «Макросы».
  4. Выбрать команду из.

  5. В левом списке элементов ниже выберите необходимый макрос и нажмите на кнопку «Добавить». В результате чего в правом списке элементов появиться кнопка для нового инструмента быстрого запуска вашего макроса. Справа от правого списка элементов можно использовать стрелки для настройки положения и порядка расположения кнопок инструментов на панели быстрого доступа. И нажмите ОК.

панели быстрого доступа.

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

Полезный совет! Чтобы изменить внешний вид кнопки для макроса в окне «Параметры Excel»-«Панель быстрого доступа», из правого списка элементов «Настройка панели быстрого доступа» следует выделить макрос и нажать на кнопку «Изменить». Будет предложена небольшая галерея иконок для нового оформления внешнего вида кнопки запуска макроса с панели инструментов.

Изменить.

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

Запуск макроса с помощью кнопки на рабочем листе Excel

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

  1. Выберите инструмент: «РАЗРАБОТЧИК»-«Элементы управления»-«Вставить»-«Кнопка (элемент управления формы».
  2. Кнопка.

  3. Выделите курсором мышки место где и как будет вставлена кнопка для запуска макроса.
  4. будет вставлена кнопка.

  5. В появившемся окне «Назначить макрос объекту» из списка доступным макросов выберите желаемый и нажмите на кнопку ОК.
  6. Назначить макрос объекту.

  7. Теперь нужно назначить кнопку макросу. Правой кнопкой мышки щелкните по созданной кнопке и в появившемся контекстном меню выберите опцию «Изменить текст». Удалите старый и введите новый текст «Мой макрос».

Мой макрос.

После создания кнопки можно ее настроить, изменив ее размеры и положение на листе. Для этого снова щелкните правой кнопкой мышки по кнопке, а потом нажмите клавишу Esc на клавиатуре, чтобы скрыть контекстное меню. У кнопки появляться маркеры, с помощью которых можно изменять ее размеры. Наведите курсор мышки на любой маркер на гранях или углах кнопки и удерживая левую клавишу мышки перетягивайте, изменяя таким образом ее размеры. Теперь нажмите на кнопку левой кнопкой мышки и удерживая ее перемещайте кнопку по листу документа Excel в любое другое место. Чтобы затвердить все изменения кнопки сделайте щелчок левой кнопкой мышки в любую область листа (например, по любой ячейке) вне области кнопки.

Теперь если мы нажмем на кнопку левой кнопкой мышки сразу же выполниться назначенный ей код VBA.

Введение

Всем нам приходится — кому реже, кому чаще — повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую «рутинную составляющую» — одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.

Макрос — это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых  нужных нам действий, которые нам не хочется выполнять вручную.

В принципе, существует великое множество языков программирования (Pascal, Fortran, C++, C#, Java, ASP, PHP…), но для всех программ пакета Microsoft Office стандартом является именно встроенный язык VBA. Команды этого языка понимает любое офисное приложение, будь то Excel, Word, Outlook или Access.

Способ 1. Создание макросов в редакторе Visual Basic

Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно — редактор программ на VBA, встроенный в Microsoft Excel.

  • В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис — Макрос — Редактор Visual Basic (Toos — Macro — Visual Basic Editor).
  • В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer). Выбираем Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer). Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic (Visual Basic Editor)



    macro1.png:

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией  Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

macro2.png

Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:

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

    macro3.png

  • Модуль Эта книга — также виден в левом верхнем углу редактора Visual Basic в окне, которое называется Project Explorer. В этот модуль обычно записываются макросы, которые должны выполнятся при наступлении каких-либо событий в книге (открытие или сохранение книги, печать файла и т.п.):

    macro4.png

  • Модуль листа — доступен через Project Explorer и через контекстное меню листа, т.е. правой кнопкой мыши по ярлычку листа — команда Исходный текст (View Source). Сюда записывают макросы, которые должны выполняться при наступлении определенных событий на листе (изменение данных в ячейках, пересчет листа, копирование или удаление листа и т.д.)

    macro5.png

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

macro6.png

Давайте разберем приведенный выше в качестве примера макрос Zamena:

  • Любой макрос должен начинаться с оператора Sub, за которым идет имя макроса и список аргументов (входных значений) в скобках. Если аргументов нет, то скобки надо оставить пустыми.
  • Любой макрос должен заканчиваться оператором End Sub.
  • Все, что находится между Sub и End Sub — тело макроса, т.е. команды, которые будут выполняться при запуске макроса. В данном случае макрос выделяет ячейку заливает выделенных диапазон (Selection) желтым цветом (код = 6) и затем проходит в цикле по всем ячейкам, заменяя формулы на значения. В конце выводится окно сообщения (MsgBox).

С ходу ясно, что вот так сразу, без предварительной подготовки и опыта в программировании вообще и на VBA в частности, сложновато будет сообразить какие именно команды и как надо вводить, чтобы макрос автоматически выполнял все действия, которые, например, Вы делаете для создания еженедельного отчета для руководства компании. Поэтому мы переходим ко второму способу создания макросов, а именно…

Способ 2. Запись макросов макрорекордером

Макрорекордер — это небольшая программа, встроенная в Excel, которая переводит любое действие пользователя на язык программирования VBA и записывает получившуюся команду в программный модуль. Если мы включим макрорекордер на запись, а затем начнем создавать свой еженедельный отчет, то макрорекордер начнет записывать команды вслед за каждым нашим действием и, в итоге, мы получим макрос создающий отчет как если бы он был написан программистом. Такой способ создания макросов не требует знаний пользователя о программировании и VBA и позволяет пользоваться макросами как неким аналогом видеозаписи: включил запись, выполнил операци, перемотал пленку и запустил выполнение тех же действий еще раз. Естественно у такого способа есть свои плюсы и минусы:

  • Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу — запись останавливается.
  • Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
  • Если во время записи макроса макрорекордером вы ошиблись — ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) — во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.

Чтобы включить запись необходимо:

  • в Excel 2003 и старше — выбрать в меню Сервис — Макрос — Начать запись (Tools — Macro — Record New Macro)
  • в Excel 2007 и новее — нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

macro7.png

  • Имя макроса — подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
  • Сочетание клавиш — будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис — Макрос — Макросы — Выполнить (Tools — Macro — Macros — Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
  • Сохранить в… — здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
    • Эта книга — макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
    • Новая книга — макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
    • Личная книга макросов — это специальная книга Excel  с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording).

Запуск и редактирование макросов

Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или — в старых версиях Excel — через меню Сервис — Макрос — Макросы (Tools — Macro — Macros):

macro8.png

  • Любой выделенный в списке макрос можно запустить кнопкой Выполнить (Run).
  • Кнопка Параметры (Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
  • Кнопка Изменить (Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

Создание кнопки для запуска макросов

Чтобы не запоминать сочетание клавиш для запуска макроса, лучше создать кнопку и назначить ей нужный макрос. Кнопка может быть нескольких типов:

Кнопка на панели инструментов в Excel 2003 и старше

Откройте меню Сервис — Настройка (Tools — Customize) и перейдите на вкладку Команды (Commands). В категории Макросы легко найти веселый желтый «колобок» — Настраиваемую кнопку (Custom button):

macro9.gif

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

macro10.gif

Кнопка на панели быстрого доступа в Excel 2007 и новее

Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar):

macro11.png

Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:

macro12.png

Кнопка на листе

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

  • В Excel 2003 и старше — откройте панель инструментов Формы через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms)
  • В Excel 2007 и новее — откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer) 

Выберите объект Кнопка (Button):

macro13.png

Затем нарисуйте кнопку на листе, удерживая левую кнопку мыши. Автоматически появится окно, где нужно выбрать макрос, который должен запускаться при щелчке по нарисованной кнопке.

Создание пользовательских функций на VBA

Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция — только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert — Module и введем туда текст нашей функции:

macro14.png

Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка — Функция) в категории Определенные пользователем (User Defined):

macro15.png

После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

macro16.png

Информация о материале
Категория: Макросы Excel

Опубликовано: 25 сентября 2013

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

Для того чтобы присвоить горячие клавиши макросу в Excel, необходимо запустить Excel и нажать Alt+F8. В диалоговом окне «Макрос» нужно определить место нахождения макроса, выбрать имя макроса, для которого необходимо назначить сочетание клавиш и нажать кнопку «Параметры…». После этого, в диалоговом окне «Параметры макроса» можно задать сочетание клавиш для запуска выбранного макроса.

как задать сочетание горячих клавиш для макроса в Excel

Другие материалы по теме:

На чтение 17 мин. Просмотров 6.2k.

Итог: Изучите 18 советов для экономии времени при написании макросов VBA для Excel или других приложений Office.

Уровень мастерства: Средний

18 VBA Macro Shortcuts to Automate Excel in 2018

Содержание

  1. 18 Советов для макросов VBA
  2. Скачать PDF
  3. Содержание
  4. Скачать PDF
  5. Какой ваш любимый совет для VBA?

18 Советов для макросов VBA

В начале прошлого года я написал популярный пост о 17 советах для Excel на 2017 год. Я решил продолжить традицию в этом году и написать пост о советах, которые сэкономят ваше время при написании макросов VBA.

Здесь часть из моих любимых советов, а также некоторые любимые из блога на YouTube и моего курса VBA Pro.

Очевидно, есть множество советов для VBA. Поэтому, пожалуйста, оставьте комментарий внизу поста с вашими любимыми советами. Таким образом, мы все можем учиться друг у друга! 🙂

Скачать PDF

Вы можете скачать печатную версию статьи в формате PDF.

Содержание

  1. Alt + F11, чтобы открыть редактор VB
  2. Храните свои макросы в личной книге макросов
  3. Ctrl + Пробел для автозаполнения
  4. Intellisense для листов
  5. Использовать комментарии либерально
  6. F8, чтобы пройти через каждую строку кода
  7. Назначить макросы фигурам
  8. Автоматизируйте повторяющиеся задачи с помощью
    цикла For Next
  9. Используйте Option Explicit
  10. Таблицы Excel (ListObjects)
  11. Получить код с помощью Macro Recorder
  12. Непосредственное окно
  13. Назначить сочетание клавиш для макроса
  14. Убедитесь, что выбран диапазон
  15. Ctrl + Y, чтобы удалить строку кода
  16. Ctrl + I для быстрой информации
  17. Ctrl + J Открывает раскрывающийся список
    Intellisense
  18. Функции рабочего листа

# 1 — Alt + F11, чтобы открыть редактор VB

VB Editor — это приложение, которое мы используем для
написания макросов и создания пользовательских форм. Его можно открыть, нажав
кнопку Visual Basic на вкладке «Разработчик» в Excel.

Developer Tab in Excel 2016 with Visual Basic Button to Open VB Editor

Сочетание клавиш для открытия редактора VB в любой версии
Excel для Windows — Alt + F11.

Open the VB Editor with Alt+F11

Версия для Mac — Opt + F11 или Fn + Opt + F11.

Если вы не видите вкладку «Разработчик» на ленте, щелкните
изображение, чтобы узнать, как его включить:

18 трюков для Excel VBA 2018 год

Клавиши Fn (функция) на ноутбуках

Если вы используете клавиатуру ноутбука, вам нужно нажать и удерживать клавишу Fn, прежде чем нажимать F11. Функциональные клавиши на ноутбуках, как правило, являются многофункциональными клавишами и требуют нажатия клавиши Fn для активации функциональных клавиш (F1 – F12).

Некоторые ноутбуки имеют функцию Fn Lock, которая делает
функциональные клавиши первичными, что означает, что вам не придется нажимать
клавишу Fn при нажатии F1-F12.

Ознакомьтесь с моей статьей «Лучшие сочетания клавиш для Excel», чтобы узнать больше.

# 2 — Храните свои макросы в личной книге макросов

Personal Macro Workbook (PMW) — это отличное место для
хранения часто используемых вами макросов. Эта книга открывается в фоновом
режиме каждый раз, когда мы открываем Excel, что делает наши макросы легко
доступными.

Excel Personal Macro Workbook Tool belt or Purse Quote

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

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

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

18 трюков для Excel VBA 2018 год

# 3 — Ctrl + Пробел для автозаполнения

Это одно из часто используемых мною сочетаний клавиш в VBA. Когда мы набираем код, Ctrl + Space открывает раскрывающееся меню Intellisense, которое содержит список подходящих объектов, свойств, методов, констант и переменных.

Ctrl+Space to Auto Complete Words with Intellisense in VBA

Чтобы
использовать сочетание клавиш Ctrl + Space в VB Editor:

  1. Начните вводить строку кода, подобную
    ActiveCell.
  2. После ввода первых нескольких букв нажмите Ctrl
    + Пробел
  3. Вы увидите список всех слов VBA, которые
    начинаются с Act.
  4. Нажмите стрелки вверх / вниз, чтобы выбрать
    слово
  5. Затем нажмите Tab или Enter, чтобы завершить
    слово.

У этого трюка есть два основных преимущества:

  1. Это экономит время, так как не нужно набирать длинные слова и имена переменных.
  2. Это предотвращает опечатки, потому что VBA завершает слова для вас.

Эти преимущества могут значительно сэкономить время при
отладке кода.

# 4 — Intellisense для листов

Обычно мы также видим раскрывающееся меню Intellisense после ввода точки (.) В редакторе VB.

VBA Intellisense Drop Down List Properties and Methods of an Object

Однако это работает не всегда. Одним из распространенных случаев является свойство Worksheets.

Если мы введем Worksheets («Лист1»). Мы НЕ видим меню Intellisense. Вы можете расстроиться и подумать, что Intellisense не работает.

VBA Intellisense Drop Down Menu Missing for Worksheets Property

Причина, по которой он не работает, заключается в том, что
свойство Worksheets может содержать ссылку на один или несколько листов. В
зависимости от ссылки, свойства и методы будут разными для каждого случая. Было
бы замечательно, если бы Intellisense был достаточно умен, чтобы понять это, но
это всего лишь одна из тех вещей, с которыми нам приходится жить …

Есть два способа обойти это и увидеть Intellisense для
рабочих листов:

  1. Используйте кодовое имя рабочего листа, на который мы хотим сослаться. Это мой любимый метод для ссылок на рабочие листы, потому что код не сломается, если пользователь изменит имя листа.

Intellisense for Sheet CodeName

2. Сначала установите для рабочей таблицы переменную объекта Worksheets. Затем, когда мы введем имя переменной, за которым следует точка (ws.), Появится меню Intellisense.

Сначала установите для рабочей таблицы переменную объекта Worksheets. Затем, когда мы введем имя переменной, за которым следует точка (ws.), Появится меню Intellisense.

Use Variable to View Intellisense for Worksheet Object

# 5 — Используйте комментарии чаще

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

Чтобы создать комментарий в VBA, вы вводите апостроф в
начале строки. Как только вы переместите текстовый курсор за линию, текст
станет зеленым.

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

VBA Comments Start with Apostrophe Make Code Easier to Read

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

Когда я возвращаюсь к своим собственным проектам спустя
месяцы / годы, я не помню, что делает весь макрос. Комментарии похожи на
заголовки в этом сообщении в блоге и позволяют легко просматривать макрос,
чтобы найти нужный раздел. Они также быстро говорят нам, что делает каждый
раздел.

Если вы собираетесь поделиться своим проектом VBA или в
конечном итоге передать его кому-то другому для технического обслуживания,
тогда им будет намного легче выучить ваш код, если вы добавите много
комментариев. Я называю это «вежливым планированием вашего наследия». 🙂

№ 6 — F8, чтобы пройти через каждую строку кода

Сочетание клавиш для перехода по каждой строке кода — F8. Эквивалентом Mac для Step Into/Through является Cmd + Shift + I.

Это позволяет нам тестировать и отлаживать каждую строку
кода в наших макросах. Мы также можем открыть Excel рядом с редактором VB (или
на отдельном мониторе), чтобы увидеть действия, выполняемые в Excel при
выполнении каждой строки.

Часто это может помочь вам быстро найти ошибку с помощью
листа или диапазона.

Step Through VBA Code with the F8 Key

Чтобы использовать ярлык Step Into/Through:

  1. Нажмите внутри макроса, который вы хотите
    запустить. Вы можете нажать на любую строку кода. Макрос всегда будет
    начинаться сверху.
  2. Нажмите F8.
  3. Имя макроса будет выделено желтым цветом.
  4. Нажмите F8 еще раз, чтобы запустить эту строку и
    выделить следующую строку.
  5. Продолжайте нажимать F8, чтобы запустить каждую
    строку.

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

# 7 — Фигуры, запускающие макросы

Листовые элементы управления для кнопок, запускающих макросы, выглядят немного устаревшими. К счастью, мы также можем использовать любую фигуру в Excel для запуска макроса. Формы можно раскрасить и отформатировать, чтобы они больше походили на современные кнопки, которые можно найти в Интернете и в мобильных приложениях.

Create Custom Macro Buttons with Shapes

Чтобы назначить макрос формой:

  1. Вставьте фигуру на лист и отформатируйте ее по
    своему вкусу. Обычно это будет прямоугольная или круглая форма, содержащая
    текст.
  2. Щелкните правой кнопкой мыши форму и выберите
    «Назначить макрос …».
  3. Выберите макрос из списка и нажмите ОК. Макрос
    обычно будет тем, который хранится в той же книге, что и фигура.
  4. Нажмите на форму, выбрав ячейку на листе.
  5. При наведении курсора курсор изменится на указатель
    руки. Нажатие на форму запустит макрос.

Я рекомендую, чтобы окно «Да / Нет» появилось до того, как макрос действительно запустится. Это предотвращает любые случайные нажатия кнопок. Посмотрите мое видео о добавлении окна сообщения Да / Нет в ваши макросы. Это часть моей серии видеороликов о Персональной рабочей тетради.

# 8 — Автоматизируйте повторяющиеся задачи с помощью цикла For Next

Мы склонны выполнять одни и те же задачи снова и снова в Excel. Такие задачи, как: применение форматирования к нескольким диапазонам / листам, создание списка листов, копирование данных в каждую рабочую книгу, настройка фильтров для каждой сводной таблицы и т.д.

Циклы являются одним из самых мощных инструментов в VBA,
которые позволяют нам автоматизировать эти задачи. Цикл будет проходить по
каждому элементу в коллекции (например, рабочие листы в рабочей книге или
ячейки в диапазоне) и выполнять любой код, который вам нравится, для каждого
элемента.

How a For Next Loop Works in VBA

Существует несколько различных типов циклов, но цикл For Next Loop является наиболее распространенным. Ознакомьтесь с моей углубленной статьей «For Next Loop» в VBA для более подробной информации об этой обязательной технике кодирования.

# 9 — Используйте Option Explicit

Это еще одна спорная тема, но я требую (вежливо прошу), чтобы все участники моего курса VBA Pro использовали Option Explicit.

Итак, что это и почему?

Опция Explicit требует от нас объявить все переменные. Когда
мы видим строки кода с инструкциями Dim в верхней части макроса, это объявляет
переменную.

Option Explicit to Requires Variables Declaration and Prevent Typos

Мы в основном говорим VBA создать переменную в памяти для
последующего использования во время выполнения кода. Затем мы можем установить
значения или ссылки на объекты для этих переменных в макросе под оператором
Dim.

Основное преимущество Option Explicit заключается в том, что
он предотвращает опечатки и экономит время. Редактор VB выдаст сообщение
«Ошибка компиляции: переменная не определена» при попытке запустить код, если
переменная в коде не объявлена. Также будет выделена переменная, чтобы вы могли
объявить ее или исправить опечатку.

Если у вас нет Option Explicit и неправильно написана
переменная, код все равно будет работать и может привести к ошибкам в
результатах. Если ваш макрос длинный, то может понадобиться много времени,
чтобы найти эти опечатки. Доверьтесь мне. Там было сделано это!

Опция Explicit предотвращает эти ошибки и помогает вам
оставаться в здравом уме. 🙂

Чтобы включить Option Explicit, просто введите слова Option
Explicit в верхней части модуля кода. Вы также можете сделать так, чтобы VB
Editor автоматически добавлял слова в новые модули кода, для этого перейдите в
Инструменты> Параметры> установите флажок «Требовать декларацию
переменной». Опция Explicit теперь будет отображаться в верхней части каждого
нового кода модуля, который вы создаете.

# 10 — Таблицы Excel (ListObjects)

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

Таблицы Excel также значительно упрощают написание кода VBA
для динамических диапазонов данных. Это список или набор данных, в котором
количество строк или столбцов постоянно меняется по мере получения новых /
обновленных данных.

Например, следующая строка кода ссылается на ячейки в
диапазоне A2: A15.

Range("A2:A10").Font.Bold = True

Это жестко заданный диапазон. Если вы добавляете новые
данные внизу, вам придется вручную изменить код, чтобы включить новые строки.

Однако, если мы храним данные в таблице Excel и ссылаемся на
столбец таблицы, нам не нужно об этом беспокоиться.

Excel Tables List Objects with VBA References

Следующая строка кода ссылается на тот же столбец.

Range("Table1[Date]").Font.Bold = True

Преимущество в том, что код будет автоматически включать
новые строки, добавленные в таблицу. Не требуется ручное обновление или
обслуживание кода.

Мы также можем ссылаться на таблицы Excel с помощью объекта,
свойств и методов ListObjects в VBA.

ActiveSheet.ListObjects("Table57").ListColumns("Date").DataBodyRange.Font.Bold = True

Определенно есть некоторые преимущества использования ListObjects, когда дело доходит до изменения структуры таблицы (добавление / удаление строк / столбцов) и свойств, а также циклического перемещения по таблице. Читайте статью моего хорошего друга Криса Ньюмана о ListObjects в VBA, в ней множество примеров.

# 11 — Получите код с помощью Macro Recorder

Macro Recorder — удивительная особенность Excel и VBA. Он
создает код VBA при выполнении действий в Excel.

Например, после того, как мы включили макрос-рекордер, мы
можем продолжать выполнять свою обычную работу в Excel, такую как написание
формул или копирование и вставка данных. Макро-рекордер создаст весь код VBA
для этих действий и сохранит его в модуле кода.

Macro Recorder Creates VBA Code as you take Action in Excel

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

Макро-рекордер также имеет свои ограничения. Мы НЕ
собираемся создавать код для циклов, если операторы, обработка ошибок, окна
сообщений и т. Д. Нам нужно научиться писать код для реализации этих более
продвинутых методов, которые позволяют нам полностью автоматизировать процессы
и создавать приложения в Excel.

# 12 — The Immediate Window

Immediate Window в редакторе VB позволяет нам запускать одну строку кода. Мы можем запустить действие (метод) над объектом или вернуть результат кода обратно в Immediate Window. Может быть, мы хотим определить, сколько рабочих листов в рабочей книге.

VBA Immediate Window Excel Worksheets Count

Введите ?Worksheets.Count и нажмите Enter. Результат будет отображен в строке ниже.

Immediate Window также является местом, в которое выводится метод Debug.Print.

Сочетание клавиш для открытия окна Immediate в редакторе VB
— Ctrl + G

За подробностями обращайтесь к моей статье о 5-ти вариантах использования Immediate Window в VBA.

# 13 — Назначьте сочетание клавиш для макроса

Мы также можем назначить сочетания клавиш для запуска часто используемых макросов. Я рекомендую хранить эти макросы в вашей личной книге макросов.

Assign a Keyboard Shortcut to a Macro

Чтобы назначить сочетание клавиш:

  1. Нажмите кнопку «Макросы» на вкладке
    «Разработчик» или «Просмотр» на ленте.
  2. Выберите файл, содержащий макрос, в
    раскрывающемся списке «Макросы в».
  3. Выберите макрос из списка.
  4. Нажмите кнопку «Опции…».
  5. Введите букву в поле «Сочетание клавиш»,
    которому вы хотите назначить макрос. Все ярлыки начнутся с Ctrl. Вы можете
    удерживать клавишу Shift при наборе буквы, чтобы создать комбинацию клавиш Ctrl
    + Shift. Обычно это рекомендуется, потому что большинство комбинаций клавиш
    Ctrl + уже имеют выделенные сочетания клавиш в Excel.
  6. Нажмите ОК и закройте окно макроса.
  7. Теперь вы можете нажать комбинацию клавиш для
    запуска назначенного макроса.

# 14 — Проверьте, выбран ли диапазон

Иногда вам нужно убедиться, что у пользователя выбран диапазон (ячейки) до запуска макроса. Если у них выбрана форма (диаграмма, срез и т.д.), это может привести к ошибкам в вашем коде.

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

Вот код, который проверит, выбран ли диапазон.

' Проверьте, что диапазон выбран
If TypeName(Selection) <> "Range" Then
  MsgBox "Please select a range first.", vbOKOnly, "Select Range"
  Exit Sub
End If

Функция TypeName возвращает тип данных или имя объекта для
данной переменной или объекта. В этом случае он оценивает Selection и
возвращает тип выбранного объекта. Если это не (<>) диапазон, тогда
оператор If верен.

Обычно вы хотите поместить это в начало макроса. Если диапазон НЕ выбран, появится окно сообщения (всплывающее), в котором пользователю будет предложено выбрать диапазон. Строка Exit Sub завершит макрос.

# 15 — Ctrl + Y, чтобы удалить строку кода

В редакторе VB Ctrl + Y удаляет строку кода, в которой
находится текстовый курсор.

No Direct Keyboard Shortcut in VB Editor for Redo - Ctrl+Y Deletes Line

Это создает большую путаницу, поскольку Ctrl + Y обычно
используется для команды «Повторить» практически во всех других приложениях,
включая Excel!

Если вы посмотрите на меню «Правка» в редакторе VB, то
увидите, что для «Вернуть» нет выделенного ярлыка. Мы можем использовать Alt,
E, R в качестве альтернативного ярлыка для Redo.

Это всего лишь одна из тех странных причуд VBA, которые
действительно приятно знать.

# 16 — Ctrl + i для быстрой информации

Это еще одна отличная комбинация клавиш, которую нужно
знать. Ctrl + i отображает всплывающую подсказку, которую вы видите при
написании или выполнении кода. Это позволяет вам видеть все параметры в
свойстве, методе или функции.

Quick Parameter Info - Ctrl+i VBA Shortcut

Чтобы использовать сочетание клавиш Ctrl + i:

  1. Поместите текстовый курсор в слово, для которого
    вы хотите отобразить всплывающую подсказку.
  2. Нажмите Ctrl + i.
  3. Появится всплывающая подсказка.
  4. Нажмите Escape, чтобы закрыть его или переместить
    курсор.

Если в строке выделена переменная, и вы хотите видеть
информацию о параметре вместо значения / типа данных переменной, нажмите Ctrl +
Shift + i, чтобы просмотреть информацию о параметре.

# 17 — Ctrl + J открывает раскрывающийся список IntelliSense

Сочетание клавиш Ctrl + J откроет раскрывающееся меню Intellisense, в котором отображается список объектов, свойств, методов, переменных и т.д.

Обычно я использую его, когда набираю частичную строку кода и заканчиваю ее точкой, например Range («A1»).

Ctrl+j to open Intellisense Drop Down Menu in VBA

Затем я хочу вернуться к этой строке и увидеть выпадающий
Intellisense. Нажатие Ctrl + J открывает меню. В противном случае вы должны
удалить период и ввести его снова.

Мы также можем использовать Ctrl + J, чтобы выбрать другую
переменную из списка. Если вы где-то использовали неправильное имя переменной
или вам нужно его изменить, нажмите Ctrl + J, чтобы увидеть список имен
переменных. Если вы добавите префикс к своим именам переменных (он же
венгерская нотация), то другие переменные должны быть довольно близки в этом
списке.

№ 18 — Функции листа

Знаете ли вы, что мы можем использовать функции рабочего листа в VBA? Это функции, которые мы используем в формуле в Excel, такие как: vlookup, match, countif, max, min и т.д.

Тип WorksheetFunction. в макросе, чтобы увидеть список всех
функций Excel, которые доступны в VBA.

WorkSheetFunction Property for Excel Functions in VBA

На мой взгляд, это лучшее из обоих миров. Мы можем
использовать возможности функций Excel в нашем коде VBA.

Всплывающая подсказка для функции показывает количество
аргументов, но НЕ показывает имена аргументов. Поэтому обычно нам нужно набрать
формулу в Excel, чтобы определить, что представляет собой каждый аргумент (если
вы не запомнили его).

WorkSheetFunction Property in VBA does not contain Excel argument names

Функция рабочего листа, которую я чаще всего использую в VBA — это Match. Мы можем использовать Match для поиска значения и возврата номера строки или столбца ячейки, содержащей соответствующее значение. Иногда это может быть проще, чем с помощью метода Range.Find. Ознакомьтесь с моей статьей и видео о том, как найти последнюю использованную ячейку на листе, чтобы узнать больше о методе Range.Find.

Скачать PDF

Вы можете скачать печатную версию статьи в формате PDF.

Какой ваш любимый совет для VBA?

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

Также мне интересно, какой ваш любимый трюк, который не был включен в эту статью. Пожалуйста, оставьте комментарий ниже и поделитесь своим. Здесь нет правильных или неправильных ответов, но это отличный способ учиться друг у друга.

Понравилась статья? Поделить с друзьями:
  • Как назначить переменную в vba excel
  • Как назначить макросу сочетание клавиш в excel
  • Как назначить макросу кнопку на панели в word
  • Как назначить макрос на ячейку excel
  • Как назначить макрос кнопке в документе word