Как написать макрос в excel на языке программирования vba

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

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

Когда все готово, приступаем к записи.

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

Открывается окно настройки записи макроса. Тут можно указать любое имя для него, если установленное по умолчанию вас не устраивает. Главное, чтобы имя это начиналось с буквы, а не с цифры, а также в названии не должно быть пробелов. Мы оставили название по умолчанию – «Макрос1».
Тут же при желании можно установить сочетание клавиш, при нажатии на которые макрос будет запускаться. Первой клавишей обязательно должна быть Ctrl, а вторую пользователь устанавливает самостоятельно. Мы в качестве примера установили клавишу М.
Далее следует определить, где будет храниться макрос. По умолчанию он расположен в этой же книге (файле), но при желании можно установить хранение в новой книге или в отдельной книге макросов. Мы оставим значение по умолчанию.
В самом нижнем поле можно оставить любое подходящее по контексту описание макроса, но это делать не обязательно. Когда все настройки выполнены, жмем на кнопку «OK».

После этого все ваши действия в данной книге (файле) Excel будут записываться в макрос до тех пор, пока вы сами не остановите запись.
Для примера запишем простейшее арифметическое действие: сложение содержимого трех ячеек (=C4+C5+C6).

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

Запуск макроса

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

  1. Кликаем в том же блоке инструментов «Код» по кнопке «Макросы» или жмем сочетание клавиш Alt + F8.

После этого открывается окно со списком записанных макросов. Ищем макрос, который мы записали, выделяем его и кликаем на кнопку «Выполнить».

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

Редактирование макроса

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

Курс «Excel + Google Таблицы с нуля до PRO» от Skillbox

Записаться на курс «Excel + Google Таблицы с нуля до PRO» от Skillbox

  • полная – 37 008 ₽
  • со скидкой – 25 896 ₽
  • рассрочка на 12 месяцев – 2 158 ₽/месяц

Содержание. Программа курса включает в себя следующие блоки:

  • Excel базовый;
  • Excel продвинутый;
  • Excel: макросы;
  • Google Таблицы базовый;
  • Google Таблицы;
  • Google Таблицы: скрипты;
  • дипломный проект.

Олег Самойленко – педагог по созданию баз данных.

Ренат Шагабутдинов – шеф-редактор в издательстве «МИФ». Сертифицированный тренер MS Office.

Евгений Намоконов – Соавтор книги «Google Таблицы. Это просто» и телеграм-канала «Google Таблицы».

После окончания курса вы сможете:

  • создавать сводные диаграммы, спарклайны, группировку и настройку вычислений;
  • работать с функциями проверки данных;
  • прогнозировать ситуации и различные показатели;
  • импортировать и экспортировать данные, работать с OLAP-кубами;
  • работать с диапазонами;
  • создавать макросов для VBA;
  • быстро фильтровать большие массивы данных.

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

Как сохранить макрос в личную книгу макросов

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

  1. Выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Запись макроса».
  2. В появившемся диалоговом окне «Запись макроса», из выпадающего списка «Сохранить в:» выберите опцию «Личная книга макросов». И нажмите на кнопку OK.
  3. Теперь выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Остановить запись».
  4. Откройте редактор Visual Basic: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11. В окне «Project-VBAProject», в дереве проектов появиться доступная еще одна книга Personal.xlsb. Кликните на «плюсик» слева на против этой книги, чтобы раскрыть проект книги Personal.xlsb. А после двойным щелчком отройте ее Module1.
  5. В результате откроется окно кода модуля с зарегистрированным макросом. Удалите его код и введите код своего макроса. Выберите инструмент в редакторе макросов: «File»-«Save Personal.xlsb», а потом закройте редактор Visual Basic.

Теперь у вас подключена скрытая книга для хранения макросов, к которым можно получить доступ из любой другой рабочей книги. Личная книга макросов где находится находиться в папке автозагрузки файлов Excel – XLSTART: C:Documents and SettingsUser_NameAppDataRoamingMicrosoftExcelXLSTARTPersonal.xlsb

Примечание. XLSTART – это папка для автозагрузки файлов вместе с запуском программы Excel. Если сохранить файл в данную папку, то он будет открываться вместе с программой Excel. Для версий старше 2007 путь к папке автозагрузки будет следующим: C:Program FilesMicrosoft OfficeOffice12Xlstart.

Если вам нужно записать в нее новый макрос просто откройте редактор, а потом откройте модуль книги Personal.xlsb. Уже записанные в нее макросы удалять не нужно. Они не будут между собой конфликтовать если соблюдать одно простое правило – в одном модуле нельзя хранить макросы с одинаковыми именами.

Если вы еще не знакомы с макросами в Excel, то я вам даже немного завидую. Ощущение всемогущества и осознание того, что ваш Microsoft Excel можно прокачивать почти до бесконечности, которые придут к вам после знакомства с макросами — приятные чувства.

Однако, эта статья для тех, кто уже «познал мощь» и начал использовать макросы (чужие или написанные самостоятельно — не важно) в своей повседневной работе.

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

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

А если макрос должен быть относительно универсален и нужен в любой книге Excel — как, например, макрос для конвертирования формул в значения? Не копировать же его код на Visual Basic каждый раз в каждую книгу? Кроме того, рано или поздно, почти любой пользователь приходит к мысли, что неплохо было бы сложить все макросы в одну коробку, т.е. иметь их всегда под рукой. И может быть даже запускать не вручную, а сочетаниями клавиш? И вот тут может здорово помочь Личная Книга Макросов (Personal Macro Workbook).

Как создать Личную Книгу Макросов

На самом деле, Личная Книга Макросов (ЛКМ) — это обычный файл Excel в формате двоичной книги (Personal.xlsb), который автоматически в скрытом режиме открывается одновременно с Microsoft Excel. Т.е. когда вы просто запускаете Excel или открываете любой файл с диска, на самом деле открываются два файла — ваш и Personal.xlsb, но второго мы не видим. Таким образом все макросы, которые хранятся в ЛКМ оказываются доступы для запуска в любой момент, пока открыт Excel.

Если вы еще ни разу не пользовались ЛКМ, то изначально файл Personal.xlsb не существует. Самый легкий способ его создать — это записать рекордером какой-нибудь ненужный бессмысленный макрос, но указать в качестве места для его хранения Личную Книгу — тогда Excel будет вынужден автоматически ее для вас создать. Для этого:

  1. Откройте вкладку Разработчик (Developer). Если вкладки Разработчик не видно, то ее можно включить в настройках через Файл — Параметры — Настройка ленты (Home — Options — Customize the Ribbon).
  2. На вкладке Разработчик нажмите кнопку Запись макроса (Record Macro). В открывшемся окне выберите Личную книгу макросов (Personal Macro Workbook) как место для хранения записанного кода и нажмите OK:

