Создание макросов в microsoft excel

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

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

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

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

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

  • Обычные модули – используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert – Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:
  • Модуль Эта книга – также виден в левом верхнем углу редактора Visual Basic в окне, которое называется Project Explorer. В этот модуль обычно записываются макросы, которые должны выполнятся при наступлении каких-либо событий в книге (открытие или сохранение книги, печать файла и т.п.):
  • Модуль листа – доступен через Project Explorer и через контекстное меню листа, т.е. правой кнопкой мыши по ярлычку листа – команда Исходный текст (View Source). Сюда записывают макросы, которые должны выполняться при наступлении определенных событий на листе (изменение данных в ячейках, пересчет листа, копирование или удаление листа и т.д.)

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

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

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

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

Что нельзя сделать с помощью макрорекодера?

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

  • Вы не можете выполнить код без выбора объекта. Например, если вы хотите, чтобы макрос перешел на следующий рабочий лист и выделил все заполненные ячейки в столбце A, не выходя из текущей рабочей таблицы, макрорекодер не сможет этого сделать. В таких случаях вам нужно вручную редактировать код.
  • Вы не можете создать пользовательскую функцию с помощью макрорекордера. С помощью VBA вы можете создавать пользовательские функции, которые можно использовать на рабочем листе в качестве обычных функций.
  • Вы не можете создавать циклы с помощью макрорекордера. Но можете записать одно действие, а цикл добавить вручную в редакторе кода.
  • Вы не можете анализировать условия: вы можете проверить условия в коде с помощью макрорекордера. Если вы пишете код VBA вручную, вы можете использовать операторы IF Then Else для анализа условия и запуска кода, если true (или другой код, если false).

Безопасность макросов в современных версиях Excel (2007 и более новых)

Чтобы запустить макрос в современных версиях Excel, файл должен быть сохранён как Книга Excel с поддержкой макросов. Открывая такой файл, по его расширению xlsm Excel понимает, что в данной рабочей книге содержатся макросы (в отличие от файла со стандартным расширением xlsx).

Поэтому, чтобы иметь возможность запускать созданный в обычной рабочей книге Excel макрос всегда и везде, нужно сохранить её с расширением xlsm. Для этого на вкладке Файл (File) нажмите Сохранить как (Save as) и в поле Тип файла (Save as type) выберите Книга Excel с поддержкой макросов (Excel Macro-Enabled Workbook).

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

  1. Отключить все макросы без уведомления (Disable all macros without notification)

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

  2. Отключить все макросы с уведомлением (Disable all macros with notification)

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

  3. Отключить все макросы без цифровых подписей (Disable all macros except digitally signed macros)

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

  4. Включить все макросы (Enable all macros)

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

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

Чтобы разрешить выполнение макросов нужно просто кликнуть по кнопке Включить содержимое (Enable Content).

Макросы в Excel

За таким названиeм скрываются программы, написанныe на языкe Visual Basic for Application. Таким образом, программированиe в Excel — это созданиe макросов с нужным кодом. Благодаря этой возможности табличный процeссор Microsoft саморазвиваeтся, подстраиваясь под трeбования конкрeтного пользоватeля. Разобравшись с тeм, как создавать модули для написания макросов, можно приступать к рассмотрeнию конкрeтных примeров программ VBA Excel. Лучшe всeго начать с самых элeмeнтарных кодов.

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

  • открывают вкладку «Вид»;
  • пeрeходят на пиктограмму «Макросы»;
  • жмут на «Запись макроса»;
  • заполняют открывшуюся форму.

Для простоты в полe «Имя макроса» оставляют «Макрос1», а в полe «Сочeтаниe клавиш» вставляют, напримeр, hh (это значит, что запустить программку можно будeт блиц-командой «Ctrl+h»). Нажимают Enter.

Тeпeрь, когда ужe запущeна запись макроса, производят копированиe содeржимого какой-либо ячeйки в другую. Возвращаются на исходную пиктограмму. Нажимают на «Запись макроса». Это дeйствиe означаeт завeршeниe программки.

  • вновь пeрeходят на строку «Макросы»;
  • в спискe выбирают «Макрос 1»;
  • нажимают «Выполнить» (то жe дeйствиe запускаeтся начатиeм сочeтания клавиш «Ctrl+hh»).

В рeзультатe происходит дeйствиe, котороe было осущeствлeно в процeссe записи макроса.

Имeeт смысл увидeть, как выглядит код. Для этого вновь пeрeходят на строку «Макросы» и нажимают «Измeнить» или «Войти». В рeзультатe оказываются в срeдe VBA. Собствeнно, сам код макроса находится мeжду строками Sub Макрос1() и End Sub.

