Создание макросов и их применение в Excel. Написание макросов excel


Запись макроса в Excel

Запись макроса в Excel

Процесс записи макроса рассмотрим на примере.

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

    Чтобы записать макрос, надо:
  • 1. Активизировать процесс записи.
  • 2. Выполнять действия, которые составляют суть макроса.
  • 3. Остановить запись.

Чтобы начать запись макроса, необходимо раскрыть вкладку Вид -> Макросы и сделать щелчок на кнопке Запись макроса. На экране появится окно Запись макроса. В поля этого окна требуется ввести название макроса и его краткое описание.

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

В списке Сохранить в необходимо выбрать книгу, т.е. место, где будет сохранен макрос (Личная книга макросов, Новая книга, Эта книга). По умолчанию макрос будет сохранен в текущей книге. Личная книга (файл personal.xls) это специальная книга, которая автоматически загружается при запуске Microsoft Excel, что обеспечивает возможность запуска макросов, находящихся в этой книге во время работы с другими книгами. В личную книгу макросов обычно помещают универсальные макросы. Макросы, предназначенные для решения специальных задач, связанных с конкретной книгой, обычно помещают в ту книгу, где находится таблица, для обработки которой предназначен макрос. Поэтому в рассматриваемом примере в списке Сохранить в следует выбрать Эта книга.

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

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

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

Макрос Очистить должен удалить информацию из ячеек столбцов Код, Название, Цена и Кол-во. Поэтому после щелчка на кнопке OK в окне Запись макроса при помощи мыши выделите диапазон B4:E13 и нажмите клавишу <Delete>. После этого следует остановить процесс записи макроса, для чего сделайте щелчок на кнопке Остановить запись.

Текст записанного макроса можно увидеть. Для этого на вкладке Вид -> Макросы в раскрывшемся диалоговом окне Макросы нужно выбрать макрос и щелкнуть на кнопке Изменить. В результате откроется окно кода модуля, в котором и отображается текст макроса.

Вы так же можете ознакомиться с другими статьями главы Макросы в Excel 2010:Удачи Вам! До скорых встреч на страницах сайта RusOpen.com

Опубликовано: 20.12.2015

rusopen.com

Знакомство с макросами в Excel на видеокурсе от Loftblog

Чему бы ты ни учился, ты учишься для себя. Петроний

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

Что же такое макросы в Excel

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

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

  • 1. Открываете файл Данные.xls.
  • 2. Отбираете данные за последние 30 дней.
  • 3. Строите график.
  • 4. Копируете график в новую книгу.
  • 5. Сохраняете книгу в формате PDF.
  • 6. Отправляете начальнику.

И так каждый месяц. Не надоело ли? А ведь существует замечательный инструмент, который запомнит эту последовательность действий и будет их выполнять по одному щелчку мыши каждый месяц. Именно этот инструмент и называется макрос.

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 пунктов.

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

Cпособы написания макросов в Excel

Давайте рассмотрим способы написания макросов в Excel:

  • 1. С использованием макрорекодера. Это инструмент, который записывает все действия, которые осуществляет пользователь.
  • 2. С использованием готовых макросов. Вы просто находите готовый макрос и подстраиваете его под себя.
  • 3. Сами с нуля. Здесь вам придется писать команды своими ручками. На первый взгляд, кажется, что это самый сложный способ, но это совсем не так, и вы скоро в этом убедитесь.

Задача этого курса найти золотую середину между тремя этими способами.

Без практики теория мертва

Сегодня мы изучим автоматическую запись макросов в Excel с помощью макрорекодера. Давайте сначала дадим «серьезное» определение этому инструменту. Макрорекодер – это инструмент для записи действий пользователя и перевода их в программный код.

Ну, а теперь можно и попрактиковаться. Для начала подключим вкладку разработчик в панели Excel. Для этого выполните следующую последовательность действий: открыть Excel –> правой кнопкой мыши по панели –> настройка ленты –> галочку на «Разработчик» (в правом углу).

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

На этом наш первый видеоурок по написанию макросов в Excel завершится! С вами был LoftBlog, всем пока!

Приятного всем просмотра! Учитесь с удовольствием!

