Как научиться писать макросы в excel 2018 с нуля: примеры и как сделать / Skillbox Media

Содержание

Как использовать макросы VBA для сообщений в Outlook 2016 и 2019

Данный материал является переводом оригинальной статьи «EasyTweaks : How to write useful macros in Outlook 2016 and 2019 messages».

В Microsoft Office мы используем возможности Visual Basic for Application (VBA) для создания пользовательских программ, которые расширяют базовую функциональность Office и помогают экономить время за счет автоматизации повторяющихся задач. Мы называем эти небольшие программы VBA-макросами.

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

  • Сначала основы: мы узнаем, как вставить и сохранить простой настраиваемый макрос VBA в активный сеанс Outlook.
  • Затем мы настроим среду разработки макросов.
  • Мы рассмотрим самые простые примеры Outlook VBA. Это поможет вам понять основы разработки макросов и позволит писать простые макросы.
  • Затем мы определим ярлык для нашего макроса на панели быстрого доступа. Это позволит нам легко запускать макрос.
  • И закончим, включив макросы Outlook и обработав их настройки безопасности, чтобы гарантировать, что код действительно будет запускаться при появлении запроса на наших компьютерах.

Можно ли записать макрос в Outlook?

В отличие от других приложений Office, Outlook не предлагает простого Macro recorder для захвата действий пользователя и автогенерации создаваемого кода VBA в фоне. Поэтому, если мы хотим добавить в Outlook свои собственные функции, нам нужно научиться писать простые программы VBA и включать их в сеанс Outlook.

Если вам интересно узнать, как на самом деле работает средство записи макросов Office, рекомендуем изучить MS Word Macros и Excel VBA Macro tutorials.


Написание макроса VBA в Outlook
  1. Прежде всего откройте Microsoft Outlook.
  2. Теперь нажмите Alt + F11.
  3. Откроется интегрированная среда разработки (IDE) разработчика VBA.
  4. Разверните дерево проекта до узла ThisOutlookSession.
  5. Щелкните правой кнопкой мыши ThisOutlookSession и нажмите «Вставить».
  6. Теперь вы вставите модуль Visual Basic. Для этого выберите Module.
  7. Вставьте свой код VBA в окно модуля.
  8. Нажмите «File«, затем выберите «Save«.
  9. Далее, закройте среду разработчика. Это вернет вас в пользовательский интерфейс Outlook.

Прочтите несколько простых примеров кода, которые помогут вам начать работу с VBA. Никогда неосознанно не копируйте код VBA из неизвестных ресурсов!

Как настроить вкладку разработчика в Outlook?

Если вы часто разрабатываете макросы Outlook, вы можете настроить среду разработки Office. Звучит фантастически, не правда ли? На самом деле это довольно простая процедура. Читайте подробности:

Откройте Outlook, правой кнопкой мыши щелкните на верхней части Ленты (Ribbon) и выберите Customize the Ribbon.

Отметьте пункт Developer и нажмите OK.

Теперь вы найдете меню Developer на Ленте.


Полезные примеры Outlook VBA
Создание электронного сообщения

Этот простой фрагмент кода программно создает новый элемент сообщения электронной почты..

Сценарий начинается с создания почтового элемента Outlook, затем он устанавливает поля «Кому» (To), «Тема» (Subject), «Основной текст» (Body) и «Копия» (CC). Наконец, он отображает сообщение в Outlook, чтобы вы могли просмотреть и отправить его вручную.

Public Sub CreateMail()
Dim MyEmail As MailItem
' Create a new Outlook message item programatically
Set MyEmail = Application.CreateItem(olMailItem)
'Set your new message to, subject, body text and cc fields. 
With MyEmail
'Кому
.To = "[email protected]"
'Тема
.Subject = "Insert your message subject here"
'Текст
.Body = "Insert your email text body here"
'Копия
.CC = "[email protected]"
End With
MyEmail.Display
End Sub

Вы можете использовать предопределенные шаблоны Outlook при определении новых писем с помощью VBA. Для этого вам нужно использовать метод CreateItemFromTemplate и указать расположение файла шаблона Outlook (*.oft).

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

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

MyEmail.Send
Прикрепление файла к электронному письму

Во многих случаях вы хотели бы автоматизировать отправку электронного письма с прикрепленным к нему файлом. Это может быть документ Word, электронная таблица Excel, презентация PowerPoint, документы PDF и т. д.

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