Если копированиe было выполнeно, напримeр, из ячeйки А1 в ячeйку C1, то одна из строк кода будeт выглядeть, как Range(“C1”).Select. В пeрeводe это выглядит, как «Диапазон(“C1”).Выдeлить», иными словами осущeствляeт пeрeход в VBA Excel, в ячeйку С1.

Активную часть кода завeршаeт команда ActiveSheet.Paste. Она означаeт запись содeржания выдeлeнной ячeйки (в данном случаe А1) в выдeлeнную ячeйку С1.

Циклы VBA помогают создавать различныe макросы в Excel.

Циклы VBA помогают создавать различныe макросы. Прeдположим, что имeeтся функция y=x + x2 + 3×3 – cos(x). Трeбуeтся создать макрос для получeния ee графика. Сдeлать это можно только, используя циклы VBA.

За начальноe и конeчноe значeниe аргумeнта функции бeрут x1=0 и x2=10. Кромe того, нeобходимо ввeсти константу — значeниe для шага измeнeния аргумeнта и начальноe значeниe для счeтчика.

Всe примeры макросов VBA Excel создаются по той жe процeдурe, которая прeдставлeна вышe. В данном конкрeтном случаe код выглядит, как:

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

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

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

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

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

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

  • в версии Excel от 2007 и к более новым вам нужно на вкладке «Разработчик» нажать кнопочку «Запись макроса»>;>
  • в версиях Excel от 2003 и к более старым (они еще очень часто используются) вам нужно в меню «Сервис» выбрать пункт «Макрос» и нажать кнопку «Начать запись».

Следующим шагом в работе с макрорекордером станет настройка его параметров для дальнейшей записи макроса, это можно произвести в окне «Запись макроса», где:

  • поле «Имя макроса» — можете прописать понятное вам имя на любом языке, но должно начинаться с буквы и не содержать в себе знаком препинания и пробелы;
  • поле «Сочетание клавиш» — будет вами использоваться, в дальнейшем, для быстрого старта вашего макроса. В случае, когда вам нужно будет прописать новое сочетание горячих клавиш, то эта возможность будет доступна в меню «Сервис» — «Макрос» — «Макросы» — «Выполнить» или же на вкладке «Разработчик» нажав кнопочку «Макросы»>;
  • поле «Сохранить в…» — вы можете задать то место, куда будет сохранен (но не послан) текст макроса, а это 3 варианта:

    • «Эта книга» — макрос будет записан в модуль текущей книги и сможет быть выполнен только в случае, когда данная книга Excel будет открыта;
    • «Новая книга» — макрос будет сохранен в тот шаблон, на основе которого в Excel создается пустая новая книга, а это значит, что макрос станет доступен во всех книгах, которые будут создаваться на этом компьютере с этого момента;
    • «Личная книга макросов» — является специальной книгой макросов Excel, которая называется «Personal.xls» и используется как специальное хранилище-библиотека макросов. При старте макросы из книги «Personal.xls» загружаются в память и могут быть запущены в любой книге в любой момент.
  • поле «Описание» — здесь вы можете описать, что и как должен делать макрос, для чего он создавался и какие функции несет, это чисто информативное поле, что называется на память.

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

Создание макросов в программе Microsoft Excel

​(Tools – Macro -​ ячейках, пересчет листа,​ процедура), записанная на​ ‘Выполняем арифметические операции​ iFib iFib =​После этого, открывается знакомое​ будут записываться в​ кнопкой мыши объект,​ не должно содержаться​Назначение макроса объекту, фигуре​ или прописную букву.​При записи макроса все​

​ галочкой опцию «Разработчик»​ старый и введите​

Способы записи макросов

​ комбинациях клавиш клавишу​ тогда сначала прочитайте​

  • ​Команды (Commands)​
  • ​ Record New Macro)​

​ копирование или удаление​ языке программирования Visual​ над значением текущей​ iFib_Next End If​ нам окно редактора​ макрос до тех​ рисунка, фигуры или​ пробелов; в качестве​ или графическому элементу​ Рекомендуется использовать сочетания​ необходимые действия записываются​ и нажмите на​ новый текст «Мой​

Автоматическая запись макросов

​ VBE.​ пор, пока вы​ элемент, к которому​ разделителей слов следует​

​На листе щелкните правой​ клавиш с​ в виде кода​ кнопку ОК.​ макрос».​ вы придадите фокус​

​ макрос в Excel​Макросы​ новее – нажать​Обычный макрос, введенный в​ (VBA). Мы можем​ Col.Cells(i).Value * 3​ Фибоначчи в столбце​Программист пишет там код​ сами не остановите​ нужно назначить существующий​ использовать знаки подчеркивания.​ кнопкой мыши объект,​CTRL​ Visual Basic для​

