Сочетание клавиш для vba 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. Сочетания клавиш для кнопок.


There are two ways to press the shortcut keys depending on the separator character used in the sequence.

+ Plus

The + (plus) between keys means press & hold the keys together in order.  For example, to press the shortcut Ctrl+Shift+L to Toggle Filters, you will:

Press & hold Ctrl, then press & hold Shift, then press L.  Then release all keys.

, Comma

The , (comma) between keys means press & release each key in order.  For example, to press the shortcut Alt,E,S to open Paste Special, you will:

Press & release Alt, then press & release E, then press & release S.

Laptop Keyboards

If you are using a laptop keyboard then you might be limited on the some of the shortcuts you can press.  Laptop keyboards tend to have smaller keyboards and don’t always contain keys like Page Up, Page Down, Menu, etc.

You might also need to press the Fn (function) key in combination with the function keys F1 to F12.  Some laptops have Fn Lock Mode so that you don’t have to press Fn with the the function keys.

Checkout our post on the Best Keyboards for Excel Keyboard Shortcuts to learn more.

Если уже имеете код макроса записанный в рабочей книге или надстройке, можно его запустить и выполнить несколькими способами. Если еще нет кода макроса или вы еще не знаете, как его написать, тогда сначала прочитайте статью: Как написать макрос в 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.

Начать выполнение программного кода с остановкой на строке, содержащей текстовый курсор

Клавиши

Действие

F1

Вызвать справку

Ctrl + Enter

Переход на новую строку в списке

Ctrl + N

Создать новый проект

Ctrl + O

Открыть существующий проект

Ctrl + S

Сохранить выбранную форму

Ctrl + P

Вывести на печать

ALT + Q

Завершение работы Visual Basic

Ctrl + Z

Отменить последнее действие

Ctrl + X

Вырезать выделенный текст (объект) в буфер обмена

Ctrl + C

Копировать выделенный текст (объект) в буфер обмена

Ctrl + V

Вставить выделенный текст (объект) из буфера обмена

DEL

Удаляет один символ, находящийся справа от позиции курсора

Ctrl + A

Выделить все, либо весь текст в коде, либо все объекты на форме

Ctrl + F

Вызывает окно поиска

F3

Найти следующее искомое слово, указанное в окне поиска

Ctrl + H

Вызывает окно замены

Tab

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

Shift + Tab

— Переход к предыдущему объекту на форме
— Сделать отступ влево в коде, указанным числом пробелов

Ctrl + J

Вывести список всех доступных служебных слов

Ctrl + Shift + J

Вывести список доступных констант

Ctrl + I

Вывести подсказку синтаксиса оператора

Ctrl + Shift + I

Вывести подсказку синтаксиса параметра

Ctrl + Space

— Вывести список всех функций, методов, констант, свойств
— Для завершения набора имени

Shift + F7

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

Shift + F2

Указывает место объявления выделенной функции

Ctrl + Shift + F2

Перевести указатель мыши в предыдущую позицию

F2

Вызывает окно Object Browser (Браузер объектов)

Ctrl + G

Вызывает окно Immediate

Ctrl + L

Во время выполнения выдаёт окно для просмотра стека выполняемых процедур.

Ctrl + R

Вывести Project Explorer (Проводник проекта)

F4

Вызывает окно Properties Window (Окно свойств формы)

Shift + F4

Вызывает окно Property Pages (Окно свойств страницы)

Ctrl + D

Добавить файл в проект

Ctrl + T

Вызывает окно Components

F8

Шаг с заходом

Shift + F8

Шаг с обходом

Ctrl + Shift + F8

Шаг с выходом

Ctrl + F8

Выполнить до текущей позиции

Ctrl + W

Правка Наблюдателя

Shift + F9

Быстрый Наблюдатель

F9

Установить финиш-точки

Ctrl + Shift + F9

Убрать все финиш-точки

Ctrl + F9

Установить следующее заявление

F5

Запустить проект

Ctrl + F5

Запуск с полной компиляцией

Ctrl + Break

Пауза запущенного проекта

Shift + F5

Перезапуск проекта

Ctrl + E

Вызвать окно Menu Editor (Редактор меню)

Ctrl + клавиша управления

Изменение размера выделенного объекта

Shift + клавиша управления

Перемещение выделенного объекта

Ctrl+F8

На чтение 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 для чайников
Каммингс Стив

Комбинации клавиш

Комбинации клавиш

В табл. 5.1 приведены все комбинации клавиш, задействованные в редакторе Visual Basic.

Кроме них, вы можете использовать клавишные команды Windows для управления курсором и редактирования текста. Не забывайте и о том, что Shift+F10 вызывает контекстное меню для окна или другого объекта, активного в данный момент, — как будто вы щелкаете на этом объекте правой кнопкой мыши.

Таблица 5.1. Комбинации клавиш, предлагаемые редактором Visual Basic

Отображение окон

Для того чтобы…

нажмите…