Рекомендуемые курсы

loftblog.ru

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

«Макросы» - это макрокоманда с определенной последовательностью записанных пользователем действий. Для используются макросы в Excel? Это отличное спасение от рутинного выполнения одинаковых действий. К примеру, каждый день вы редактируете шаблонные отчеты, удаляя из них столбцы и добавляя в шапке по несколько строчек. Теперь этот процесс можно автоматизировать и что немаловажно – для этого не потребуется ни единого навыка программирования.

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

  1. Excel 2003: «Сервис/Безопасность/Уровень «Низкий».
  2. Excel 2007: Жмите на кнопку «Office», после – «Параметры Excel». Далее «Центр управления безопасностью/Параметры/Разрешить все».

  3. Excel 2010: «Файл/Параметры», а далее все также как в пункте выше.
  4. В Excel 2013 эта функция активируется по аналогии с предыдущими.

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

Фиксируются только действия совершенные в программе и лишь те, которые можно сделать вручную (т.е. команды для них находятся в главном меню). Если при написании кода была совершена ошибка, вы можете удалить её сочетанием Ctrl+Z.

Как писать макросы

Пользователям, работающим с Эксель 2003 версии, следует запустить «Сервис/Макрос/Начать запись».

Если у вас установлен Microsoft Excel 2007 и более поздние выпуски, воспользуйтесь инструкцией ниже:

  • Запуск через вкладку «Разработчик»: Группа Код/Запись.

  • Через строку состояния: нажмите кнопку «Запись макроса».

Как запустить созданный макрос

Вы можете воспользоваться любым их указанных методов:

  1. Нажать сочетание Alt+F8.
  2. Вызвать из меню: «Разработчик/Макросы».
  3. С помощью горячих клавиш, назначенных объекту.
  4. При включении определенной процедуры на листе.

free-office.net

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

Лекция №2. Создание макросов и их применение в Excel

Разбираемые вопросы:

  1.  Понятие макроса.
  2.  Запись простых макросов.
  3.  Выполнение макросов.
  4.  Редактирование макросов.
  5.  Назначение макроса графическим изображениям.
  6.  Удаление макросов.
  7.  Ограниченность макросов.

Понятие макроса

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

MacroRecorder – это стандартное средство записи макросов в Excel, посредством которого можно записывать последовательность действий пользователя и получать соответствующий код (программу) на VBA. Программа, созданная с помощью MacroRecorder, называется макросом.

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

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

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

Макрос – это именованная последовательность заданных пользователем команд и действий, хранящаяся в форме программы на языке VBA.

Запись макросов в приложении Excel

Для работы с макросами в приложении Excel имеется специальная панель.

Для вызова этой панели необходимо выполнить последовательно команды меню: Вид → Панели инструментов → Visual Basic.

Для записи макроса необходимо:

  1.  Нажать на кнопку «Запись макроса» на панели Visual Basic.
  2.  В диалоговом окне «Запись макроса» присвоить имя макросу. (В имени макроса первым символом должна быть буква, не допускается использование пробелов).
  3.  Выполнить действия, которые нужно записать.
  4.  Нажать кнопку «Остановить запись».

Пример

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

Имеется таблица с информацией о самых ценных алмазах в мире.

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

Это действие в Excel можно выполнить с помощью стандартной функции МАКС, но мы продемонстрируем на этом примере, как сохранить последовательность действий пользователя и на их основе создать макрос.

Выполним следующие действия:

  1.  Откроем новую книгу.
  2.  Создадим таблицу по приведенному образцу.
  3.  В ячейке D9 наберем «Максимальная масса в граммах».
  4.  На панели Visual Basic нажмем кнопку «Запись макроса». Появится диалоговое окно «Запись макроса»:

  1.  Введем вместо названия «Макрос1» название макроса «Алмаз» и нажмем «ОК». На экране появится панель инструментов «Остановить запись».

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

  1.  Установим курсор в ячейку E10. В этой ячейке должен появиться результат.
  2.  Выполним команду Вставка → Функция. Появится диалоговое окно «Мастер функций».
  3.  Выберем в окне «Категории функций» «Статистические», где выберем функцию МАКС. Появится диалоговое окно, в первой строке которого необходимо указать диапазон, в котором мы будем искать максимальное значение, а – E2:E9. нажмем «ОК».