как сделать общий макрос excel для всей системы

Проверить результат можно, нажав на кнопку Visual Basic там же на вкладке Разработчик — в открывшемся окне редактора в левом верхнем углу на панели Project — VBA Project должен появиться наш файл PERSONAL.XLSB. Его ветку которого можно развернуть плюсиком слева, добравшись до Module1, где и хранится код только что записанного нами бессмысленного макроса:

как сделать общий макрос excel для всей системы

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

Как использовать Личную Книгу Макросов

Дальше все просто. Любой нужный вам макрос (т.е. кусок кода, начинающийся на Sub и заканчивающийся End Sub) можно смело копировать и вставлять либо в Module1, либо в отдельный модуль, добавив его предварительно через меню Insert — Module. Хранить все макросы в одном модуле или раскладывать по разным — исключительно вопрос вкуса. Выглядеть это должно примерно так:

как сделать общий макрос excel для всей системы

Запустить добавленный макрос можно в диалоговом окне, вызываемом с помощью кнопки Макросы (Macros) на вкладке Разработчик:

как сделать общий макрос excel для всей системы

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

Кроме обычных макросов-процедур в Личной Книге можно хранить и пользовательские макро-функции (UDF = User Defined Function). В отличие от процедур, код функций начинаются с оператора Function или Public Function, а заканчиваются на End Function:

как сделать общий макрос excel для всей системы

Код необходимо аналогичным образом скопировать в любой модуль книги PERSONAL.XLSB и затем можно будет вызвать функцию обычным образом, как любую стандарную функцию Excel, нажав кнопку fx в строке формул и выбрав функцию в окне Мастера Функций в категории Определенные пользователем (User Defined):

как сделать общий макрос excel для всей системы

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

Где хранится Личная Книга Макросов

Если вы будете использовать Личную Книгу Макросов, то рано или поздно у вас возникнет желание:

  • поделиться своими накопленными макросами с другими пользователями
  • скопировать и перенести Личную Книгу на другой компьютер
  • сделать ее резервную копию

Для этого нужно будет найти файл PERSONAL.XLSB на диске вашего компьютера. По умолчанию, этот файл хранится в специальной папке автозапуска Excel, которая называется XLSTART. Так что все, что нужно — это добраться до этой папки на нашем ПК. И вот тут возникает небольшая сложность, потому что местоположение этой папки зависит от версии Windows и Office и может различаться. Обычно это один из следующих вариантов:

  • C:Program FilesMicrosoft OfficeOffice12XLSTART
  • C:Documents and SettingsComputerApplication DataMicrosoftExcelXLSTART
  • C:Usersимя-вашей-учетной-записиAppDataRoamingMicrosoftExcelXLSTART

Как вариант, можно спросить о положении этой папки сам Excel с помощью VBA. Для этого в редакторе Visual Basic (кнопка Visual Basic на вкладке Разработчик) нужно открыть окно Immediate сочетанием клавиш Ctrl+G, ввести туда команду ? Application.StartupPath и нажать на Enter:

как сделать общий макрос excel для всей системы

Полученный путь можно скопировать и вставить в верхнюю строку окна Проводника в Windows и нажать Enter — и мы увидим папку с нашим файлом Личной Книги Макросов:

Общие синтаксические принципы языка VBA

  • Регистр не играет роли – вы можете прописать оператор как в верхнем, так и в нижнем регистре, или вообще в вперемешку, например, dim, DIM, Dim, разницы нет.
  • Комментарии – для комментирования строки, перед ней прописывается одинарная кавычка или ключевое слово REM.
  • Максимальная длина любого имени (будь то имя переменной, константы или процедуры) составляет 255 знаков.
  • В отличии от JavaScript, Jscript или С языков, в VBA в конце строки с операторами не нужно ставить запятой.
  • Двоеточие – чтобы не прописывать каждый оператор в отдельной строке, их можно с помощью двоеточия прописать в одну строку, например: MsgBox «Строка1» : MsgBox «Строка2»
  • Перенос операторов – если строка с операторами слишком длинная, то ее можно разделить на несколько при помощи символа подчеркивания и знака &, например:
    MsgBox «Это простая» _
    & «строка»

Для демонстрации работы с макросами напишем такой пример. Откройте документ Microsoft Word и запустите редактор Visual Basic. Вам нужно создать новую форму и новый модуль (макрос). Цель – решение квадратного уравнения с изменяемыми значениями.

На поверхность формы надо добавить три полосы прокрутки и две текстовые метки. В редакторе кода для формы пропишите:

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

Спасибо за внимание. Автор блога Владимир Баталий

VBA GoTo

VBA Goto Statement используется для преодоления предсказанных ошибок при добавлении и создании огромного кода строк в VBA. Эта функция в VBA позволяет нам использовать полный код в соответствии с нашими прогнозами или предположениями. С помощью Goto мы можем перейти к любому указанному коду строки или местоположения в VBA. Есть два способа сделать это, которые мы увидим в следующих примерах.

Как использовать Excel VBA Goto Statement?

Мы научимся использовать Excel VBA Goto Statement на нескольких примерах.

Вы можете скачать этот шаблон VBA GoTo Excel здесь — Шаблон VBA GoTo Excel

Пример № 1

Первый способ использования VBA Goto — метод Application.Goto . С помощью заявления Application.Goto мы можем в любое конкретное место, рабочую книгу или рабочий лист, который открыт в настоящее время. Это утверждение будет выглядеть так, как показано ниже.

  • (Ссылка): Это не что иное, как указанная ссылка на ячейку. Если ссылка не указана по умолчанию, вы перейдете к последнему диапазону используемых ячеек.
  • (Прокрутка): это логическое утверждение ИСТИНА или ЛОЖЬ. Если значение TRUE, оно будет прокручивать окно, если значение FALSE, оно не будет прокручиваться через окно.

Для этого перейдите в окно VBA и нажмите «Модуль», который находится в меню «Вставка», как показано ниже.

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

Код:

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

Код:

После этого дайте ссылку на любой лист или рабочую книгу и диапазон ячеек. Здесь мы дали диапазон Ячейки B3 и Рабочих листов под названием «VBA Goto».

Код:

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

Код:

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

Теперь мы изменим аргумент Scroll с FALSE на TRUE.

Код:

Сначала мы держим курсор в ячейке A5, как показано ниже. Теперь запустите полный код, используя клавишу F5 или вручную. Мы увидим, что курсор, который был в ячейке A5, теперь прокручивается вверх и перемещается в ячейку B3, и вся таблица переместилась на верхний уровень листа, начиная с той же ячейки, что и B3, как показано на снимке экрана ниже.

Пример № 2