Открыть окно программного кода для данной формы или элемента управления

F7

Отобразить форму, соответствующую активному окну программного кода

Shift+F7

Перейти в следующее окно программного кода или в окно формы

Ctrl+Tab

Открыть окно обозревателя объектов

F2

Открыть окно свойств

F4

Открыть окно немедленного выполнения команд

Ctrl+G

Открыть окно стека вызовов во время выполнения программы

Ctrl+L

Работа с программным кодом

Для того чтобы…

нажмите…

Перейти к определению объекта в точке ввода

Shift+F2

Открыть диалоговое окно поиска

Ctrl+F

Найти далее (найти, где следующий раз появляется текст, заданный в окне поиска)

F3

Найти предыдущее

Shift+F3

Заменить

Ctrl+H

Перейти к предыдущей редактировавшейся строке

Ctrl+Shift+F2

Отменить действие

Ctrl+Z

Открыть список свойств/методов

Ctrl+J

Открыть список констант

Ctrl+Shift+J

Получить краткую справку о переменной или объекте в точке ввода

Ctrl+l

Отобразить информацию о параметрах функции в точке ввода

Ctrl + Shift + l

Автоматически дополнить печатаемое слово

Ctrl +пробел

Работа со свойствами

Для того чтобы…

нажмите…

Перейти в окне свойств к следующему свойству, начинающемуся с заданной буквы

Ctrl + Shift +заданная буква

Выполнение программы

Для того чтобы…

нажмите…

Запустить процедуру или форму в активном окне

F5

Приостановить выполнение программного кода и перейти в режим паузы

Ctrl +Break

Начать выполнение программного кода с остановкой на строке, содержащей текстовый курсор

Ctrl+F8

Читайте также

Комбинации клавиш в Word, Excel и Access

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

Комбинации клавиш

Комбинации клавиш
В табл. 5.1 приведены все комбинации клавиш, задействованные в редакторе Visual Basic.Кроме них, вы можете использовать клавишные команды Windows для управления курсором и редактирования текста. Не забывайте и о том, что Shift+F10 вызывает контекстное меню для окна

Комбинации клавиш для отладки

Комбинации клавиш для отладки
В табл. 9.1 перечислены комбинации клавиш, которые используются при отладке. Подробно каждую из них я рассмотрю дальше в настоящей главе.Построчное выполнение кода (пошаговое) &lt;F8&gt;Построчное выполнение кода без построчного выполнения

Комбинации текстур на объекте

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

4.3. Особые комбинации клавиш при работе с GNOME

4.3. Особые комбинации клавиш при работе с GNOME
В табл. 4.1 приведены некоторые полезные комбинации клавиш при работе с

16.2. Комбинации клавиш

16.2. Комбинации клавиш
Используя приведенные в табл. 16.1 комбинации клавиш, вы сэкономите свое рабочее время (все-таки проще нажать ту или иную комбинацию клавиш, чем бродить по «дебрям» меню

25.4. Отключение комбинации клавиш <Ctrl>+<Alt>+<Del>

25.4. Отключение комбинации клавиш &lt;Ctrl&gt;+&lt;Alt&gt;+&lt;Del&gt;
Предположим, у вас есть сервер. К нему подошел «хакер». Он прекрасно знает, что проникнуть в ваш безопасный сервер он не сможет. Там и пароли сложные, и пароль на BIOS стоит. В общем, не пробраться. Как же вывести сервер из

Комбинации слоев

Комбинации слоев
Иногда слой должен иметь одно значения атрибута, иногда – другое. Например, при простановке размеров слой размерных записей должен был видимым, тогда как при работе с другими объектами он будет только мешать. Структурная сетка осей, которая тоже

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

Опции команд, которые   могут использоваться в комбинации с другими опциями.
Для получения зашифрованного файла в формате ASCII Radix-64 добавьте опцию -а при шифровании или подписании сообщения или извлечения ключа:pgp –sea textfile her_useridили: pgp –kxa userid keyfile [keyring]Для полного удаления

Комбинации слоев

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

Виртуальные коды клавиш

Виртуальные коды

4.2. Учимся читать комбинации клавиш

4.2. Учимся читать комбинации клавиш
Чтобы постоянно не писать «Нажмите клавишу Ctrl, не отпуская ее, нажмите клавишу X, а потом отпустите обе клавиши», в компьютерной литературе принято обозначать такую комбинацию кратко: Ctrl+X.Вот несколько примеров комбинаций клавиш:Ctrl+Alt+Del

Клавиатурные комбинации

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

Finder

Управление

Введение

Всем нам приходится — кому реже, кому чаще — повторять одни и те же действия и операции в 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

Понравилась статья? Поделить с друзьями:
  • Сочетание клавиш выделение цветом word
  • Сочетание клавиш в программе word
  • Сочетание клавиш в программе excel
  • Сочетание клавиш в word позволяющее
  • Сочетание клавиш в word изменение регистра