Выполнение макросов

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

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

  1.  Установим курсор в любую ячейку листа.
  2.  Выполним команду Сервис → Макрос → Макросы. Появится диалоговое окно «Макрос».
  3.  Выделим макрос «Алмаз» и щелкнем по кнопке «Выполнить». В ячейке E10 появится результат.

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

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

Выделим макрос «Алмаз» и щелкнем по кнопке «Изменить». Откроется окно редактора:

При записи макроса выполнялись всего два действия. Сначала мы установили курсор в ячейку E10. на языке VBA этому действию соответствует строка:

Range(“E10”).Select

Затем мы вызвали функцию МАКС и в качестве аргумента указали диапазон ячеек E2:E9:

ActiveCell.FormulaR1C1 = “=MAX(R[-8]C:R[-1]C)”

Полученный код можно редактировать непосредственно в редакторе Visual Basic. Изменим размер шрифта в ячейке E10 на 16:

Range(“E10”).Font.Size = 16

Можно также изменить цвет шрифта. Например, изменим цвет текста в ячейке на красный:

Range(E10”).Font.ColorIndex = 3

Значения, которые может принять свойство Font.ColorIndex, изменяется от 1 до 56.

После внесенных изменений текст макроса стал следующим:

Sub Алмаз ( )

‘Алмаз Макрос

Range(“E10”).Select

ActiveCell.FormulaR1C1 = “=MAX(R[-8]C:R[-1]C)”

Range(“E10”).Font.Size = 16

Range(“E10”).Font.ColorIndex = 3

End Sub

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

Назначение макроса графическим изображениям

Разрабатывая приложение, надо думать о том, чтобы создать легкий и удобный интерфейс для выполнения задач автоматизации. Запуск макросов на выполнение посредством команд меню или кнопок на панели Visual Basic – не слишком удобный механизм для пользователей.

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

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

Теперь макрос «Алмаз» можно запустить посредством щелчка на автофигуре.

Запустить макрос на выполнение можно и другим способом, используя командную кнопку. Вставить командную кнопку непосредственно на рабочий лист Excel можно с помощью панели инструментов «Формы» (Вид → Панели инструментов → Формы). Затем необходимо назначить ей наш макрос.

Удаление макросов из списка макросов

Для того чтобы удалить макрос, надо:

  1.  Выполнить команду Сервис → Макрос → Макросы. Появится уже знакомое диалоговое окно.
  2.  Выделить макрос, подлежащий удалению, и щелкнуть по кнопке «Удалить».
  3.  Подтвердить выполнение операции в специальном окне, которое появится.

Ограниченность макросов

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

Эти ограничения приводят к необходимости создания программ на VBA.

PAGE  4

Выполнение макроса

Запись

макроса

Вызов редактора VBA

Вызов панели элементов управления

Вызов конструктора форм

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

нопка

Панель «Формы»

refleader.ru

Макросы в excel 2007,2010 Понятие макроса

Макрос — это программа, состоящая из списка команд, которые должны быть выполнены приложением. Макрос служит для объ­единения нескольких различных действий в одну процедуру, ко­торую можно вызвать. Такой список команд состоит, в основ­ном, из макрооператоров, тесно связанных с командами прило­жений из MS Office. Большая часть макрооператоров соответствует командам меню или параметрам, которые задаются в диалоговых окнах.

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

  • командные — наиболее распространенные макросы, которые обычно состоят из операторов, эквивалентных тем или иным командам меню или параметрам диалоговых окон. Основным предназначением таких макросов является выполнение дейст­вий, аналогичных командам меню — т. е. изменение окруже­ния и основных объектов приложения. Например, изменение рабочего листа или рабочего пространства MS Excel, сохране­ние или вывод на печать и т. п. Таким образом, в результате выполнения макроса вносятся изменения либо в обрабатывае­мый документ, либо в общую среду приложения;

  • пользовательские функции — работают аналогично встро­енным функциям MS Excel. Отличие этих функций от команд­ных макросов состоит в том, что они используют значения пе­редаваемых им аргументов, производят некоторые вычисле­ния и возвращают результат в точку вызова, но не изменяют среды приложения;

  • макрофункции — представляют собой сочетание командных макросов и пользовательских функций. Наряду с тем, что они подобно пользовательским функциям, могут использовать аргументы и возвращать результат, макрофункции, как и ко­мандные макросы, способны еще и изменять среду приложе­ния. Чаще всего макрофункции вызываются из других макро­сов и активно используются для модульного программирова­ния. Если необходимо в различных макросах выполнить ряд одинаковых действий, то эти действия обычно выделяются в отдельную макрофункцию (подпрограмму), которая вызыва­ется каждый раз, когда необходимо выполнить эти повторяю­щиеся действия.

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