Существует еще один способ использования аргумента VBA Goto. Используя Goto в VBA в этом примере, мы можем пропустить аргумент, который вызывает ошибку. Для этого вставьте новый модуль в VBA и запустите Subcategory с именем аргумента, как показано ниже. Вы можете использовать любое другое имя.

Читайте также:  Примеры формул СУММПРОИЗВ с несколькими условиями в Excel

Код:

Для этого мы рассмотрим 3 целых числа X, Y и Z, открыв подкатегорию в VBA, как показано ниже.

Код:

Теперь также рассмотрим некоторое математическое деление, где мы разделим 10, 20 и 30 на 0, 2 и 4, как показано ниже.

Код:

Если мы запустим код, мы получим то же сообщение об ошибке Run-time error 11.

Выше сообщение об ошибке Ошибка времени выполнения «11» появляется только тогда, когда написанное математическое выражение неверно. Теперь, чтобы отменить эту ошибку, мы будем использовать текст On Error GoTo со словом YResult, чтобы пропустить сообщение об ошибке и получить вывод, который работает нормально, как показано ниже.

Тем не менее, наш код не является полным. Использование Goto с оператором « YResult :» пропустит только строку ошибки кода. Но это снова покажет ошибку, поскольку Labe не определен, как показано ниже.

Код:

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

Код:

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

Код:

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

В случае ошибки GoTo оператор YResult помог нам напрямую перейти к целому числу упомянутой точки результата, как мы делали для целого числа Y. И вывод для X в виде 0 показывает, что был записан неверный аргумент оператора. Мы можем пометить метку еще до Z, но это даст нам результат только Z целого числа. Для X и Y он снова покажет 0 в качестве вывода.

Плюсы VBA при ошибке

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

То, что нужно запомнить

  • Запомните файл в файле Macro-Enabled Excel, чтобы мы могли использовать созданный код VBA много раз.
  • Скомпилируйте написанный код перед выполнением с любым требованием Excel.
  • Вы можете назначить написанный код любой кнопке, чтобы мы могли быстро нажать на кнопку и запустить код.
  • Используйте метку, как показано в примере 2, чтобы мы получили результат для полного правильного кода.

Рекомендуемые статьи

Это было руководство к Заявлению VBA GoTo. Здесь мы обсудили, как использовать Excel VBA GoTo Statement вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

Передача массивов в подпрограммы

Массивы удобнее всего передавать в подпрограммы в виде параметра типа Variant .

Обратите внимание, что функции GetResult в качестве параметра передаются массивы. При чём, в первом случае это массив с типом элементов Long , а во втором — String . За счёт того, что внутри функции используются переменные типа Variant , то сначала функция нам возвращает сумму элементов массива arrIntegers , а во втором результат сложения (конкатенации) строк массива arrStrings . Кроме того, параметр parArray не описан как массив ( parArray As Variant ), но мы внутри функции GetResult ведём себя с ним, как с массивом ( For Each Element In parArray )! Это возможно, так как переменные типа Variant умеют определять, что им присваивается и вести себя далее в соответствии с тем, что они содержат. Если переменной parArray присвоили массив (через вызов функции — строки 17 и 18), то она себя будет вести как массив.

Объекты (Objects)

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

Главный объект это Application, что соответствует самой программе Excel. Далее следует Workbooks (книга), Worksheets (лист), Range (диапазон, или отдельная ячейка). Например, чтобы обратиться к ячейке «A1» на листе нам нужно будет прописать следующий путь с учетом иерархии:

Application.Workbooks(«Архив»).Worksheets(«Аркуш1»).Range(«A1»).

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

Примеры макросов в Excel. Диалоговое VBA сообщение msgBox

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

Пример 1. Простое диалоговое сообщение msgBox в VBA

Не будем отступать от традиций начала всех примеров программирования. Напишем макрос, который при запуске выдаст нам окно сообщения с надписью «Hello World». Заодно рассмотрим работу с пользовательскими диалогами.

Теперь писать макросы будем только в ручном режиме, никаких рекордеров!

Итак, для того чтоб создать макрос, Вам необходимо открыть окно всеми любимого редактора Visual Basic (VB). Для этого выполняем следующие действия: Сервис-Макрос-Редактор Visual Basic (Alt+F11).

меню открытия редактора Visual Basic

Откроется окно редактора MS Visual Basic.

окно редактора Visual Basic

Если у Вас отсутствуют левые окна, то их необходимо включить. Для этого нажмите F4 – Открывает окно свойств Properties Window, и сочетание клавиш Ctrl+R – открывает окно Project Explorer. Без этих окон в дальнейшем затруднительно работать. Все! Сделали.

Что мы видим в окне Project? В данном окне отражается как раз таки структура нашей книги. Объекты книги – Лист1, 2, 3, Эта книга. Более подробно изучим данные объекты в последующих статьях, а пока возвращаюсь к примеру.

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

Создаем модуль: Insert – Module

создание модуля в VBA

Перед нами открылось пустое окно модуля, напоминает блокнот. Такое окно мы уже видели, когда записывали первый макрос в прошлой статье. По правилам «хорошего тона» дадим имя нашему модулю, назовем его «MacroBook». Для этого перейдите в окно свойств и введите имя в поле (Name)

ввод имени модуля VBA

Переходим в окно редактирования кода и пишем следующее:

макрос сообщение

Готово! Открываем окно рабочей книги Excel, жмем Alt+F8 и видим наш макрос «Hello»

окно выбора макросов Excel

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

сообщение Hello World в Excel

Пример 2. Расширенное диалоговое сообщение msgBox в VBA

Рассмотрим еще один вид диалоговых сообщений, которые содержат дополнительные кнопки «Да», «Нет», «Отмена»

Переходим к коду нашего макроса «Hello» и дописываем к команде msgbox следующее:

MsgBox «Hello, World!», vbYesNoCancel, «Мой макрос»

Обратите внимание, когда вы поставите запятую после «Hello, World!», у Вас должен появиться список всех доступных типов диалоговых окон

список типов сообщений msgbox

Поэкспериментируйте с каждым для понимания.

Как Вы заметили, я добавил еще один параметр к команде msgBox – “Мой макрос”. Это подпись нашего окна. Этот параметр не обязателен, но я рекомендую все диалоги подписывать наименованием своей разработки или иной информацией.

Запустим наш макрос

Теперь у нас открылась совсем иная форма сообщения.

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

Видео: Пример работы msgbox в vba

Excel works!

menu

Что такое макрос? Макрос — это сохраненная последовательность действий или программа, созданная на языке VBA (Visual Basic for Application). Частый вопрос «Как написать макрос в Excel?». -Просто.

