Подвкладка "Макросы"

Подвкладка «Макросы» расположена на вкладке Дополнительно в редакторе настроек парсера:

 

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

Макросы могут понадобиться для выполнения каких-либо действий с таблицей Excel / с файлами / с компьютером / с браузером IE, которые не предусмотрены в парсере.

Макросы могут всё (собственно, этот сайт — наглядное тому подтверждение).
В составе настроек парсера макросы используются крайне редко, т.к. парсер умеет решать 99% задач, связанных с получением данных с сайтов и выводом результата в таблицы Excel.

 

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

  • Кнопка Добавить макрос создаёт новый (пустой) макрос
  • Кнопка Удалить макрос удаляет выделенный в списке макрос
  • Кнопка Создать копию клонирует выделенный в списке макрос
  • Кнопка Вставить в книгу выполняет вставку модуля с кодом (текущего макроса) в открытый файл Excel

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

 

В блоке «Редактирование макроса» расположены:

  • текстовое поле для ввода названия макроса
    (название может быть любым)
  • поле для кода макроса (макросов)
    (в это поле копируем код VBA, - можно один макрос, а можно и большой модуль кода, состоящий из множества макросов и функций)

При вставке кода VBA в поле «Код макроса», парсер подставит название первого макроса (SUB) в поле «Название» (если оно ещё не заполнено)

 

Предположим, у нас есть такой макрос:

Sub PaintTable()
    ' заменяем все формулы значениями на активном листе
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
 
    ' красим ячейки всей таблицы в зеленый цвет
    ActiveSheet.UsedRange.Interior.Color = vbGreen
 
    ' в ячейку A1 вносим имя пользователя Windows
    Range("A1") = Environ("USERNAME")
 
    ' отправляем текущую книгу Excel по почте
    ThisWorkbook.SendMail "vasya@yandex.ru", "Письмо из парсера"
End Sub

и нам нужно, чтобы парсер по окончании своей работы его выполнил.

Для этого, нажмём кнопку Добавить макрос, и вставим наш код в поле «Код макроса»:

Макросы из состава парсера можно запускать программно действием парсера «Добавить макрос VBA в текущий файл», а удалить модуль с макросом из файла Excel — действием «Удалить модуль с макросами VBA»

Создадим на вкладке «Наборы действий» специализированный набор действий Parser_Finish, и добавим туда одно действие:

Действие Параметр Значение
Добавить макрос VBA в текущий файл Название набора макросов PaintTable
Запустить макрос с именем PaintTable
Удалить модуль после выполнения макроса да

 

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