В процессе работы с MS Excel часто приходится многократно выполнять однотипные действия. В этом случае разумно создавать макросы. От обычной программы макрос отличается в первую очередь тем, что типичная программа выполняется "под контролем" операционной системы (Windows), в то время как выполнение макроса осуществляется самим приложением (в данном случае это MS Excel). Макрос может быть создан практически так же, как и любая дру­гая программа. Для этих целей прямо из окна приложения MS Excel можно запустить редактор языка VBA. Однако есть и более простой способ создания макросов. Состоит он в том, чтобы перевести MS Excel в режим записи макроса, выполнить все те действия, которые должны выполняться данным макросом, после чего выйти из ре­жима записи макроса. Следует отметить, что этот метод применим только в тех случаях, когда макрос не слишком сложен. Тем не менее, даже при работе со сложными макросами данный метод может быть использован для генерации "базового" программного кода.

Работа по записи макросов требует дополнительной настройки конфигурации MS Excel 2007.

ПРИМЕЧАНИЕ. При записи макроса все необходимые действия записываются программой записи макроса (макрорекордер). Работа макрорекордера во многом напоминает запись с помощью обычного магнитофона (диктофона). При этом перемещение курсора по ленте и рабочей книги не включается в записанные команды.

studfiles.net

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

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

Итак, создадим для начала новый файл в Excel, а затем сохраним его, нажав клавишу F12 и выбрав тип файла «книга Excel с поддержкой макросов (*.xlsm)». Такой тип расширения позволит вам в дальнейшем запускать Excel со встроенными макросами.

Создание макросов в Excel — работа в редакторе

Открываем редактор VBE, нажимая Alt+F11, и создаем модуль, выбирая Insert –> Module. Код нашего макроса:

Sub information() ‘создание нового листа ‘объект.действия Worksheets.Add ‘вывести имя в ячейку ‘объект.свойство range(“A1”).Value = "Пользователь:” range("B1").Value = Application.UserName ‘ввод даты range(“A2”). Value = "Дата:” range("B2").Value = Date ‘форматирование range("A1:A2").Font.Color = vbRed range("A1:A2").Interior.Color = rgbLightCoral End Sub

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Sub information()

 

‘создание нового листа

‘объект.действия

Worksheets.Add

‘вывести имя в ячейку

‘объект.свойство

range(“A1”).Value = "Пользователь:”

range("B1").Value = Application.UserName

 

‘ввод даты

range(“A2”). Value = "Дата:”

range("B2").Value = Date

 

‘форматирование

range("A1:A2").Font.Color = vbRed

range("A1:A2").Interior.Color = rgbLightCoral

 

End Sub

Создание макросов в Excel — разбор кода

Строка (1) Sub information() означает при создании макросов в Excel начало макроса с именем information.

Строка (3) ‘создание нового листа – строка, вначале которой стоит знак ‘ носит пояснительный характер, то есть является комментарием.

Строка (4) объект.действия отражает в виде комментария синтаксис команд.

Строка (5) Worksheets.Add – команда добавления листа при создании макросов в Excel.

Строка (9) range(“A1”). Value = «Пользователь:» означает, что ячейке A1 присваивается значение Пользователь.

Строка (9) range(«B1»).Value = Application.UserName говорит о том, что ячейке В1 присваивается значение Application.UserName. Это означает, что программа Excel вписывает в указанную ячейку имя пользователя на вашем компьютере. Аналогичная последовательность операций проводится и с выводом даты в ячейку – строки (13-14).