Т.е. если нам необходимо выполнять одни и те же действия несколько раз, мы можем запомнить эти действия и запускать их одной кнопкой. Я не буду заставлять вас учить язык VBA и даже не буду предлагать много стандартных макросов в этой статье. В действительности создать/написать макрос в Excel сможет действительно каждый. Для этого существует самая интересная и необычная возможность Excel — Макрорекордер (запись ваших действий в виде кода). Т.е. вы можете записать свои действия, как на видео, и перевести их в код (последовательность).

Короче, если вы каждый день выполняете одни и те же действия, стоит разобраться, как автоматизировать этот процесс. Читайте далее, как написать макрос в Excel?

написать макрос в Excel

Что нужно сделать сначала, чтобы все работало корректно?

1.Разрешить использование макросов

Меню (круглая кнопка вверху слева) — Параметры Excel — Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов. Поставьте флажок «Включить все макросы».

Или сделать тоже самое на вкладке Разработчик

2. Включить меню Разработчик для быстрой работы с макросами

Меню (круглая кнопка вверху слева) — Параметры Excel — Основные — Показывать вкладку Разработчик.

razrabotchik

3. Сохранить макрос в нужном формате

Чтобы созданный макрос сохранился в книге, необходимо сохранить файл в специальном формате .xlsm или .xlsb. Нажмите Сохранить как — Книга Excel с поддержкой макросов или Двоичная книга.

makrosyi

Итак, как написать макрос в Excel?

Все просто. Заходим в Excel. Внизу страницы, под ярлычками листов есть кнопка «Запись макроса».

написать макрос в Excel

Нажимаем кнопку, открывается окно «Запись макроса». Называем макрос как нам нравится в поле Имя макроса:. Задаем сочетание клавиш, которыми потом будем вызывать его (не обязательно).

написать макрос в Excel

Жмем ОК. Начались запись Макрорекордера.

Все. Теперь делаем те действия, которые нам нужно запомнить макросом. К примеру, нам нужно удалить одну строку и раскрасить ячейку А1 желтым цветом.

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

Запись макроса 5

Как запустить то, что получилось? Нажмите кнопку alt + f8, появится окно Выбор макроса, выбирите нужный макрос, а затем щелкните кнопку выполнить.

Как посмотреть что получилось? Нажмите кнопку alt + f8 . Выберите нужный макрос и нажмите изменить. Откроется окно записи макросов (окно VBA)

Код макроса должен получиться примерно следующим.

‘ — символ комментария, т.е. эта строка не участвует в коде. Для макроса обязательно наличие имени (Sub Пример1()) и окончания (End Sub).

Как создать кнопку для макроса можно прочитать здесь .

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

VBA – язык, на котором говорят макросы в Excel

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

Как и любой человек, Excel имеет свой собственный язык. Вот скажем, мы разговариваем на русском, а Excel разговаривает на языке VBA. Чтобы писать макросы, вам просто нужно изучить это язык. Не пугайтесь, VBA очень схож с английским. Давайте рассмотрим несколько примеров команд (предложений) этого языка.

  • (1 команда) Workbook(“Бюджет.xls”).Save
  • (2 команда) Worksheets(“Лист1”).Name = “Отчет”
  • (3 команда) Range(“A1”).Font.Size = 20

Итак, 1 команда говорит: книга Excel Workbook под именем “Бюджет.xls” сохраняется с помощью команды .Save. Видите, все совсем несложно.

Давайте разберем 2 команду: лист Excel Worksheets под именем “Лист1” хочет присвоить новое имя .Name = “Отчет”.

Ну, и 3 команда говорит, что ячейка под названием «А1» Range(“A1”) хочет изменить размер шрифта .Font.Size до 20 пунктов.

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

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

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

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

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

Вверху на ленте появится новая вкладка «Разработчик» . На ней и будут находиться все необходимые команды для работы с макросами.

Теперь разрешим использование всех макросов. Снова открываем «Файл» — «Параметры» . Переходим на вкладку «Центр управления безопасностью» , и в правой части окна кликаем по кнопочке «Параметры центра управления безопасностью» .

Кликаем по вкладке «Параметры макросов» , выделяем маркером пункт «Включить все макросы» и жмем «ОК» . Теперь перезапустите Excel: закройте программу и запустите ее снова.

Вариант 2: Написание кода макроса с нуля

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

    Чтобы приступить к этому, нужно нажать на кнопку «Visual Basic», которая расположена в самом начале ленты разработчика.

Переход к ручному созданию макроса в Microsoft Excel

Окно редактора VBE в Microsoft Excel

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

ЗакрытьМы рады, что смогли помочь Вам в решении проблемы.

Помимо этой статьи, на сайте еще 12049 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

ЗакрытьОпишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Макрос Excel: пример 1

Первоначально эта процедура Sub была приведена, как пример использования комментариев в коде VBA. Однако, здесь также можно увидеть, как объявляются переменные, как работают ссылки на ячейки Excel, использование цикла For , условного оператора If и вывод на экран окна сообщения.

«Процедура Sub выполняет поиск ячейки, содержащей заданную строку «в диапазоне ячеек A1:A100 активного листа Sub Find_String(sFindText As String) Dim i As Integer «Целое число типа Integer, используется в цикле For Dim iRowNumber As Integer «Целое число типа Integer для хранения результата iRowNumber = 0 «Просматривает одну за другой ячейки A1:A100 до тех пор, пока не будет найдена строка sFindText For i = 1 To 100 If Cells(i, 1).Value = sFindText Then «Если совпадение с заданной строкой найдено «сохраняем номер текущей строки и выходим из цикла For iRowNumber = i Exit For End If Next i «Сообщаем пользователю во всплывающем окне найдена ли искомая строка «Если заданная строка найдена, указываем в какой ячейке найдено совпадение If iRowNumber = 0 Then MsgBox «Строка » & sFindText & » не найдена» Else MsgBox «Строка » & sFindText & » найдена в ячейке A» & iRowNumber End If End Sub

Часть 1. Макросы и язык программирования vba. Среда редактора visual basic

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

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

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

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

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

С помощью макросов можно создавать пользовательские меню, диалоговые окна и панели инструментов, которые могут до неузнаваемости изменить интерфейс всем известных продуктов Word, Excel, Access, PowerPoint. Уместно здесь отметить также и возможность создания разнообразной системы проверки данных, вводимых пользователем в диалоговых окнах. Когда вы научитесь писать программы на языке VBA, вы, скорее всего, уже никогда не станете начинать создание макроса с использования рекордера.

Лабораторная работа № 1. Запись новых макросов в Excel. Выполнение

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

Материалы к занятию: MS Excel 2003.

Задание 1. Создайте макрос в Excel, который форматирует текст в текущей ячейке шрифтом Arial, полужирным, 12 размером.

1. Задайте стартовые условия.

^Запустите Excel 2003 (Пуск/Все программы / Microsoft Office / Microsoft Office Excel 2003), если он еще не запущен;

откройте какую-либо рабочую книгу;