Public Sub CreateMailWAttach()
' VBA Code
Dim MyEmail As MailItem
' Create a new Outlook message item programatically
Set MyEmail = Application.CreateItem(olMailItem)   'Define your attachment folder path and file name - modify this part as needed
Dim AttachFolder, AttachFile As String
AttachFolder = "C:\temp\"
AttachFile = "Dummy.zip"   'Set your new message to, subject, body text and cc fields.
With MyEmail   .To = "[email protected]; [email protected]"
.Subject = "This is your message subject"
.Body = "Insert your email text body here"
.CC = "cc@my_server.com"
.Attachments.Add AttachFolder & AttachFile   End With   MyEmail.Display
' MyEmail.Send
End Sub

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

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

 

Создание задачи через VBA

Следующий фрагмент кода создает задачу Outlook, назначает ее другому лицу и устанавливает тему задачи и основной текст.

Public Sub CreateTask()   Dim MyTask As TaskItem
' Create a new Outlook task
Set MyTask = Application.CreateItem(olTaskItem)   'Set your new task recipients and information fields
With MyTask
.Assign
.Recipients.Add "taskrecipient@my_server.com"
.Subject = "This is your task subject"
.Body = "Insert a thorough explanation of your task here."   End With   MyTask.Display   End Sub

Сохранение в формате HTML

Некоторые читатели спрашивали, как автоматизировать сохранение писем в HTML. Приведенный ниже код выполняет именно это.

Public Sub SaveAsHTML()
On Error Resume Next
Dim MyWindow As Outlook.Inspector
Dim MyItem As MailItem
Dim FilePath As String
FilePath = Environ("HOMEPATH") & "\Documents\" & "\"
Dim ItemName As String
Set MyWindow = Application.ActiveInspector
If TypeName(MyWindow) = "Nothing" Then
MsgBox ("Kindly open an email to save")
Else
Set MyItem = MyWindow.CurrentItem
ItemName = MyItem.Subject ' File name will be identical to the message subject!
With MyItem
. SaveAs FilePath & ItemName & ".html", olHTML
End With
End If
End Sub

Убедитесь, что вы запускаете этот код только в электронных письмах, открытых в Outlook (не в представлении «Входящие»/»Проводник»)!


Вопросы по макросам Outlook

Где в Outlook хранятся макросы?

Вы можете не знать, где именно хранится используемый вами макрос. В отличие от, например, Excel, который позволяет хранить макросы в файле personal.xlb или в определенных электронных таблицах, все макросы Microsoft Outlook хранятся в одном глобальном файле, который называется VBAProject.otm. Файл можно найти по адресу:

C:\users\<your_user_name>\AppData\Roaming\Microsoft\Outlook.

 

Кнопка быстрого доступа для макросов Outlook

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

Откройте Microsoft Outlook, если ещё не открыли.

Щёлкните правой кнопкой мыши на Ленте Outlook и выберите пункт Customize the Quick Access Toolbar.

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

Нажмите Choose commands from комбо-бокс и выберите Macros.

Выберите макрос, который вы создали и нажмите Add.

Нажмите Modify для выбора иконки для вашей кнопки Панели Быстрого Доступа.

По завершении, нажмите OK.

 

Как разрешить выполнение макросов в Outlook?

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

Сперва, нужно разрешить Outlook запускать наш макрос VBA. По умолчанию Microsoft Office отключает макросы и не разрешает их выполнение. Поэтому нам нужно будет определить надлежащую безопасность макросов, чтобы разрешить запуск вашего настраиваемого макроса Outlook.

В Outlook 2016/2019, щелкните Developer на Ленте и выберите Macro security.

Выберите Настройки безопасности макросов.

  • Для Outlook 2016 выберите вариант «Notifications for only digitally signed macros, all other disabled или Notifications for all macros«.
  • Для Outlook 2019 выберите вариант «Disable All Macros with Notification«. Это задействует появление предупреждающего сообщения, требующего одобрения пользователя перед запуском макроса.

После настройки безопасности макросов, нажмите OK.

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


Как использовать макрос Outlook?

И последнее, но не менее важное: теперь пора запустить только что созданный макрос.

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

Нажмите значок, который вы назначили для своего макроса.

Вуаля, вы только что завершили и запустили свой (первый) макрос Outlook VBA!

Как записать макрос в Excel 2016

Использование макросов в Microsoft Excel — это идеальный способ автоматизации задач. Мы собираемся показать вам, как записать макрос в Excel 2016, чтобы вы могли освободить свое время и перестать тратить его на повторяющиеся действия.