В строках (17-18) написаны команды для форматирования ячеек, то есть строка range(«A1:A2»).Font.Color = vbRed говорит, что диапазону ячеек A1:A2 со свойством Шрифт (Font) изменим параметр Цвет (Color) на красный (vbred).

Аналогично со строкой range(«A1:A2»).Interior.Color = rgbLightCoral, которая означает, что заливку ячеек мы меняем на светло-розовую.

Напоминание: чтобы запустить макрос построчно не забывайте нажимать F8!

На этом все! Сегодня вы большие молодцы, так как сами написали свой первый макрос. Как видите, это не так страшно, как казалось на первый взгляд.

Приятного всем просмотра! Учитесь с удовольствием! Всегда ваш LoftBlog!

Рекомендуемые курсы

loftblog.ru

Написание макросов в Excel

Краткое описание:

Интенсивный онлайн-курс:Написание макросов в ExcelУчебный процесс

УЧАСТИЕ В ВЕБИНАРАХ

Всё обучение проходит в онлайн формате. За сутки до вебинара, за 1 час и за 30 минут до начала система направит Вам персональную ссылку для входа. В день Х Вы переходите по ссылке и подключаетесь к вебинару. Рекомендую повторять за мной все действия и активно участвовать!

ВЫПОЛНЕНИЕ ДОМАШНИХ ЗАДАНИЙ После каждого вебинара Вам даётся 7 дней на выполнение домашнего задания. Сдавать домашнюю работу надо в срок, чтобы я успел проверить её и написать Вам подробную обратную связь (подскажу где хорошо, где не очень, как написать код проще и что ещё можно улучшить, отвечу на все Ваши вопросы).

ПЕРЕСМОТР ЗАПИСЕЙ ВЕБИНАРОВ и ДОП.МАТЕРИАЛОВ Как показывает практика на вебинарах присутствует 5 человек из 20, остальные изучают материалы в записи. Уже на следующий день после вебинара в личном кабинете появляется запись. Кроме неё мной уже записаны короткие видеоролики, на которых я рассказываю 70% материала вебинара.

РЕАЛИЗАЦИЯ СОБСТВЕННОГО ПРОЕКТА ПО АВТОМАТИЗАЦИИ Обучение проходит наиболее продуктивно, если параллельно с выполнением домашних работ Вы реализуете свой собственный проект.Вебинар 1. Минимум необходимой теории7 сентября (четверг) с 19:00 до 21:00 (МСК)

Теоретический вебинарЧто такое макросы? Как их писать?Наша задача научиться трём способам написания макросов:

  • с помощью макрорекордера (только как помощника)
  • используя чужой код (где брать и как изменять под себя)
  • сами с нуля (посвятим бОльшую часть времени)
Редактор VBEМакросы пишут в редакторе Visual Basic Editor и наша задача научиться эффективно использовать его для решения своих задач. На вебинаре узнаем из каких окон состоит, как настроить под себя (какие панелии окно добавить, а какие лучше убрать).

Объектная модель Excel

90% макросов что-то делают с ячейками (Cells), диапазонами (Range), листами (WorkSheets) и excel-файлами (Workbooks), нам предстоит разобраться с иерархией этих объектов. Также узнаем их основные свойства и методы.

Домашнее задание

Пишем с нуля макросы, которые:

  • создаёт оглавление Excel-файла с большим количеством листов
  • записывает информацию о пользователе, который открывает файл
Вебинар 2. Изменяем, копируем, удаляем через VBA11 сентября (понедельник) с 19:00 до 21:00 (МСК)Практический вебинар

3 варианта копирования

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

5 способов удаления

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

  • удалить только значения (ClearContents),
  • очистить форматы (ClearFormats),
  • удалить комментарий (ClearComments),
  • удалить всё сразу (Clear),
  • да ещё и со смещением (Delete)
Рассмотрим на примерах все способы.

Определяем последнюю заполненную ячейку

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

  • свойство Range.End (когда в столбце все строки заполнены значениями)
  • метод Range.Find (самую последнюю строку/столбец)
  • метод SpecialCells (самую-самую последнюю (даже удалённую) строку/столбец)