выберите какой-либо рабочий лист;

выделите любую ячейку в рабочем листе.

2. Выберете место и имя хранения макроса.

Выберете в меню Сервис/Макрос/Начать запись… (Tools/Macro/Record New Macro…);

* в раскрывшимся диалоговом окне Запись макроса (Record Macro ) (рис. 1), в текстовом окне Имя макроса (Macro Name ) введите FormatArialBold 12 в качестве имени макроса;

ь оставьте без изменений текст, который Excel вставила в поле Описание (Description ), но добавьте следующее: Форматирует текст диапазона: Arial , Bold , 12 ; этот дополнительный комментарий поможет вам (и другим) определить назначение данного макроса;

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

собираетесь записывать, можете назначить для его запуска горячую клавишу; если — да, введите горячую клавишу в текстовое окно Сочетание клавиш (Shortcut Key ) окна Запись макроса;

* щелкните на кнопке ОК для начала записи макроса; как только вы щелкните на кнопке ОК в диалоговом окне Запись макроса, Excel запустит

макрорекордер, отобразит панель ^ Остановить запись (Stop Recorder ) и начнет запись ваших действий. Макрорекордер сохранит каждое ваше действие в новом макросе.

Замечание 1. Доступными вариантами при сохранении макросов являются Личная книга макросов (Personal Macro Workbook ), Новая книга (New Workbook ) и Эта книга (This Workbook ). Когда вы выбираете в качестве места для хранения макроса Личная книга макросов, Excel сохраняет макрос в файле специальной книги с именем Personal.xls в папке, в которую установлена Excel. Excel автоматически открывает эту книгу каждый раз в начале работы. Поскольку вам всегда доступны макросы из всех открытых книг, макрос, сохраненный в книге Personal.xls, также будет доступен вам всегда. Если книга Personal.xls не существует, Excel создаст ее. Выбор Эта книга приведет к тому, что Excel сохранит новый макрос в текущей активной рабочей книге. Выбор Новая книга приведет к созданию в Excel новой рабочей книги, в которой будет сохранен этот макрос, — рабочая книга, которая была активной при запуске вами макрорекордера, остается активной рабочей книгой; любые действия, которые вы записываете, выполняются в этой книге, а не в новой рабочей книге, созданной для сохранения макроса.

Замечание 2. Не всегда при запуске макрорекордера вы можете увидеть на экране панель Остановить запись. Поскольку это — обычная панель, ее можно отображать или не отображать. Этим, как и другими панелями, управляет команда Панели инструментов (Toolbars ) меню Вид (View ). В любом случае (при наличии на экране панели Остановить запись или ее отсутствии) вы можете остановить макрорекордер, выбрав Сервис/Макрос/Остановить запись.

3. Запишите действия и остановите макрорекордер.

выберите команду Формат/Ячейки… (Format / Cells …) для отображения диалогового окна Формат ячеек (Format Cells );

щелкните на ярлычке Шрифт (Font ) для отображения опций шрифта (рис. 2);

выберите Arial в списке Шрифт (Font ); выполните этот шаг, даже если шрифт Arial уже выбран;

выберите Полужирный (Bold ) в списке Начертание (Font Style );

щелкните на кнопке ОК, чтобы закрыть диалоговое окно Формат ячеек и изменить выделенную ячейку в рабочем листе;

щелкните на кнопке Остановить запись (Stop Macro ) на панели Остановить запись (Stop Recorder ) или выберите команду Сервис/Макрос/Остановить запись (Tools / Macro / Stop Recording ).

Замечание 3. По умолчанию панель l ? f Остановить запись в Excel содержит две командные кнопки. Левая кнопка — это кнопка Остановить запись (Stop ); щелкните на этой кнопке для остановки макрорекордера. Правая кнопка -это кнопка Относительная ссылка (Relative Reference ). По умолчанию Excel записывает абсолютные ссылки на ячейки в ваши макросы. Кнопка Относительная ссылка является кнопкой-переключателем (toggle). Когда запись с относительными ссылками отключена, кнопка Относительная ссылка выглядит плоской; при помещении курсора мыши на кнопку вид кнопки изменяется и она выглядит отжатой. Когда запись с относительной ссылкой включена, кнопка Относительная ссылка на панели Остановить запись нажата (находится в «утопленном» положении). Щелкая на кнопке Относительная ссылка, можно включать и выключать запись с относительными ссылками во время записи по вашему желанию.

Задание 2. Выполните макрос FormatArialBoIdl 2.

^выберите ячейку в рабочем листе (предпочтительнее ячейку, содержащую некоторый текст, чтобы вы могли видеть изменения);

^выберите команду Сервис/Макрос/Макросы… для отображения диалогового окна Макрос;

Выберите макрос PERSONAL . XLS ! FormatA ri aIBoIdl 2 в списке Имя макроса и щелкните на кнопке Выполнить для запуска макроса FormatArialBoldl2. Текст в любой ячейке, которая была выделена до запуска вами этого макроса, будет теперь иметь формат полужирного шрифта Arial 12-го размера.

Создайте макрос в Excel, который вычисляет сумму ячеек A1, A2 и выводит результат в ячейку A3 шрифтом Times New Roman, курсивом, 12 размером.

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

Создайте макрос в Excel, который выводит красными буквами в ячейку A3 слово Частное: ”, справа от нее выводит частное ячеек A1 и A2 шрифтом

Times New Roman, курсивом, 12 размера.

Макросы Visual Basic for Applications сохраняются как часть файлов, в которых Excel (а также Word и Access) обычно содержит свои данные, – макросы сохраняются в файлах рабочих книг в Excel. Макросы сохраняются в специальной части файла данных, называемой Modules (модули ). Модуль VBA содержит исходный код (source code ) макроса – текстовое представление инструкций. Каждый файл рабочей книги Excel может не содержать модулей или содержать один или несколько модулей. Модули, сохраняемые в одной рабочей книге Excel, имеют общее название Project (проект ).

При записи макроса в Excel вы можете определять только рабочую книгу, в которой Excel сохраняет записанный макрос, – текущую рабочую книгу, новую рабочую книгу или рабочую книгу Personal.xls. Excel выбирает модуль, в котором сохраняется записанный макрос, и при необходимости создает этот модуль. Когда Excel создает модуль, в котором сохраняется записанный макрос, модулю присваивается имя ModuleN , где N – это количество модулей, созданных для определенной рабочей книги во время текущего сеанса работы. Например, в первый раз, когда вы сохраняете записанный макрос в Personal.xls (личной книге макросов), Excel создает модуль с именем Module 1 . Если вы продолжаете записывать макросы в том же сеансе работы и сохранять их в Personal.xls, Excel продолжает сохранять записанные макросы в том же модуле Module 1 до тех пор, пока вы не выберете другую рабочую книгу. Если позже в том же сеансе работы вы опять захотите сохранить записанные макросы в Personal.xls, Excel добавляет другой модуль с именем Module 2 в эту книгу.

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