Откройте БЕСПЛАТНУЮ шпаргалку «Essential Excel Formulas» прямо сейчас!

Это подпишет вас на нашу рассылку

Прочитайте нашу политику конфиденциальности

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

Как записать макрос в Excel 2016

Это шаги, которые вы должны выполнить, чтобы записать макрос в Excel 2016. Мы кратко изложим их ниже, а затем подробно рассмотрим.

  1. Включить вкладку « Разработчик ».
  2. На вкладке « Разработчик » нажмите « Запись макроса» .
  3. Введите имя макроса .
  4. Назначьте сочетание клавиш .
  5. Выберите, где хранить макрос .
  6. Введите описание .
  7. Нажмите ОК .
  8. Выполните свои действия макроса.
  9. На вкладке « Разработчик » нажмите « Остановить запись» .

Запись макроса: подробно

1. Включите вкладку «Разработчик»

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

Чтобы включить его, выберите «Файл»> «Параметры»> «Настроить ленту» . В столбце « Настройка ленты» с выбранными в раскрывающемся списке главными вкладками установите флажок « Разработчик» и нажмите кнопку « ОК» .

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

2. Нажмите Запись макроса

Перейдите на вновь включенную вкладку « Разработчик » на ленте. В группе « Код » нажмите « Запись макроса» . Это откроет новое окно.

Кроме того, вы можете нажать Alt + T + M + R.

3. Введите имя макроса

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

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

4. Назначьте сочетание клавиш

Назначение сочетания клавиш позволит вам в любое время запустить макрос в Excel, нажав эту комбинацию. Щелкните в поле « Сочетание клавиш» и нажмите клавишу, которую вы хотите использовать в сочетании с Ctrl.

Я рекомендую удерживать клавишу Shift при выборе комбинации клавиш, чтобы она стала частью сочетания клавиш. Ваш ярлык макроса переопределит ярлык Excel по умолчанию, если он уже существует. Например, если вы выберете Ctrl + A, тогда будет отменена возможность выбора всего. Вместо этого используйте Ctrl + Shift + A, поскольку это не существующий ярлык.

5. Выберите, где хранить макро

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

Доступные варианты:

  • Персональная рабочая тетрадь макроса. Макрос будет доступен при каждом использовании Excel. Он будет хранить макрос в скрытой книге макросов Personal.xlsb.
  • Новая рабочая книга. Макрос будет доступен для всех рабочих книг, которые вы создадите во время существующего сеанса Excel.
  • Эта рабочая книга. Макрос будет доступен только в открытой рабочей книге.

6. Введите описание

Последний шаг в этом окне — ввести описание в поле. Используйте это, чтобы подробно описать, что делает макрос.

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

7. Нажмите ОК

Возможно, самый простой шаг из всех! Нажмите OK, когда вы довольны тем, что отправили, и начните запись макроса.

8. Выполните ваши действия макроса

Макрос теперь записывается, поэтому выполните свои действия. Это может включать в себя ввод текста, нажатие на ячейки, применение форматирования или импорт данных извне из таких мест, как Microsoft Access.

Во время записи вы можете использовать переключатель « Использовать относительные ссылки» , который находится на вкладке « Разработчик ». Если включено, макросы записываются с действиями относительно начальной ячейки. Например, если вы нажмете от ячейки A1 до A3 во время записи, запуск макроса из ячейки J6 переместит курсор на J8. Если отключено, курсор переместится с J6 на J8.

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

9. Нажмите Остановить запись

После того, как вы закончили свои шаги макроса, на вкладке Разработчик в группе Код нажмите Остановить запись .

Кроме того, вы можете нажать Alt + T + M + R.

Используйте свои макросы

Создав макросы, вы можете получить к ним доступ на вкладке « Разработчик ». Нажмите Макросы, чтобы увидеть их в списке. Вы также можете нажать Alt + F8, чтобы открыть это окно. Здесь вы можете выбрать свои макросы и выполнить различные параметры, такие как « Выполнить» , « Редактировать» или « Удалить» .

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

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

Учебник для начинающих по написанию макросов VBA в Excel (и почему вы должны учиться)

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

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

Начнем с основ.

Что такое VBA?

VBA — это Visual Basic для приложений , язык программирования, который можно использовать во многих приложениях Microsoft. Visual Basic — это язык программирования, а VBA — его версия для конкретных приложений. (Microsoft прекратила поддержку Visual Basic еще в 2008 году, но VBA по-прежнему набирает обороты).

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

Тем не менее, к VBA нужно время, чтобы привыкнуть.