​​После создания кнопки можно​ клавиатуры для поля​ на языке программирования​легко найти веселый​ кнопку​ стандартный модуль выглядит​ запускать макрос сколько​ – 1 ‘Следующая​ A активного рабочего​ макроса вручную.​ запись.​

​ макрос и выберите​ Если используется имя​ рисунка, фигуры или​+​ приложений (VBA). Такими​Макросы позволяют автоматизировать процессы​ ее настроить, изменив​ ввода «Сочетание клавиш:​ VBA.​ желтый “колобок” -​Запись макроса (Record macro)​ примерно так:​

​ угодно раз, заставляя​ команда записывает полученный​ листа ‘в строке​Как видим, макросы в​Для примера, запишем простейшее​ команду​ макроса, являющееся ссылкой​

​ элемент, к которому​SHIFT​ действиями может быть​

​ работы с документами​ ее размеры и​ CTRL+» и попытаетесь​В данной статье для​Настраиваемую кнопку​на вкладке​Давайте разберем приведенный выше​ Excel выполнять последовательность​

​ результат в столбец​ с индексом i​ Microsoft Excel могут​ арифметическое действие: сложение​

​Назначить макрос​ на ячейку, может​ нужно назначить существующий​, так как они​ ввод текста или​ и не только…​

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

​ положение на листе.​ ввести большую букву​ Вас буде приведет​(Custom button)​Разработчик (Developer)​ в качестве примера​ любых нужных нам​ A активного рабочего​

​ Cells(i, 1).Value =​ значительно ускорить выполнение​ содержимого трёх ячеек​.​ появиться сообщение об​ макрос и выберите​ будут заменять собой​

​ чисел, выбор ячеек​ Они могут практически​ Для этого снова​ для комбинации, естественно​ пошаговый пример с​:​Затем необходимо настроить параметры​ макрос​ действий, которые нам​ листа ‘Имя листа​ iFib ‘Вычисляем следующее​ рутинных и однообразных​

​ (=C4+C5+C6).​В поле​ ошибке, указывающее на​ команду​

Как в Excel 2010 или 2013 вставить и запустить код VBA – руководство для начинающих

​ диапазона. Поэтому если​ Макросы нельзя отменить. Прежде​ быть буквами, цифрами​ или команд на​ содержания, отключают обновление​Это краткое пошаговое руководство​ сделать через циклы​vikttur​ макроса. Как одновременно​ ввода значений данных​ была включена в​ клавишу М.​ A1 и B1​ ними арифметические операции.​ iFib_Next As Integer​

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

  • ​ ‘из рабочей книги​ Результаты заносятся в​
  • ​ ‘Хранит следующее значение​Вы можете назначать макросы​

Вставляем код VBA в книгу Excel

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

    1. ​ пользователей и рассказывает​ встроенных функций в​
    2. ​ сям. В основном​​ нескольких выделенных диапазонах?​​Макрос для поиска ячеек​В случае, если макрос​
    3. ​ будет храниться макрос.​​ Data.xlsx, находящейся в​​ ячейки столбца​ последовательности Dim iStep​ формам и элементам​ клавиш, которые еще​ макрос не будет​ книгу или создайте​ не должно содержаться​​ строк или столбцов​​ перед выполнением макроса.​​ о том, как​​ том или ином​
    4. ​ то, что нужно​Как объединить ячейки в​ в Excel с​ слишком большой, его​ По умолчанию, он​ папке C:\Documents and​​A​​ As Integer ‘Хранит​
      ​ ActiveX на листе.​​ не назначены другим​ применяться к ней.​

      ​ ее копию, чтобы​ пробелов; в качестве​ и даже импорт​

      ​ языке и ищишь​ в данный момент​ Excel с помощью​ выпадающим списком и​ выполнение может занять​ будет храниться в​

      • ​ Settings Sub Set_Values(Val1​на активном рабочем​ размер следующего приращения​​Открытие редактора Visual Basic​​ командам, так как​Если вам нужно записать​​ предотвратить внесение нежелательных​​ разделителей слов следует​ данных из внешнего​​ эти параметры снова​​ (Visual Basic for​
      • ​ кода макроса VBA.​ условным форматированием.​​ значительное время. Но,​​ этой же книге​

      ​ ‘Инициализируем переменные i​На вкладке​ они будут переопределять​ длинную последовательность задач,​ изменений. Если вас​ использовать знаки подчеркивания.​ источника, такого как​ включаются. Данный приём​ Applications) в книгу​ у форумчан, предлагаешь​ задачи или для​Как можно быстро​Исходный VBA-код макроса​ путем внесения ручного​ (файле), но при​ As Double) Dim​ макросе продемонстрировано использование​ и iFib_Next i​

    5. ​Разработчик​ совпадающие с ними​ советуем вместо этого​ не устраивают результаты​​ Если используется имя​​ Microsoft Access. Visual​ приводит к ускорению​​ Excel, и как​ свой вариант они​ разбора простого примера.​​ объединять ячейки для​ для поиска выпадающих​ изменения в код,​ желании можно установить​​ DataWorkbook As Workbook​​ объектов Excel. В​​ = 1 iFib_Next​​щелкните​​ стандартные сочетания клавиш​ использовать несколько более​​ выполнения макроса, вы​​ макроса, являющееся ссылкой​ Basic для приложений​​ выполнения макроса от​ запускать вставленный макрос​​ тебе свой если​ Читать просто так,​​ таблиц со сложной​​ списков на рабочем​

  1. ​ мы можем ускорить​​ хранение в новой​​ On Error GoTo​ частности, производится обращение​ = 0 ‘Цикл​Visual Basic​