Для просмотра модулей, сохраненных в определенной рабочей книге (и исходного кода макроса, который они содержат), вам необходимо использовать компонент Visual Basic Editor (Редактор Visual Basic). Этот компонент предоставляет инструментальные средства, которые используются для создания новых модулей, просмотра содержимого существующих модулей, создания и редактирования исходного кода макроса, создания пользовательских диалоговых окон и выполнения других задач, относящихся к написанию и обслуживанию программ на VBA. Редактор Visual Basic (Редактор VB) содержит одни и те же возможности в Excel, Word и Access.

Задание 3. Запустите Редактор VB.

ь выберите Сервис/Макрос/Редактор Visual Basic (Tools / Macro / Visual Basic Editor ) или нажмите сочетание клавиш Alt + F 11 ;

ь выберите в меню View / Code или нажмите клавишу F 7 .

Excel запустит Редактор VB (рис. 3).

Окна Редактора VB

В окне Редактора VB имеются три дочерних окна, каждое из которых отображает важную информацию о VBA-проекте. Project (Проект) — это группа модулей и других объектов, сохраняемых в определенной рабочей книге или шаблоне рабочей книги. Каждое из окон Редактора VB отображается по умолчанию в прикрепленных (docked) положениях (рис. 3).

Если необходимо, вы можете переместить любое из дочерних окон Редактора VB в любое место на экране, перетаскивая строку заголовка (title bar ) этого окна таким же образом, каким бы вы перемещали любое окно на рабочем столе Windows. Перетаскивание одного из дочерних окон из его прикрепленного положения приводит к тому, что оно становится плавающим окном. Плавающие (floating ) окна всегда остаются видимыми поверх других окон. Вы можете также изменять размер любого из дочерних окон Редактора VB, расширяя или уменьшая рамку окна для увеличения или уменьшения его размера, что подобно изменению размера любого окна на рабочем столе Windows.

Project Explorer (Окно проекта) содержит дерево-диаграмму открытых в данный момент файлов (рабочих книг) и объектов, содержащихся в этих файлах (объекты host-приложения, модули, ссылки, формы и так далее). Project Explorer можно использовать для перехода к различным модулям и другим объектам в проекте VB при помощи кнопок (панели инструментов этого окна) = View Code (Программа), ^ View Object (Объект) и Ш. Toggle Folders (Папки).

Properties Window (Окно свойств) содержит все свойства объекта текущего выбора. Вкладка Alphabetic (по алфавиту) этого окна предоставляет список

свойств выделенного объекта, составленный из имен свойств в алфавитном порядке. Вкладка Categorized (по категориям) отображает свойства объекта, отсортированные по категориям.

Code Window — это окно, в котором вы можете просматривать, редактировать или создавать исходный код VBA. В режиме F Full Module View весь исходный код макроса в модуле отображается сразу в прокручивающемся текстовом окне, а макрос отделяется от другого макроса серой линией. Редактор VB позволяет также просматривать содержимое модуля в режиме 1= Procedure View (представление процедуры). Чтобы выбрать режим просмотра, щелкайте кнопки в нижнем левом углу Code Window (рис. 3).

Когда Code Window находится в режиме Procedure View, видимым является исходный код только одного макроса. Используйте раскрывающийся список Procedure (процедура) для просмотра другого макроса. В режиме Full Module View вы можете также использовать раскрывающийся список Procedure для быстрого перехода к отдельному макросу.

Используйте список Object List (объект) для выбора объекта, процедуры которого хотите просмотреть или редактировать. В случае стандартных модулей, таких как модули, в которых сохраняются записанные вами макросы, единственным выбором в списке Object List является General (общая область).

Меню Редактора VB

В Редакторе VB меню File (Файл) предоставляет команды, необходимые для сохранения изменений в проекте VBA и вывода на экран исходного кода вашего макроса VBA. В табл. 1 приведены команды меню File, их горячие клавиши и назначение каждой команды.

Таблица 1 — Команды меню File

Горячая клавиша

Сохраняет текущий проект (презентацию, рисунок и т.д. в зависимости от приложения, в котором открыт Редактор VB) VBA на диске, включая все модули и формы.

I mport File… (импорт файла)

Добавляет существующий модуль, форму или класс в текущий проект (презентацию). Вы можете импортировать только модули, формы или классы, сохраненные ранее командой Export File из другого проекта (презентации).

E xport File… (экспорт файла)

Сохраняет текущий модуль, форму или класс в формате текстового файла для импортирования в другой проект или в целях архивирования.

R emove … (удалить )

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

Меню Edit (Правка) содержит команды, относящиеся к управлению исходным кодом макроса в Code Window и объектами в формах. В табл. 2 приведены имеющиеся команды меню Edit, их горячие клавиши и описывается действие, выполняемое каждой командой.

Таблица 2 – Команды меню Edit

Горячая клавиша

Отменяет самую последнюю команду. Не все команды могут быть отменены. Меню доступно только в случае, если есть, что отменять.

Возвращает самую последнюю команду, которую вы отменили.

Вырезает выделенный текст или объект и помещает его в Windows Clipboard. Выделенный текст или объект удаляется из модуля или формы.

С ору (копировать)

Копирует выделенный текст или объект и помещает его в Windows Clipboard. Выделенный текст или объект остается неизменным.

P aste (вставить)

Вставляет текст или объект из Windows Clipboard в текущий модуль или форму.

Cl ear (очистить)

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

Select A ll (выделить все)

Выделяет весь текст в модуле или все объекты в форме.

Подобно команде Find в Word или Excel, позволяет находить указанный текст в модуле.

Повторяет последнюю операцию Find.

Re place… (заменить)

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

Смещает весь выделенный текст вправо на интервал табуляции.

Горячая клавиша

Shift+Tab Смещает весь выделенный текст влево на интервал табуляции.

List Properties/ M ethods (список свойств/методов)

Открывает список в List Properties/Methods, отображая свойства и методы объекта, имя которого вы только что ввели. Когда курсор вставки находится на пустом месте в List Properties/Methods эта команда открывает список глобально доступных свойств и методов.

Lis t Constants (список констант)

Открывает список в Code Window, отображающий допустимые константы для свойства, которое вы только что ввели с предшествующим знаком “=”.

Q uick Info (сведения)

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

Param eter Info (параметры)

Открывает всплывающее окно подсказки, отображающее параметры (называемые также аргументами) процедуры, функции или оператора, который вы только что ввели в Code Window.

Complete W ord (завершить слово)

Ctrl+Space Редактор VB заканчивает слово, которое вы вводите, как только вы введете достаточно символов для того, чтобы VBA распознал ключевое слово.

