Как сделать макрос в excel для всех файлов

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

Личная (персональная) книга макросов – это скрытая служебная книга Excel с именем PERSONAL.XLSB, предназначенная для записи и хранения программного кода (функций и подпрограмм) и предоставления доступа к нему из всех открытых рабочих книг.

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

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

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

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

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

Список пользовательских функций в Личной книге макросов

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

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

Создание

Откроется редактор VBA:

Проводник в редакторе VBA Excel

Проводник в редакторе VBA

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

 Сохранение макроса в Личной книге макросов

Сохранение макроса в Личной книге макросов

После записи макроса, сохраненного в Личную книгу макросов, эта книга будет создана и появится в проводнике редактора VBA.

Расположение

Место расположения Личной книги макросов на конкретном компьютере, по словам разработчиков, зависит только от версии операционной системы. О его зависимости от версии Excel в их статье ничего не сказано.

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

Результаты поиска папки XLSTART в проводнике

Результаты поиска папки XLSTART в проводнике

Личная книга макросов в папке XLSTART

Личная книга макросов в папке XLSTART

Удаление

Если вы хотите удалить Личную книгу макросов из своего приложения Excel, найдите с помощью поиска в проводнике папку XLSTART и удалите из нее файл PERSONAL.XLSB.

Добавление

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

Если вы никогда не слышали о макросе, то самым точным его определением будет таким, это действия которые запрограммированы на определённую последовательность и записаны в среде программирования на языке Visual Basic for Applications (VBA). Запуск макроса может производиться многократно и это заставит Excel выполнять любую последовательность необходимых нам действий, которые вручную выполнять нам просто не нравится или не хочется. Несмотря на великое множество языков программирования для всего комплекса Microsoft Office стандартом является именно VBA и он работает в любом приложении офисного пакета.

Итак, создать макрос в Excel возможно 2 способами:

Создать макрос в Excel с помощью макрорекордера

Для начала проясним, что собой представляет макрорекордер и при чём тут макрос.

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

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

  • Записать макрорекордер может только то, что может пощупать, а значит записывать действия он может только в том случае, когда используются кнопки, иконки, команды меню и всё в этом духе, такие варианты как сортировка по цвету для него недоступна;
  • В случае, когда в период записи была допущена ошибка, она также запишется. Но можно кнопкой отмены последнего действия, стереть последнюю команду которую вы неправильно записали на VBA;
  • Запись в макрорекордере проводится только в границах окна MS Excel и в случае, когда вы закроете программу или включите другую, запись будет остановлена и перестанет выполняться.

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

Создать макрос в Excel в редакторе Visual Basic.

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

Запуск редактора программ на VBA происходит по-разному, в зависимости от версии вашей программы Excel:

Kak sozdat macros 4 Как создать макрос в Excel

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

Kak sozdat macros 5 Как создать макрос в Excel

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

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

Kak sozdat macros 9 Как создать макрос в Excel

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

  • Все макросы в обязательном порядке будут начинаться с оператора Sub, после которого следует имя вашего макроса и список аргументов в скобочках. В случаях, когда аргументы отсутствуют скобки нужно оставить пустыми;
  • В обязательном порядке все макросы заканчиваются оператором End Sub;
  • Данные что находятся между операторами Sub и End Sub, является телом макроса, которое будет работать при запуске макроса. В примере, макрос проверяет диапазон данных и при вводе данных находит их в списке базы данных и накладывает фильтр, выводя указанное по критериям значение.

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

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

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

Создание графической кнопки на листе Excel

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

Kak sozdat macros 12 Как создать макрос в Excel

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

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

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

P.S. Если вам очень интересно как работает макрос и где он применяется. С примерами вы сможете ознакомиться у меня на сайте в следующих статьях:

Не забудьте поблагодарить автора!

Не уметь переносить бедность постыдно; не уметь избавиться от неё трудом – ещё постыднее. Перикл

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

Record and use Macros in Excel
Record and use Macros in Excel
Record and use Macros in Excel

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

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

Что такое макросы в Excel и для чего они?

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

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

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

Плюсы от создания макросов включают:

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

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

Как сделать макрос в Excel (смотрим и учимся)

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


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

Как создать макрос в Excel

Следуйте инструкции ниже, чтобы создать макрос в Excel:

1. Откройте вкладку разработчика

Чтобы создать макрос, найдите вкладку Разработчик на ленте Excel и нажмите на неё. Если вы не видите меню Разработчик, вам нужно его включить в Файл > Параметры > Настроить ленту. Посмотрите отмечен ли флажок напротив Разработчик, если нет, то поставьте его:

Чтобы видеть вкладку Разработчик на ленте, нужно включить её в настройках.

Теперь, нажмите на вкладку Разработчик. Слева вы видите несколько кнопок, относящихся к макросам в Microsoft Excel, которые мы будем использовать в этом уроке. Посмотрите есть ли у вас кнопки Макросы, Запись макроса и Относительные ссылки:

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

2. Запишите ваш первый макрос

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

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

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

Я думаю, что эта настройка говорит Excel к чему применять макрос. Если вы это не включите, макрос будет очень специфично осуществлять преобразования. Например, если вы запишите макрос, когда эта опция выключена и измените ячейки A1, A2, и A3, то макрос всегда будет изменять только те ячейки.

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

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

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

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

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

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

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

Вот и всё! Мы готовы воспроизвести макрос и удалить строки в новом наборе данных.

3. Воспроизведение макроса в Excel

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

Важное примечание об использовании макросов Microsoft Excel: они начинают воспроизводиться с того места, куда вы навели курсор мыши. В макросе Delete Every Other Row (Удалить каждую ненужную строку) он начнёт удаление строк, с той, на которой мы находимся. Помните об этом, чтобы макрос запускался и влиял на набор данных, который вы подразумеваете.

Теперь нажмите на меню Макросы. Откроются параметры и список всех макросов, которые вы записали для использования с вашими данными:

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

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

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

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

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

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

Узнайте больше о Excel

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

Excel — это мощный инструмент, который имеет множество применений. Ознакомьтесь с уроками, приведёнными ниже, чтобы узнать больше вариантов работы с данными в Excel и приручить электронные таблицы:

Макрос – это специальная программа, написанная на встроенном в Excel языке программирования Visual Basic for Application (VBA). Если вам часто приходится выполнять одни и те же операции в Эксель, то гораздо проще записать макрос или найти готовый код макроса, для выполнения определенных действий в Интернете.

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

Как включить макросы в Excel

Работа с макросами в Excel





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

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

Вставим код макроса в модуль

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





Вставим код макроса в рабочий лист

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



Создадим пользовательскую функцию



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

Теперь рассмотрим, как выполняются все созданные ранее макросы в документе Excel.

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



Макрос выполнился: нужные ячейки объединены, и текст в них сохранен.


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



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


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

Если Вы создали пользовательскую функцию, то вставлять в документ ее также надо как функцию. У меня такая функция должна рассчитывать НДС.




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

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