Запускаем макрос VBA в Excel

​ в Excel, пока​ мелких макросов.​​ можете закрыть книгу,​​ на ячейку, может​​ (VBA) является частью​​ 10% до 500%​​ для выполнения различных​​ есть более эффективный.​ как книгу, не​ структурой используя простые​​ листе. Исходный код​​ процесс. Добавляем команду​

​ книге, или в​ ErrorHandling ‘Открываем рабочую​​ процедурой​​ Do While будет​

​или выберите​

office-guru.ru>

Вариант 1: Автоматическая запись макросов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Снова щелкаем на кнопку «Макросы». В открывшемся окне выбираем нужный и кликаем по кнопке «Изменить».

Открывается «Microsoft Visual Basic» (VBE) – среда, где происходит их редактирование.

Запись каждого макроса начинается с команды , а заканчивается командой . Сразу же после указывается имя макроса. Оператор указывает выбор ячейки. Например, при команде «Range(«C4»).Select» выбирается ячейка «C4». Оператор используется для записи действий в формулах и других расчетов.
Попытаемся немного изменить макрос, дописав выражение:

Выражение заменим на .

Закрываем редактор и запускаем макрос. Как видим, вследствие введенных нами изменений была добавлена дополнительная ячейка с данными. Она также была включена в расчет общей суммы.
В случае если макрос слишком большой, его выполнение может занять значительное время, но внесением ручного изменения в код мы можем ускорить процесс. Добавляем команду . Она позволит сохранить вычислительные мощности, а значит, ускорить работу. Это достигается путем отказа от обновления экрана во время выполнения вычислительных действий. Чтобы возобновить обновление после выполнения макроса, в его конце пишем команду .
Добавим также команду в начало кода, а в его конец дописываем . Этим мы сначала отключаем автоматический пересчет результата после каждого изменения ячеек, а в конце макроса – включаем. Таким образом, Excel подсчитает результат только один раз, а не будет его постоянно пересчитывать, чем сэкономит время.

Вводная часть – зачем нужны макросы

С 1993 года в разработке приложений для компьютеров началась революция, когда был создан объединённый продукт Microsoft Office, где Exel стал играть одну из ключевых ролей. Именно в это время появляется мощное дополнение VBA, позволяющее автоматизировать задачи Exel. Табличный процессор получил возможность не только предоставлять удобный интерфейс для умного пересчёта ячеек, но и стал полноценным продуктом для решения прикладных задач.

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

  • Работаем в приложении Office 365 для дома. При этом рассматриваются те возможности, которые не принципиальны при переходе на работу в расширенные версии. Например, для малого бизнеса, где наиболее полноценно раскрываются возможности табличного процессора и макросы excel 2010.
  • При описании будет использоваться интерфейс Exel 2016.
  • VBA, диалект предметно ориентированного языка Visual Basic применяемый при работе с приложениями Microsoft Office.
  • Макрос или макрокоманда — программный алгоритм действий, определённый пользователем. Кроме того, это понятие применяется для символьного имени книги-шаблона, в которой хранится код действий.
  • Используется только функциональность, предусмотренная базовым вариантом табличного процессора, использующего макросы для excel 2013.
  • Предполагается, что читатель знаком с возможностями табличного процессора, но никогда не использовал макрос в excel 2007.

Рассмотрим, как создать макрос в excel 2007 на примере решения очень простой задачи:

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

Задача — используя информацию кладовщиков (см. рис.1) сделать сводную таблицу за неделю. Посчитать общий вес поступившего цемента и по каждому кладовщику отдельно.

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

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

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

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

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

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

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

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

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

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

Adblock
detector