B ookmarks (закладки)

Открывает подменю с пунктами для помещения, удаления или перехода к закладкам, которые вы ранее поместили в ваш модуль. В отличие от закладок в Word, закладки Редактора VB не имеют имен.

Меню View (Вид) содержит команды, позволяющие выбирать элементы Редактора VB для просмотра и способ просмотра. В табл. 3 приведены команды меню View, их горячие клавиши и действие, производимое каждой командой.

Таблица 3 – Команды меню View

Горячая клавиша

D efinition (описание)

Shift+F2 Отображает исходный код VBA для процедуры или функции, на которую указывает курсор; отображает Object Browser для объектов в справке VBA.

Last Position (вернуться к последней позиции)

Ctrl+ Переходит в последнюю позицию в модуле после Shift+F2 использования команды меню Definition или после редактирования кода.

O bject Browser

Открывает Object Browser, позволяющий определять, какие макросы доступны в данный момент.

I mmediate Window (окно отладки)

Отображает окно отладчика Immediate Window VBA.

Locals Window (окно локальных переменных)

Отображает окно отладчика Locals Window.

Watch Window (окно

Отображает окно отладчика Watch Window (контрольные значения).

Call Stack … (стек вызова)

Отображает список последовательности вызовов для текущей функции или процедуры VBA.

P roject Explorer (окно проекта)

Отображает Project Explorer.

Properties W indow (окно свойств)

Отображает Properties Window.

Toolbox (панель элементов)

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

Ta b Order (последовательно сть перехода)

Отображает диалоговое окно Tab Order, которое используется при создании пользовательских диалоговых окон.

T oolbars (панели инструментов)

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

Возвращает вас в Microsoft Excel, из которого был запущен Редактор VB, но оставляет Редактор VB открытым.

Команды меню Insert (Вставка) позволяют добавлять различные объекты,

такие как модули и формы, в ваш проект. В меню Insert никакие команды не имеют «горячих клавиш». В табл. 4 приведены действия, выполняемые каждой командой этого меню.

Таблица 4 – Команды меню Insert

Команда Действие

P rocedure… (процедура) UseForm

Вставляет новую процедуру (Sub, Function или Property) в текущий модуль. Процедура – это еще одно название макроса. Добавляет новую форму (используется для создания

пользовательских диалоговых окон) в проект. M odule (модуль) Добавляет новый модуль в проект. Редактор VB дает этому модулю имя в соответствии с правилами, описанными ранее.

(модуль класса) Fil e… (файл)

Добавляет в проект class module (модуль класса ). Модули класса используются для создания пользовательских объектов в вашем проекте.

Позволяет вставлять текстовый файл, содержащий исходный код VBA , в модуль.

Команды меню Format (Формат) используются при создании пользовательских диалоговых окон и других форм. Команды меню Format позволяют выравнивать объекты в форме по отношению друг к другу, настраивать размер элемента управления в соответствии с его содержимым и выполнять многие другие полезные задачи. Команды меню Format представлены здесь для полноты изложения материала, хотя вы не будете их применять до тех пор, пока не начнете создавать собственные пользовательские диалоговые окна. В табл. 5 приведены команды меню Format и их действия. Заметьте, что эти команды не имеют «горячих клавиш».

Таблица 5 – Команды меню Format

Команда Действие

A lign (выровнять)

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

выбранные объекты в форме по отношению друг к другу.

Здесь можно выравнивать объекты по верхней/нижней,

правой/левой границам, по центру или середине создаваемого

M ake Same Size

размер по сетке)

Открывает подменю команд, позволяющих изменять размер

выделенных объектов до размера указанного объекта.

Одновременно изменяет ширину и высоту объекта до соответствия размеру его содержимого.

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

Команда Действие

H orizontal Spacing (интервал по горизонтали)

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

V ertical Spacing (интервал по вертикали)

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

C enter in Form (разместить по центру в форме)

Открывает подменю команд, позволяющих изменять положение выбранных объектов, чтобы они были центрированы в форме горизонтально или вертикально.

Ar range Buttons

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

G roup (группировать)

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

U ngroup (разделить)

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

Открывает подменю команд, позволяющих изменять упорядочение сверху вниз (называемое z-order) перекрывающихся объектов в форме. Используйте команду Order, чтобы обеспечить, например, появление текстового окна всегда поверх графического объекта в форме.

Команды меню Debug (Отладка) используются при выполнении тестирования или отладки макросов. Debugging – так называется процесс нахождения и исправления ошибок в программе. В табл. 6 приведены команды меню Debug, их «горячие клавиши» и выполняемые действия.

Таблица 6 – Команды меню Debug

Горячая клавиша

Компилирует проект, выбранный в данный момент в Project Explorer.

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

Step O ver (шаг с обходом)

Подобно команде Step Into команда Step Over позволяет выполнять все инструкции в макросе без паузы на каждой отдельной инструкции.

Горячая клавиша

Ctrl+ Выполняет все остающиеся операторы в макросе Shift+F8 без паузы на каждом отдельном операторе.

R un to Cursor (выполнить до текущей позиции)

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

A dd Watch… (добавить контрольное значение)

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

E dit Watch… (изменить контрольное значение)

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

Shift+F9 Отображает текущее значение выбранного выражения.

T oggle Breakpoint (точка останова)

Отмечает место (или отменяет отметку) в исходном коде VBA, где вы хотите остановить выполнение макроса.

Breakpoints (снять все точки останова)

Удаляет все точки останова в модуле.

Set N ext Statement (задать следующую инструкцию)

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

Приводит к подсветке Редактором VB следующей строки кода, которая будет выполняться.

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

Команды меню Run (Запуск) позволяют начать выполнение макроса, прерывать или возобновлять его выполнение или возвращать прерванный макрос в состояние до выполнения (табл. 7).

Таблица 7 – Команды меню Run

Горячая клавиша

Run Sub/User Form (запуск подпрограммы/ User Form)

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

Прерывает выполнение вашего кода VBA и приводит к тому, что Редактор VB переходит в режим прерывания (Break mode). Break mode используется при отладке кода VBA.

Устанавливает все переменные модульного уровня и Call Stack (список последовательности вызовов) в исходное состояние.

Design Mode (конструктор)

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

Команды меню Tools (Сервис) не только позволяют выбрать макрос для выполнения, но и получить доступ к внешним библиотекам макросов и дополнительным элементам управления форм (кроме встроенных в VBA). Команды меню Tools обеспечивают также доступ к диалоговому окну Options (параметры) Редактора VB и свойствам проекта VBA текущего выбора в Project Explorer. В табл. 8 приведены команды меню Tools и их действия. Команды меню Tools не имеют «горячих клавиш».

Таблица 8 – Команды меню Tools