Преимущества макросов VBA в Excel

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

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

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

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

Давайте рассмотрим простой макрос VBA, чтобы понять, как он работает.

Пример макроса VBA в Excel

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

Этот макрос добавит квартальные продажи из каждого магазина и запишет эти итоги в ячейки электронной таблицы (если вы не знаете, как получить доступ к диалоговому окну VBA, ознакомьтесь с нашим пошаговым руководством по VBA здесь):

 Sub StoreSales()\nDim Sum1 как валюта\nDim Sum2 как валюта\nDim Sum3 как валюта\nDim Sum4 как валюта\nДля каждой ячейки в диапазоне("C2:C51")\n Cell. Activate\n If IsEmpty(Cell) Затем выйдите из-за\n, если ActiveCell.Offset(0, -1) = 1, тогда\n Sum1 = Sum1 + Cell.Value\n ElseIf ActiveCell.Offset(0, -1) = 2, тогда\n Sum2 = Sum2 + Cell. Значение\n ElseIf ActiveCell.Offset(0, -1) = 3 Then\n Sum3 = Sum3 + Cell.Value\n ElseIf ActiveCell.Offset(0, -1) = 4 Then\n Sum4 = Sum4 + Cell.Value\ nEnd If\nСледующая ячейка\n \nДиапазон("F2").Значение = Сумма1\nДиапазон("F3").Значение = Сумма2\nДиапазон("F4").Значение = Сумма3\nДиапазон("F5").Значение = Sum4\n \nКонец подпункта 

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

Объявление Sub

В начале модуля у нас есть «Sub StoreSales()». Это определяет новую подсистему с именем StoreSales.

Вы также можете определять функции — разница в том, что функции могут возвращать значения, а подпрограммы — нет (если вы знакомы с другими языками программирования, подпрограммы эквивалентны методам). В этом случае нам не нужно возвращать значение, поэтому мы используем подпрограмму.

В конце модуля у нас есть «End Sub», который сообщает Excel, что мы закончили с этим макросом VBA.

Объявление переменных

Все первые строки кода в нашем скрипте начинаются с «Dim». Dim — это команда VBA для объявления переменной.

Итак, «Dim Sum1» создает новую переменную с именем «Sum1». Однако нам нужно сообщить Excel, что это за переменная. Нам нужно выбрать тип данных. В VBA существует множество различных типов данных — вы можете найти полный список в справочных документах Microsoft.

Поскольку наш макрос VBA будет иметь дело с валютами, мы используем тип данных Currency.

Оператор «Dim Sum1 As Currency» указывает Excel создать новую переменную «Валюта» с именем Sum1. Каждая переменная, которую вы объявляете, должна иметь оператор «Как», чтобы указать Excel ее тип.

Запуск цикла For

Циклы — это одна из самых мощных вещей, которые вы можете создать в любом языке программирования. Если вы не знакомы с циклами, ознакомьтесь с этим объяснением циклов Do-While. В этом примере мы используем цикл For, который также рассматривается в статье.

Вот как выглядит цикл:

 Для каждой ячейки в диапазоне("C2:C51")\n[куча всего]\nСледующая ячейка 

Это указывает Excel на итерацию по ячейкам в указанном нами диапазоне. Мы использовали объект Range, который является особым типом объекта в VBA. Когда мы используем его таким образом —Range(«C2:C51») — он сообщает Excel, что нас интересуют эти 50 ячеек.

«Для каждого» сообщает Excel, что мы собираемся что-то сделать с каждой ячейкой в ​​диапазоне. «Следующая ячейка» идет после всего, что мы хотим сделать, и говорит Excel начать цикл с самого начала (начиная со следующей ячейки).

У нас также есть такое утверждение: «Если IsEmpty(Cell) Then Exit For».

Угадайте, что он делает?

Примечание: Строго говоря, использование цикла While может быть лучшим выбором. Однако ради обучения я решил использовать цикл For с Exit.

Операторы If-Then-Else

Ядром этого конкретного макроса являются операторы If-Then-Else. Вот наша последовательность условных операторов:

 If ActiveCell.Offset(0, -1) = 1 Then\n Sum1 = Sum1 + Cell.Value\n ElseIf ActiveCell.Offset(0, -1) = 2 Then\n Sum2 = Sum2 + Cell.Value\n ElseIf ActiveCell.Offset(0, -1) = 3 Then\n Sum3 = Sum3 + Cell.Value\n ElseIf ActiveCell.Offset(0, -1) = 4 Then\n Sum4 = Sum4 + Cell.Value\nКонец, если 