Домашнее задание

Пишем с нуля макросы, которые:

  • создаёт оглавление Excel-файла с большим количеством листов
  • записывает информацию о пользователе, который открывает файл
Вебинар 3. Циклы - короли автоматизации14 сентября (четверг) с 19:00 до 21:00 (МСК)Практический вебинар

Что такое циклы? Почему они короли?

Макросы должны уметь делать работу за нас. Мы напишем код, а макрос пусть +100500 раз повторит все наши действия.

Если Вы уже в теме макросов, то вот какие типы циклом рассмотрим:

  • For ... next (цикл со счётчиком)
  • Do ... Loop (с условиями While и Until)
  • For each ... (по объектам коллекций WorkSheets, Сells и др.)
К примеру, Вам надо заполнить данными 150 договоров по шаблону. Вот мы и запишем пару строк кода как заполнить 1 договор, а циклы повторят процедуру 150 раз. Делая руками, мы бы потратили 2 дня, а макрос за 2 минуты выполнит эту работу.

Основы работы с переменными

Если циклы - это короли, то переменные - их верные помощники. Имя листа, файла, путь сохранения и т.д. - постоянно меняются. Определим для подобных параметров переменные и напишем макрос, который будет использовать универсальный код и выполняться в 2-3 раза быстрее.

Домашнее задание

Пишем с нуля макросы, которые:

  • заполнит 138 договоров ГПХ и отправит их каждому сотруднику на почту
  • из выгрузки продаж за 9 мес. сформирует excel-файлы по зонам ответственности каждого менеджера и директора региона и сохранит в нужную папку

Вебинар 4. Учимся общаться с пользователем18 сентября (понедельник) с 19:00 до 21:00 (МСК)

Практический вебинар

Скажи мне: Кто ты?

До искуственного интеллекта нам будет ещё далеко, но вот запросить информацию от пользователя (ответить Да/Нет, ввести число, выделить диапазон ячеек, для которых будет выполнен макрос и т.д.) мы научимся. Возможно, Вы уже слышали про:

  • MsgBox (информационные сообщения),
  • InputBox (получение данных от пользователя)
  • Application.InputBox (продвинутый вариант InputBox)
Мы на практических примерах разберёмся во всех тонкостях.

Работа с файловой системой

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

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

Домашнее задание

Пишем с нуля макросы, которые:

  • создаёт список файлов в папке (покажу два принципиально разных варианта решения задачи)
  • сбор данных из нескольких файлов Excel в один (все из одной папки, по списку файлов, по тем, что выберет пользователь)
Вебинар 5. Функции VBA. + Создание собственных21 сентября (четверг) с 19:00 до 21:00 (МСК)

Практический вебинар

Макросы на VBA - это Вам не ВПР писать. Тут думать надо!

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

  • текстом (UCase, LCase, StrConv, Left, Mid, Len, InStr, RevStr, Trim и др.)
  • датой и временем (Date, Time, Now, WeekDay, DateDiff, DateAdd и др.)
  • числами (Abs, Fix, Int, Round, Rnd, Sgn, Sin, Cos, Tan, Atn и др.)
  • преобразование данных (IsNumeric, IsDate, IsArray, IsObject, IsEmpty и др.)
  • форматами (Format, FormatCurrency/DateTime/Number/Percent)
Function - то тоже макрос, но необычный

Узнаем про отдельный вид макросов - Функции (Function). Расскажу, про принципиальные отличия от обычных, научу писать свои собственные формулы (их нет ни в одной версии Excel):

  • СуммаЯчеекПоЦвету (находит сумму ячеек с определённым цветом заливки)
  • ЛатиницаВРусские и РусскиеВЛатиницу (преобразует буквы)
  • ЧислоИзЯчейки (извлекает из ячейки с текстом число)
Также поделюсь собственными готовыми функциями, которые не надо писать самим, а просто взяли и используете (+можно под свои задачи легко изменить).

WorkSheetFunction - ещё один вариант написания формул VBA

Особый вид функций, который работает быстрее обычных, но имеет свои особенности. К примеру формулу ВПР в ячейку B1 можно написать так:

relizor.ru