Команда Действие

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

A dditional Controls… (дополнительные элементы)

Отображает диалоговое окно Additional Controls, позволяющее настраивать Toolbox (панель элементов) так, чтобы вы могли добавлять элементы управления в формы помимо встроенных в VBA. Диалоговое окно Additional Controls предназначено для добавления к панели элементов кнопок, которые позволяют добавлять к форме объекты, такие как рабочий лист Excel или документ Word.

M acros… (макросы)

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

Команда Действие

O ptions… (параметры)

Отображает диалоговое окно Options, позволяющее выбирать различные опции для Редактора VB, такие как число пробелов в интервале табуляции (tab stop), когда VBA проверяет синтаксис ваших операторов, и так далее.

Prope rties… (свойства проекта)

Отображает диалоговое окно Project Properties, позволяющее устанавливать различные свойства вашего проекта VBA, такие как имя проекта, описание и файл контекстной справки. Это диалоговое окно позволяет также защищать проект, чтобы никто не мог его редактировать без указания пароля.

D igital Signature… (цифровая подпись)

Отображает диалоговое окно Digital Signature, в котором можно задать для проекта сертификат цифровой подписи.

В меню Add lns находится всего одна команда, Add In Manager , которая приводит к отображению диалогового окна Add In Manager . Это окно позволяет регистрировать, загружать или выгружать и определять поведение дополнений.

В Редакторе VB имеются два дополнительных меню: Window (окно) и Help (помощь). Оба этих меню содержат команды, идентичные меню Window и Help, имеющимся в других приложениях Microsoft Windows. Команды в меню Window позволяют выбирать активное окно, разбивать текущее окно, размещать дочерние окна вертикально и горизонтально, организовывать дочерние окна VB в виде каскада или выравнивать значки минимизированных дочерних окон. Команды меню Help также идентичны командам меню Help в Word, Excel и других приложениях Microsoft Windows. Меню Help Редактора VB позволяет получать контекстно-зависимую подсказку посредством справочной системы Microsoft Office и просматривать файлы справочной системы VBA для host-приложения, из которого вы запустили Редактор VB. Если у вас имеется модем или доступ к Internet, вы можете использовать Help / MSDN on the Web для соединения с разнообразными страницами Web, содержащими информацию о продуктах Microsoft и VBA. Последняя команда в меню Help – это команда About Microsoft Visual Basic . Она отображает диалоговое окно, содержащее сведения об авторских правах на Microsoft Visual Basic. Диалоговое окно About Microsoft Visual Basic содержит также командную кнопку System Info , которая отображает информацию о вашей вычислительной системе: какие драйверы видеосистемы, звуковой системы и принтера установлены, какие программы загружены в память в данное время, какие программы зарегистрированы в системном реестре (Windows System Registry) и другую техническую информацию.

Панелями инструментов Редактора VB

По умолчанию Редактор VB отображает только панель инструментов Standard (рис. 4). В конце панели, справа, находится кнопка (со стрелкой) More Buttons . Если вы хотите удалить с панели или добавить некоторые кнопки на панель Standard, нажмите на эту кнопку, а затем укажите соответствующую кнопку в появляющемся меню.

Запуск программы Помощник по Office

Окно проекта Сброс

Вырезать Отменить Вставить

\ h

Дополнительные кнопки элементов

LnS , ColZ

Кроме панели Standard Редактор VB предлагает еще три панели: Edit (правка), Debug (отладка) и UseForm .

Вы можете управлять тем, какие панели инструментов отображает Редактор VB с помощью команды View / Toolbars (Вид/Панели инструментов ).

Контрольные вопросы

Что такое макрос?

Что такое макрорекордер? Каковы его возможности?

Как задаются стартовые условия для макроса?

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

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

Назовите основные компоненты интегрированной среды VBA.

Что такое макрос? Макрос — это сохраненная последовательность действий или программа, созданная на языке VBA (Visual Basic for Application). Частый вопрос как написать макрос в Excel? Просто.

Т.е. если нам необходимо выполнять одни и те же действия несколько раз, мы можем запомнить эти действия и запускать их одной кнопкой. Я не буду заставлять вас учить язык VBA и даже не буду предлагать много стандартных макросов в этой статье. В действительности создать/написать макрос в Excel сможет действительно каждый. Для этого существует самая интересная и необычная возможность Excel — Макрорекордер (запись ваших действий в виде кода). Т.е. вы можете записать свои действия, как на видео и перевести их в код (последовательность).

Короче, если вы каждый день выполняете одни и те же действия, стоит разобраться как автоматизировать этот процесс. Читайте далее, как написать макрос в Excel?

1.Разрешить использование макросов

Меню (круглая кнопка вверху слева) — Параметры Excel — Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов. Поставьте флажок «Включить все макросы».

Или сделать тоже самое на вкладке Разработчик

2. Включить меню Разработчик для быстрой работы с макросами

Меню (круглая кнопка вверху слева) — Параметры Excel — Основные — Показывать вкладку Разработчик.

Чтобы созданный макрос сохранился в книге, необходимо сохранить файл в .xlsm или.xlsb. Нажмите Сохранить как — Книга Excel с поддержкой макросов или Двоичная книга.

Итак, как написать макрос в Excel?

Все просто. Заходим в Excel. Внизу страницы, под ярлычками листов есть кнопка «Запись макроса».

Нажимаем кнопку, открывается окно «Запись макроса». Называем макрос как нам нравится в поле Имя макроса:. Задаем сочетание клавиш, которыми потом будем вызывать его (не обязательно).

Жмем ОК. Начались запись Макрорекордера.

Все. Теперь делаем те действия, которые нам нужно запомнить макросом. К примеру, нам нужно удалить одну строку и раскрасить ячейку А1 желтым цветом.

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

Как запустить то, что получилось? Нажмите кнопку , появится окно Выбор макроса, выбирите нужный макрос, а затем щелкните кнопку выполнить.

Как посмотреть что получилось? Нажмите кнопку . Выберите нужный макрос и нажмите изменить. Откроется окно записи макросов (окно VBA)

Код макроса должен получиться примерно следующим.

Sub Пример1() » Пример1 Макрос Rows(«2:2»).Select Selection.Delete Shift:=xlUp Range(«A1»).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub

‘ — символ комментария, т.е. эта строка не участвует в коде. Для макроса обязательно наличие имени (Sub Пример1()) и окончания (End Sub).

Как создать кнопку для макроса можно прочитать .

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

Как сохранить макрос для всех книг на своем компьютере можно прочитать .

Для этого применяется файл Personal.

Как запустить макрос по условию можно прочитать

Удачи, уверен вам это здорово пригодиться!

Поделитесь нашей статьей в ваших соцсетях:

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

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

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

Ссылка на основную публикацию