По большей части вы можете догадаться, что делают эти операторы. Однако вы можете быть не знакомы с ActiveCell.Offset. «ActiveCell.Offset(0, -1)» сообщает Excel, что нужно просмотреть ячейку, которая находится на один столбец слева от активной ячейки.

В нашем случае это говорит Excel о необходимости свериться со столбцом номера магазина. Если Excel находит в этом столбце 1, то он берет содержимое активной ячейки и добавляет его к Sum1. Если он находит 2, он добавляет содержимое активной ячейки к Sum2. И так далее.

Excel выполняет все эти операторы по порядку. Если условный оператор выполнен, он завершает оператор Then. Если нет, он переходит к следующему ElseIf. Если он дойдет до конца и ни одно из условий не будет выполнено, он не предпримет никаких действий.

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

Запись значений ячеек

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

 Range("F2").Value = Sum1\nRange("F3").Value = Sum2\nRange("F4").Value = Sum3\nRange("F5" ).Value = Sum4 

С помощью «.Value» и знака равенства мы присваиваем каждой из этих ячеек значение одной из наших переменных.

И все! Мы сообщаем Excel, что мы закончили писать этот Sub с помощью «End Sub», и макрос VBA завершен.

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

Сборка строительных блоков VBA в Excel

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

Но с практикой вы расширите свой словарный запас VBA и сможете писать макросы быстрее, точнее и с гораздо большей силой, чем вы когда-либо могли их записывать.

Когда вы застряли, запуск поиска Google — это быстрый способ получить ответы на ваши вопросы VBA. И справочник Microsoft Excel VBA может быть полезен, если вы готовы копаться в нем в поисках технического ответа.

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

Как создать и использовать надстройку Excel (пошаговое руководство)

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

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

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

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

Если вы заинтересованы в простом изучении VBA, ознакомьтесь с моими Онлайн-обучение Excel VBA .

В этом руководстве рассматриваются:

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

  • Запись/запись кода в модуль.
  • Сохранить как надстройку Excel.
  • Добавьте макрос на панель быстрого доступа.

Запись/запись кода в модуль

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

 Sub HighlightErrors()
 Selection.SpecialCells(xlCellTypeFormulas, xlErrors). Выбрать
 Выбор.Интерьер.Цвет = vbRed
End Sub 

Если вы пишете код (или копируете его откуда-то), выполните следующие действия:

  • Откройте книгу Excel.
  • Нажмите Alt + F11, чтобы открыть окно редактора VB.
  • В редакторе VB вы увидите объекты книги, перечисленные в проводнике проекта. Если вы этого не видите, перейдите в View -> Project Explorer.
  • Щелкните правой кнопкой мыши любой объект в рабочей книге. Перейдите к опции «Вставить» и нажмите «Модуль». Это вставит объект модуля.
  • Дважды щелкните модуль и введите указанный выше код (скопируйте и вставьте).
  • Нажмите Alt+F11, чтобы вернуться к рабочему листу Excel.

Примечание: Если вы записываете макрос, Excel автоматически из позаботится о вставке модуля и размещении в нем кода.

Теперь давайте создадим надстройку из этого кода.

Сохраните и установите надстройку

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

  • Перейдите на вкладку «Файл».
  • Нажмите «Сохранить как».
  • В диалоговом окне «Сохранить как» измените тип «Сохранить как» на .xlam. Имя, которое вы присвоите файлу, будет именем вашей надстройки. В этом примере файл сохраняется с именем Highlight Errors.
    • Вы заметите, что путь к файлу, в котором он сохраняется, автоматически меняется. Вы можете использовать значение по умолчанию или изменить его, если хотите.
  • Откройте книгу Excel и выберите «Разработчик» -> «Надстройки» -> «Надстройки Excel».
  • В диалоговом окне «Надстройки» найдите сохраненный файл и нажмите «ОК».

Надстройка активирована.

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

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

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

Сохранить и установить надстройку

Для этого:

  • Щелкните правой кнопкой мыши любую из вкладок ленты и выберите «Настроить панель быстрого доступа».
  • В диалоговом окне «Параметры Excel» выберите «Макросы» в раскрывающемся списке «Выбрать команды». Вы заметите, что там указан макрос «HighlightErrors».
  • Щелкните макрос «HighlightErrors» и нажмите «Добавить». Это добавит макрос в список справа.
  • Нажмите OK. Это добавит макрос на панель быстрого доступа.

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

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