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

First Steps

Recording a Macro

How to record and replay an iMacros macro for web automation.

(Note: While this video was recorded on the iMacros browser, recording a macro works just the same with our free plugins/extensions for Firefox, Internet Explorer and Chrome)

These videos are designed for an office environment, and thus have no sound.

Automating a Web Form To Get Up-To-Date Flight Prices

Make iMacros fill in a web form to get up-to-date information on a certain flight connection.

(Note: While the iMacros browser was used for recording/replaying this macro, the procedure is the same for the iMacros extension/plugin for Firefox, Internet Explorer and Chrome.)

Automate Image Downloads

Have iMacros download the latest map of pollen concentration in the US.

The iMacros Editor

Use the built-in editor for more convenient testing/fixing.

More iMacros Features

Using DS for Drag ‘n Drop

Using [DS], you can automate AJAX. For example, move elements around with Drag ‘n Drop.

Using ImageRecognition

Use image recognition to select a website’s elements

Image.search.wizard.png Click here to start tutorial

Form Filling

CSV input

How to fill a web form from a CSV input file.

Csv.input.tutorial.png Click here to start tutorial

More information on CSV input:

  • CSV input — Input from Comma Separated Data (CSV) File
  • CSV file format,

Note: The macros displayed in the tutorials make use of the deprecated EXTRACT command, which now is a simple TAG with the EXTRACT parameter (cf. EXTRACT). When using the Extraction Wizard, recent releases of iMacros will automatically create the new commands (and not the ones that are shown in the tutorial).

Using the Content Extraction Wizard

How to use the Extraction Wizard

Content.extraction.wizard.png Click here for part 1 of the tutorial (the tutorial will automatically continue with parts 2, 3, and 4)

Using a VBS loop for extraction

Script.loop.png Click here for part 2 of the tutorial

Using relative positioning (e.g. POS=R1) in extraction

Relative.extraction.png Click here for part 3 of the tutorial

Using relative positioning in a VBS loop extraction

Script.relative.extraction.loop.png Click here for part 4 of the tutorial

Scripting

Updating Excel Data From the Web

How to update data in an Excel spread sheet calling iMacros directly from Excel

Step 1: Record and prepare macro

Update.excel1.png Click here for part 1 of the tutorial

Step 2: Make Excel call iMacros

Update.excel2.png Click here to start part 2 of the tutorial

Loops with VBS

Please see VBS looping

Loop only parts of a macro

Please cf. Loop after Query or Login

Response Time Measurement

Use the STOPWATCH command to measure the respond time of certain web actions

Stopwatch.png Click here to start the tutorial

Источник: okdk.ru

При работе с документами большое значение имеет автоматизация часто выполняемых операций — когда данных много, ручное выполнение некоторых процессов может занимать достаточно времени. Ускорить работу и повысить ее эффективность можно с помощью макросов. Разберемся, что это такое, и как они работают на примере офисного пакета «Р7-Офис».

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

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

В «Р7-Офис» поддержка макросов реализована для работы с документами разных типов — таблицами, текстовыми документами и даже презентациями. Макросы есть во многих сервисах, но в «Р7-Офисе» они все же уникальны, так как используют синтаксис JavaScript и нотацию сценариев API Р7 Document Builder. JavaScript выбран по нескольким причинам:

  • Кроссплатформенность. JavaScript стабильно работает на всех платформах и устройствах. Код, написанный на JavaScript не надо постоянно допиливать с помощью костылей под каждую отдельную реализацию. Написал раз и пользуешься.
  • Простота. JavaScript — довольно простой и понятный в освоении язык программирования. Его легко использовать, даже если нет глубокой компетенции в программировании.
  • Безопасность. В «Р7-Офис» макросы представлены простым кодом, у которого нет прямого доступа к системе. Макрос запускается в одном окне с редактором, поэтому не влияет на безопасность и загруженность устройства.

Можно ли скрыть макросы в «Р7-Офис» от других пользователей

Макросы, написанные в «Р7-Офис», нельзя скрыть от других пользователей. Однако есть другая доступная возможность: любой макрос можно пометить как автоматически выполняемый при открытии документа. Это можно сделать в редакторе макросов, который находится в «Р7-Офис» во вкладке «Плагины» — «Макросы» — кнопка «Автостарт». При открытии документа с макросом, который помечен функцией «Автостарт», макрос будет выполняться автоматически.

Кроме того, пользователи «Р7-Офис» могут самостоятельно установить уровень безопасности запуска макросов. Для этого в редакторах текстов, таблиц или презентаций нужно зайти во вкладку «Файл» —«Дополнительные параметры» — «Настройки макросов». Здесь можно выбрать один из 3-х вариантов: «Отключить все», «Показывать уведомление» или «Включить все».

Функция «Отключить все» означает, что при открытии документа с макросами внутри последние запускать запрещено. Функция «Включить все» имеет противоположное значение: при открытии документа с макросами они будут запускаться автоматически. Третья функция «Показывать уведомление» означает, что при открытии документа с макросами на экран будет выводиться сообщение о том, что в документе есть макросы. В этом случае можно будет на свое усмотрение позволить или запретить макросам запуститься.

Создание макросов в «Р7-Офис»

Алгоритм работы с макросами в редакторах «Р7-Офиса» сделан просто, поэтому использовать макросы смогут как опытные пользователи, так и новички.

Алгоритм создания собственного макроса сведен к нескольким действиям:

  1. Заходим в нужный редактор, например, редактор таблиц.
  2. Открываем вкладку «Плагины».
  3. Выбираем «Макросы».
  4. В появившемся окне нажимаем «Создать» и пишем скрипт нужного макроса.
  5. После написания скрипта макрос можно использовать. Для этого достаточно нажать «Выполнить».
  6. Для удобства макрос можно переименовать. Это особенно актуально, если в работе десятки макросов и оформление в формате «Макрос 1», «Макрос 2» и далее не информативно.

Какие функции можно автоматизировать с помощью макросов?

Написание скриптов на JavaScript практически полностью снимает ограничение по возможностям автоматизации — в «Р7-Офис» можно автоматизировать практически все, если правильно написать код.

С помощью макросов можно автоматизировать:

  • форматирование текста и таблиц;
  • вставку формул, диаграмм и текста;
  • работу с форматом ячеек (объединение, выравнивание, расширение);
  • работу со сложными данными (например, с курсами валют).

Это лишь малая часть. Более того — с учетом возможности использования макросов во всех редакторах «Р7-Офис» (таблицы, презентации, текстовые документы), этот инструмент становится универсальным и одинаково применимым, независимо от задач пользователя.

Примеры полезных макросов

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

Запись данных в ячейку таблицы

В качестве примера запишем фразу «Проверка макроса» в пятую строку пятого столбца — ячейка Е5.

Код скрипта:

(function()

{

Api.GetActiveSheet().GetRange(«Е5»).SetValue(«Проверка макроса»);

})();

После ввода скрипта и нажатия кнопки «Выполнить» в таблицу будет вставлен соответствующий текст.

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

Изменение цвета ячейки

Например, «зальем» синим цветом ячейку А5.

Код скрипта:

(function()

{

Api.GetActiveSheet().GetRange(«A5»).SetFillColor(Api.CreateColorFromRGB(0, 0, 250));

})();

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

Объединение заданного диапазона ячеек

Для примера объединим все ячейки от B2 до D5.

Код скрипта:

(function()

{

Api.GetActiveSheet().GetRange(«B2:D5»).Merge(true);

})();

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

Форматирование указанного диапазона ячеек в виде таблицы

Например, отформатируем в виде таблицы диапазон ячеек от A1 до G7.

Код скрипта:

(function()

{

Api.GetActiveSheet().FormatAsTable(«A1:G7»);

})();

После ввода скрипта и нажатия кнопки «Выполнить» в заданном диапазоне будет создана таблица с именованными столбцами (название которых можно поменять по своему усмотрению.

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

Вставка диаграммы

Для примера создадим на листе рабочей таблицы диаграмму, охватывающую диапазон ячеек от С5 до D7.

Код скрипта:

(function()

{

Api.GetActiveSheet().AddChart(«‘Sheet1’!$C$5:$D$7», true, «bar», 2, 105 * 36000, 105 * 36000, 5, 2 * 36000, 1, 3 * 36000);

})();

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

Замена шрифта во всем документе в текстовом редакторе

Для того, чтобы в текстовом документе заменить шрифт, можно воспользоваться следующим скриптом:

(function()

{

var oDoc = Api.GetDocument();

var elcount = oDoc.GetElementsCount();

for(var i = 0; i<elcount; i++){

var el = oDoc.GetElement(i);

var oTextPr = el.GetTextPr();

oTextPr.SetFontFamily(«Comic Sans MS»);

el.SetTextPr(oTextPr);

}

})();

Название шрифта здесь пишется в скобках строчке oTextPr.SetFontFamily(«Comic Sans MS»). В данном примере для всего документа выбран шрифт Comic Sans MS.
В руководстве «Р7-Офис» собрана библиотека готовых универсальных скриптов. Ознакомиться с ними можно здесь.

Как конвертировать макросы Visual Basic в JavaScript

Макросы, написанные на Visual Basic, можно легко конвертировать в JavaScript, — достаточно заменить в коде некоторые переменные. Рассмотрим конвертацию на примере скрипта для подсчета суммы значений из трех диапазонов ячеек столбца A (от А5 до А105, от А5 до А305, от А5 до А30) и выведения результатов в ячейки столбца В.

Код скрипта на Visual Basic:

Sub Example()

Dim myRange

Dim result

Dim Run As Long

For Run = 1 To 3

Select Case Run

Case 1

result = «=SUM(A5:A105)»

Case 2

result = «=SUM(A5:A305)»

Case 3

result = «=SUM(A5:A30)»

End Select

ActiveSheet.range(«B» & Run) = result

Next Run

End Sub

Этот код можно легко перенести на JavaScript для использования в Р7-Офис». После замены переменных получаем:

(function()

{

for (let run = 1; run <= 3; run++)

{

var result = «»;

switch (run)

{

case 1:

result = «=SUM(A5:A105)»;

break;

case 2:

result = «=SUM(A5:A305)»;

break;

case 3:

result = «=SUM(A5:A30)»;

break;

default:

break;

}

Api.GetActiveSheet().GetRange(«B» + run).Value = result;

}

})();

По такому же алгоритму можно конвертировать любой скрипт Visual Basic в JavaScript для последующего использования в «Р7-Офис».

Бонус: как запустить макрос по кнопке в документе

В табличном редакторе «Р7-Офис» есть возможность настроить запуск макросов по нажатию кнопки. Для этого во вкладке «Вставка» нужно выбрать в меню любую фигуру (например, прямоугольник), вставить ее в табличный документ, а затем нажать на эту фигуру правой кнопкой мыши и выбрать в открывшемся меню функцию «Назначить макрос».

Подведем итоги:

  1. Макросы — отличное решение для автоматизации часто повторяемых операций. Они позволяют исключить ошибки ручного ввода и избавить от рутины.
  2. «Р7-Офис» позволяет использовать макросы для работы с документами разных форматов — текстами, презентациями, таблицами.
  3. Макросы в «Р7-Офис» нельзя скрыть от других пользователей, но можно

установить уровень безопасности запуска макросов.

  1. Особенность макросов для «Р7-Офис» — использование синтаксиса JavaScript. Язык программирования выбран из-за удобства, простоты и кроссплатформенности.
  2. С помощью макросов в «Р7-Офис» можно автоматизировать большинство функций. Примеры многих макросов есть на сайте сервиса.

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

iMacros, иконка

Бывало у Вас такое, что порой надо на нескольких сайтах сделать некие монотонные действия? На нескольких сайтах залогиниться и посмотреть новости (а лучше скопировать их куда-то, чтобы посмотреть офлайн), куда-то каждый день кликнуть, что-то обновить (я, например, ежедневно вношу мелкие, однообразные правки в резюме, чтобы поднять его наверх в поиске) или ввести какие-то данные в формы комментирования или логина для входа, или что-то куда-то с разных ресурсов переписать (ну, допустим, курс доллара Вам в онлайн-блокнотик сегодня нужен). Ну и всякое прочее.. Всё в жизни бывает. Думаю, что сталкивались. Так вот..

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

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

Ну что, поехали осваивать..

  • iMacros: функционал, основные возможности и принцип работы. Автоматизируем действия в интернете

  • Освоение подопытного или что из себя представляет плагин iMacros

  • iMacros: команды макросов и их синтаксис

  • Послесловие

iMacros: функционал, основные возможности и принцип работы. Автоматизируем действия в интернете

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

Вашего покорного слугу, как уже говорилось выше, частенько напрягало вводить одни и те же пароли (даже не смотря на функцию запоминания), забивать однотипные «ФИО-формы» или формы логинов (и т.п.) при веб-серфинге по различным сайтам сети. Всегда хотелось, чтобы под рукой был некий виртуальный помощник, готовый подставить плечо в деле решения постоянно повторяющихся (бытовых) задач и сказать: «Хозяин, хватит делать все самому, предоставь это мне!».

И хочу Вам сказать, что мои поиски такого помощника не были напрасны, ибо решение такое есть и зовется оно плагин iMacros для Firefox. К слову сказать, это даже не плагин, а целый комбайн решений, который можно поистине назвать палочкой-выручалочкой в деле автоматизации многих рабочих процессов web-браузера. Которым я и хочу с Вами поделиться.

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

Итак, замечательный плагин iMacros позволяет/осуществляет:

  • Автоматизировать свою деятельность, записывая и воспроизводя повторяющиеся действия пользователя;
  • Заполнение форм данных, запоминание паролей, которые в интерактивном режиме вводятся в поля;
  • Извлечение, сбор и исследование данных — специальная команда автоматически читает данные с сайта и экспортирует их в CSV-файл, действуя аналогично заполнению форм;
  • Тестирование web-приложений;
  • Автоматический вход в почту или другие часто посещаемые сайты;
  • Автоматическую выгрузку и загрузку — автоматизация загрузки изображений, файлов или целых страниц;
  • Возможность переноса файлов макросов с одного ПК на другой с последующим их воспроизведением;
  • Безопасное хранение паролей с использованием 256-битного алгоритма шифрования;
  • Делиться своими макросами;
  • Сохранять и печатать веб-страницы;
  • Редактировать сохраненные макросы;
  • ..И многое другое.

Да, и еще, кроме всего прочего, этот плагин работает с самыми ходовыми браузерами, а именно, Mozilla Firefox, Google Chrome (и др. на основе Chromium), многострадальным Internet Explorer и, кроме того, не гнушается таких ОС, как Windows, Mac, Linux.

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

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

Есть действия, которые требуют Вашего постоянного участия (ввод логина/пароля авторизации, заполнение формы данных и многое много многое прочее). Так вот, как минимум iMacros берет и записывает все действия, по Вашему желанию, в специальный макрос, который потом пользователь может запустить одним кликом и автоматически выполнить всю цепочку записанных в него операций. Вот и всего делов-то! Удобно же.

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

к содержанию ↑

Освоение подопытного или что из себя представляет плагин iMacros

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

добавление плагина imacros в firefox

После загрузки нажимаем «Установить сейчас» и перезапускаем нашего огненного лиса (ну или лисичку, у кого как).

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

iMacros, процесс активации

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

панель imacros псоле активации

Форма представляет собой две области, одна из которых предназначена для работы с уже готовыми демо-шаблонами (1), а вторая (2) – для создания/работы/редактирования с будущими макросами. Готовые шаблоны содержат список демо-скриптов, которые позволяют разобраться в работе модуля, а это: различные фреймы, фильтры, заполнение полей, табы и т.п.

Вот, например, один из макросов («SavePDF«) запущен на выполнение (см. изображение).

макрос SavePDF

Конечно, на первый взгляд всё кажется  непонятным, да и, отчасти, это так и есть, однако после ознакомления с видеоинструкциями из раздела поддержки становятся понятными механизмы работы со скриптами. Ну и примеры стоит посмотреть, да. В общем, не забывайте про раздел iMacros Support. Если владеете английским, тогда посетите более подробный информационный ресурс с описанием работы iMacros (или он же через вкладку «Редактирование» — «Помощь»). Для тех же, кто не владеет — еще всё впереди, у нас еще будет некое количество статей по этой теме.

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

Итак, кликаем по вкладке «Редактирование», переходим в «Опции» и настраиваем необходимые параметры (см. изображение).

imacros, опции настроек

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

  • Вкладка «General» — поставить скорость воспроизведения в положение «Среднее» (1). Это оптимальный вариант по скорости выполнения макроса. Впрочем, если Вам потребуется более быстрое или медленное воспроизведение, то, как Вы понимаете, это всегда можно изменить;
  • Вкладка «Security» — можно указать необходимость шифрования паролей, которые будут запоминаться плагином. Это нужно для того, чтобы исключить возможность несанкционированного использования макросов, которые находятся на общих сетевых ресурсах. Придумайте основной пароль и введите его в поле «Enter master password..» (2), если необходимо;
  • Изменить (если не устраивают) рабочие папки сохранения для макросов/данных/закачек, вкладка «Path» (3).

делаем настройки в imacros

Теперь окунемся в практику и рассмотрим парочку реальных примеров из жизни.

iMacros: запись и воспроизведение действий
Допустим, нам необходимо разгрести электронный почтовый ящик или оплатить какую-то услугу, но вот незадача — все пароли и явки (регистрационные данные) вылетели из головы или просто вводить их решительно лениво. Что делать?

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

Итак, переходим на web-страницу ресурса, форму которого нам надо заполнить. Допустим, мы хотим попасть на всеми нами любимый  форум проекта [Sonikelf’s Project’s], для чего идем по этому адресу Fорум Sис.Админа и начинаем записывать свои действия путём предварительного нажатия кнопки «Запись» (см. изображение).

iMacros, процесс записи

Примечание:
При клике по кнопке «Запись» вылетит предупреждение – хотим ли мы закрыть все формы до начала записи, нажимаем — «Нет».

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

imacros, процесс записи в работе

Как только мы закончим заполнение форм и нажмем кнопку «Вход«, необходимо будет остановить запись, кнопка «Стоп». Расширение автоматически сохранит нам записанную последовательность действий как новый макрос под названием «#Current». Теперь нам остается только выйти из формы авторизации на форуме, кликнув по кнопке «Выход» и заново зайти, но уже с помощью записанного макроса.

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

iMacros, макрос сформированimacros, макрос записи сработал

Наблюдается интересная картина: мы сидим, ничего не делаем, а кто-то тем временем, используя наш логин и пароль, заходит на форум FS. Что за дела? ;)

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

Опять же, по желанию макрос возможно добавить в закладки браузеров Firefox, Chrome. Созданный макрос можно выбрать из этого выпадающего меню, дабы потом просто щелкать по нему как по вкладке и наблюдать за процессом. Изменив же путь Paths (вкладка «Редакт.» — «Опции») и указав общедоступную сетевую (или обычную) папку, можно делиться макросами с другими пользователями по локальной сети.

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

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

iMacros для браузерных онлайн-игр
Сейчас все популярнее становятся браузерные онлайн-игры. В некоторых из них смысл игры заключается в том, чтобы выполнять определенные (чаще всего однотипные) действия через какой-то заданный промежуток времени. Так вот, чтобы автоматизировать сей процесс, достаточно всего лишь один раз выполнить всю последовательность действий в игре, записать макрос, задать время повторения и передать вожжи управления самому плагину. Кроме того, есть игры, которые приносят реальный доход, т.е., допустим, Вы развиваете персонажа/город и т.п. и получаете определенные цифровые «ништяки» (иногда в виде электронных денег) от спонсора. Так вот, поставьте этот процесс на автопилот и займитесь своими делами.

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

к содержанию ↑

iMacros: команды макросов и их синтаксис

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

  • ADD – добавление переменной. Позволяет также производить вычитание путем добавления отрицательного значения переменной и поддерживает внутренние переменные !VAR1, !VAR2, !VAR3 и !EXTRACT;
  • BACK – команда возврата на предыдущую страницу веб-сайта;
  • CLICK — клик на HTML-элемент с заранее указанными X/Y координатами. Левый верхний угол страницы — нулевое положение системы координат. Необязательный атрибут CONTENT может использоваться для вставки текста в поле ввода. В основном команда используется в тех случаях, когда необходимо нажимать ссылку, название которой меняется, а координаты остаются неизменными;
  • CLEAR – очищает все временные файлы на HDD, в том числе кэш браузера, куки, сохранённые пароли;
  • PAUSE – остановка выполнения макроса до момента, пока пользователь не нажмет кнопку «Продолжить». Команда полезна для отладки скриптов;
  • REFRESH – обновляет текущее окно браузера по аналогии с кнопкой F5;
  • SET – устанавливает пользовательские переменные от !VAR0 до !VAR9 (стандартные встроенные переменные — число, символ, набор символов);
  • TAG — выбирает HTML-элемент из текущего сайта. Путем назначения параметров POS, TYPE, FORM и ATTR задается определение элемента. Если последний является ссылкой, то она будет нажата, т.е. команда TAG произведёт переход. Если выбранный элемент является формой ввода, то содержимое параметра CONTENT будет использовано для заполнения формы;
  • TAB – позволяет сфокусироваться на определенной вкладке браузера;
  • URL – осуществляет переход по заданной ссылке активной вкладки браузера;
  • VERSION – команда (без которой не обходится ни один макрос), указывающая на версию iMacros, с помощью которой он был записан;
  • WAIT — задержка по времени выполнения скрипта. Можно также задать определенный промежуток между командами Imacros-скрипта;
  • – одиночная кавычка, указывающая на комментарий. Начав строку со знака «» все остальное игнорируется.

Мы рассмотрели сами команды, с помощью которых создаются макросы iMacros. Теперь чуть ближе познакомимся с их синтаксисом, дабы у Вас самих была возможность что-либо составить из этих команд и попрактиковаться.

Итак, идем по порядку.

Синтаксис команды ADD

«ADD result_var added_value», здесь:

  • result_var — Одна из четырех внутренних переменных !VAR1, !VAR2, !VAR3 или !EXTRACT;
  • added_value — Значение, которое будет добавлено к result_var

Пример: Вычитание двух переменных.

SET !VAR1 10
ADD !VAR1 -2
=> Content of !VAR1 is 8.

Синтаксис команды URL

«URL GOTO=нужный_URL»

Пример: Открыть два сайта (sonikelf.ru/forum и sonikelf.info), причем второй сайт в новой вкладке.

Макрос:
‘ Открытие 1-сайта в первой вкладке
URL GOTO=https://sonikelf.ru/forum
‘ Открытие второй вкладки
TAB OPEN
‘ Переход на вторую вкладку
TAB T=2
‘ Загрузка 2-сайта
URL GOTO=https://sonikelf.info

Пример: Открыть локальный файл с сетевого диска E

Макрос:
URL GOTO=file:///E:/image/icon.jpg
URL GOTO=file:///E:/folder/index.html

Синтаксис команды CLICK

«CLICK X=n Y=m [CONTENT=some_content]», здесь:

  • X — Определяет горизонтальную координату элемента на сайте, который должен быть нажат;
  • У — Определяет вертикальную координату элемента на сайте, который должен быть нажат;
  • CONTENT — Указывает значение, которое отправляется при нажатии элемента.

Координаты (X/Y) нужного места, определяются с помощью специализированного софта.

Пример: Надо осуществить переход на сайт sonikelf.ru, найти в строке поиска необходимую фразу, например «windows 8» и осуществить поиск статей, соответствующих данному запросу.

Макрос:
‘ Переход на сайт
URL GOTO=https://www.sonikelf.ru/
‘ Ввод в строку поиска необходимой фразы. (Координаты вычислены с помощью спецсофта).
CLICK X=145 Y=350 CONTENT=Windows8система
‘ Нажатие кнопки «поиск»
CLICK X=280 Y=350

Синтаксис команды SET

«SET var value», здесь:

  • var — Имя встроенной переменной, от !VAR0 до !VAR9, или переменной определенной пользователем;
  • value – Присваиваемое значение

Пример: Установить значение «Заметки Сис.Админа» в переменную SET, а также цифровое значение задержки страницы, равное 100 секунд.

Макросы:

1. SET !VAR1 «Заметки Сис.Админа»;
2. SET !TIMEOUT_PAGE 100

Синтаксис команды TAB

«TAB (T=n|OPEN|CLOSE|CLOSEALLOTHERS)», здесь:

  • n – порядковый номер нужной вкладки;
  • CLOSE – закрытие текущей вкладки;
  • OPEN — открытие новой вкладку в фоновом режиме;
  • CLOSEALLOTHERS — закрытие все вкладкок, кроме активной.

Пример: Открыть сайт во второй вкладке

Макрос:
‘ Открытие веб-страницы в первой вкладке
URL GOTO=https://www.sonikelf.ru/forum
‘ Открытие новой вкладки
TAB OPEN
‘ Выбор открытой вкладки
TAB T=2
‘ Загрузка новой страницы
URL GOTO=https://www.sonikelf.ru
‘ Закрытие второй вкладки
TAB CLOSE
TAB T=1

Синтаксис команды TAG

Пример: Загрузить файл «Filesonikelf.txt», расположенный на диске С.

Макрос:

TAG POS=1 TYPE=INPUT:FILE FORM=NAME:frm_upload ATTR=NAME:uploaded_file CONTENT=c:DownloadFilesonikelf.txt

Команда TAG позволяет запускать события, используя для этого значение EVENT: event_name для параметра CONTENT.

Пример: процесс загрузки изображения по URL-адресу

Макрос:
URL GOTO= https://sonikelf.ru/attach/img/1342186216-clip-21kb.jpg
ONDOWNLOAD FOLDER=* FILE=*

‘Загрузка изображения с помощью одного из следующих способов:
TAG POS=1 TYPE=IMG ATTR=HREF:https://*.jpg CONTENT=EVENT:SAVEITEM
‘TAG POS=1 TYPE=IMG ATTR=HREF:https://*.jpg CONTENT=EVENT:SAVEPICTUREAS

Здесь:

  • SAVEITEM — событие для сохранения объектов, в основном изображении, с любого веб-сайта. Для указания папки загрузки файла используется команда ONDOWNLOAD (с ее помощью определяется местоположение и имя загружаемого файла);
  • SAVEPICTUREAS — Сохранить изображение как..
  • SAVETARGETAS — Сохранить объект как..
  • ATTR=HREF: some_url (https://*.jpg) – выбор ссылки по заданному URL

Синтаксис команды VERSION

«VERSION BUILD=», здесь:

  • BUILD — Указывает версию и номер сборки.

Когда происходит запись макроса в iMacros, рекордер добавляет к нему атрибут «RECORDER=FX», который не несет никакой командно-смысловой нагрузки.

Пример:

VERSION BUILD=7031111 RECORDER=FX,

Версия 7.03 (Build 1111), записана при помощи Firefox.

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

А пока, как минимум изучите возможность записи действий, попробуйте что-то редактировать и тд и тп. В общем, инструмент полезный, так что есть смысл осваивать.

к содержанию ↑

Послесловие

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

Результатом же всех этих стараний, если Вы таки решитесь их проделать станет сэкономленное время и автоматизация многих повседневно-рутинных операций при работе с интернетом и браузером. А это, в свою очередь, означает, что высвободившееся время можно потратить с пользой, например чаще на изучение сайта Заметки Сис.Админа и читать больше интересных, полезных статей для своего развития :) ;)

До новых встреч, уважаемые читатели! Как и всегда, будем рады услышать Ваши дополнения, вопросы, отзывы и всё такое прочее. Пишите в комментариях. Особенно вопросы, ибо, боюсь, что их таки будет прилично :)

PS: За существование данной статьи спасибо члену команды 25 КАДР

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

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

Так же рассказать вам как можно записывать макросы на iMacros для того чтобы не качать чужие или не рабочие макросы. Или же сделать макрос под себя.

Для примера запишем макрос для сайта addmefast.com (На этом сайте можно накручивать лайки, репосты и подписчиков в социальных сетях или же на Youtube)

1) Нам пригодится Mozilla Firefox.
2) После установки Firefox, загружаем сам плагин iMacros
3) Теперь кликаем сюда:

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

4)Потом переходим во вкладку Запись и кликаем Record options

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

5) Ставим галочку Use X/Y position и нажимаем OK

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

6) После выполнения всех этих действий мы переходим на наш сайт addmefast и начинаем запись. (И да кстати мы там должны быть зарегистрированы. Советую сразу зайти на Gmail или facebook, можно и в twitter)

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

Кстати перед началом записи советую закрыть все лишние вкладки и оставить только нужную нам вкладку, и нужно открыть Firefox полном экране.
7) Теперь мы должны нажимать именно те позиции экрана которые программ должна запомнить и выполнить.
Например, попробуем сделать скрипт для YouTube Subscribe (мы должны быть зарегистрированы на ютуб)
8) После того как нажали на кнопку запись, нажимаем Youtube Subscribe и Subscribe

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

Подписываемся на канал и закрываем вкладку. Как самому записывать скрипт на iMacros

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

По завершении всех наших действий мы нажимаем Стоп

8) После нажатия стоп должен создаться файл с названием #Current.iim

9) Нажимаем правой кнопкой на файл #Current.iim и нажимаем редактировать.
У вас должно получиться что то вроде этого

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

10) Теперь нам нужно вставить между каждым кликом WAIT SECONDS=N, то есть скрипт перед каждым нажатием на кнопку будет ждать N сек.

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

11) Перед TAB CLOSE и после TAB CLOSE лучше поставить как можно больше времени чтобы поинты засчитывались.

12) Теперь нажимаем Save & Close. Выбираем #Current.iim
Воспр., и ставим Повторить макрос на количество раз сколько нам нужно чтобы программа повторила, я введу 99999 и нажимаем Воспр.(Цикл)

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

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

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

Еще, для удобства, можете отключить звук в FireFox

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

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

Как написать скрипт с помощью Макроса, Контекстного меню и Помощника кода.

Напишем с помощью Макроса, Контекстного меню и Помощника кода скрипт, который будет разбирать выдачу Яндекса, по заданным ключевым запросам.

Исходная задача.

У нас есть файл с ключевыми словами keys.txt в формате: одна строка — одна ключевая фраза, то есть он выглядит так:

доска объявлений
доска бесплатных объявлений
подать объявление
объявление бесплатно
доска бесплатный
и т.д.

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

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

1. Чтение из файла поисковых запросов.
2. Ввод поисковых запросов в поле поиска Яндекса.
3. Разбор поисковой выдачи.
4. Сохранение результатов в файл.

Действия на странице Яндекса мы можем записать с помощью Макроса или Контекстного меню, а работу файлом выполним с помощью Помощника кода.

C чего начать?

В папке My Scripts создадим новую папку для нашего скрипта. Адрес к папке My Scripts будет примерно такой C:XWeb StudioHuman Emulator StudioMy Scripts. Всё зависит от того куда вы установили саму программу. Создаём в ней папку yandex_parser.
Обновляем в панели Быстрый старт дерево и видим в нём созданную нами папку.

Панель Быстрый старт

Панель Быстрый старт

Далее создаём новый php скрипт.

Создать новый php скрипт

Создать новый php скрипт

Далее через контекстное меню сохраняем наш скрипт в папку yandex_parser с именем yandex_parser.

сохраняем наш скрипт в папку

сохраняем наш скрипт в папку

Теперь в самом скрипте удалим всё лишнее и отредактируем путь к папке с шаблонами. После всех наших действий в папке yandex_parser будет лежать скрипт yandex_parser.php, с кодом который будет выглядеть так:

<?php

$xhe_host = «127.0.0.1:7022»;

// The following code is required to properly run XWeb Human Emulator

require(«../../Templates/xweb_human_emulator.php»);

// Quit

$app->quit();

?>

Теперь в папкe yandex_parser создадим папку data и скопируем в неё наш файл с ключевыми словами keys.txt. А также добавим папку res, в которую будем писать файл с результатами сбора.

папка со скриптом

папка со скриптом

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

Запись с помощью Макроса.

С помощью Макроса мы запишем действия ввода строки в поле поиска и нажатие на кнопку поиск.

Для того чтобы писать в текущий скрипт в настройках Макроса нужно убрать галочку Создавать новый скрипт.
Ставим каретку курсора в скрипте yandex_parser.php в то место куда мы будем добавлять наш код, переходим в браузере Хумана на yandex.ru и после этого включаем Макрос на запись из главного меню.

включаем Макрос на запись из главного меню

включаем Макрос на запись из главного меню

В месте где была установлена каретка курсора в скрипте добавиться строка $browser->navigate(«https://yandex.ru/»);

Теперь кликаем на поле ввода поискового запроса и набираем там любой текст, к примеру humanemulator. И нажимаем на кнопку Найти или на Enter.

В наш скрипт будет добавлен следующий код:

$input->get_by_id(«text»)->focus();

$input->get_by_id(«text»)->send_mouse_move(114,25);

$input->get_by_id(«text»)->send_mouse_click(114,25);

sleep(1);

$keyboard->send_input(«humanemulatorn»);

Подробно про использование Макроса можно прочитать в статье Запись Действий пользователя в браузере.

Добавление кода с помощью Контекстного меню.

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

После перехода в браузере Хумана на yandex.ru, кликаем правой кнопкой мыши на корешке закладки в нижней части панели браузера и выбираем в нём пункт меню $browser -> Навигация -> $browser->navigate(«about:blank»); В скрипте в месте где установлена каретка курсора добавиться строка $browser->navigate(«about:blank»);.

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

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

Заменяем «about:blank» на «https://yandex.ru/». Далее правой кнопкой мыши кликаем на поле ввода поискового запроса и выбираем в открывшемся контекстном меню пункт Эмулировать клавиатуру -> $input->send_keyboard_input_by_name(«text»,»», «20:40»);

выбираем в открывшемся контекстном меню пункт

выбираем в открывшемся контекстном меню пункт

В скрипте у нас будет следующий код:

$browser->navigate(«https://yandex.ru/»);

$input->send_keyboard_input_by_name(«text»,«», «20:40»);

Видео про использование контекстного меню на нашем канале.

Работа с Помощником кода.

Теперь мы автоматизируем все действия с файлом с помощью Помощника кода. Для начала откроем Помощник кода если он у вас ещё не открыт. Главное меню программы пункт Вид -> Панель Помощник Кода. Обновим её что бы увидеть все доступные нам действия в Помощнике кода. Для этого нажимаем на иконку в верхней части панели:

нажимаем на иконку в верхней части панели

нажимаем на иконку в верхней части панели

Для начала нам нужно прочитать ключевые запросы из файла. Выбираем пункт в дереве Текстовый Файл -> Работа с файлом -> прочитать файл в массив.

Выбираем пункт в дереве Помощника кода

Выбираем пункт в дереве Помощника кода

Перед тем как выбрать этот пункт дерева установим каретку курсора в редакторе скрипта выше кода который у нас уже там есть добавить в скрипт следующий код:

// получить в массив данные из файла

// каждая строка элемент массива

$arr = file(«путь к файлу»,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

Нам остаётся только заменить в этом коде «путь к файлу» на «data/keys.txt». Теперь для того что бы ввести все поисковые запросы из файла в поле поиска Яндекса нам нужно на основе нашего массива организовать цикл.

Для этого в дереве Помощник Кода выберем пункт Конструкции -> Циклы -> цикл по всем элементам. В скрипт добавиться следующий код:

// цикл по всем элементам

foreach ($arr as $value)

{

// действия

}

Заменим // действия на код который мы записали с помощью Макроса или Контекстного меню и вставим в функцию $input->send_keyboard_input_by_name(«text»,»», «20:40»); ввод $value, так что бы на конце у нас был «n». В итоге у нас получиться следующий скрипт:

// получить в массив данные из файла

// каждая строка элемент массива

$arr = file(«data/keys.txt»,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// цикл по всем элементам

foreach ($arr as $value)

{

$browser->navigate(«https://yandex.ru/»);

$input->send_keyboard_input_by_name(«text»,$value.«n», «20:40»);

}

Можем запустить скрипт на выполнение для проверки всё ли мы сделали верно. Скрипт вбивает фразу в поле поиска и выдаёт поисковые результаты. Теперь наша задача сохранить поисковые результаты в файл. Для этого вновь воспользуемся контекстным меню. Кликаем на ссылку в поисковой выдаче правой кнопкой мыши. Главное что бы этот элемент точно был anchor, а не div или span. В контекстном меню для интересующих нас ссылок выбираем следующий пункт меню anchor -> $anchor->get_all_hrefs_by_attribute(«class»,»link link_theme_outer path__it»,false,»<br>»);

В контекстном меню для интересующих нас ссылок выбираем пункт меню

В контекстном меню для интересующих нас ссылок выбираем пункт меню

Это функция возвращает нам строку со всеми href  разделёнными <br> всех ссылок, у которых class=link link_theme_outer path__it. Немного подправим наш код, добавив к только что добавленной функции $str= в итоге наш код будет выглядеть так:

// получить в массив данные из файла

// каждая строка элемент массива

$arr = file(«data/keys.txt»,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// цикл по всем элементам

foreach ($arr as $value)

{

$browser->navigate(«https://yandex.ru/»);

$input->send_keyboard_input_by_name(«text»,$value.«n», «20:40»);

$str = $anchor->get_all_hrefs_by_attribute(«class»,«link link_theme_outer path__it»,false,«<br>»);

}

Эту строку уже можно записывать в файл, заменив перед этим в функции $anchor->get_all_hrefs_by_attribute(«class»,»link link_theme_outer path__it»,false,»<br>»); <br> на «n» для того что бы каждый адрес записался в файл с новой строки. Если мы желаем убрать лишнее или выполнить какие то другие действия с полученными адресами, то нам необходимо полученную строку разбить в массив. Для этого воспользуемся снова Помощником кода. Выберем пункт дерева Конструкции -> Массивы -> разбить строку на элементы массива. В наш скрипт добавиться следующий код:

// разбить строку на элементы массива

// используя как разделитель ;

$arr = explode(«;»,$str)

Заменим «;» на «<br>» и переименуем массив $arr в $arr2, так как выше в скрипте мы уже работаем с массивом $arr.
Для того что бы перед записью посмотреть содержимое массива выведем это содержимое в панель отладки. В этом нам снова поможет Помощник кода. Выбираем в дереве Конструкции -> Массивы -> показать массив в панели отладки. в наш скрипт добавить следующий код:

// показать массив в панели отладки

print_r($arr);

заменяем $arr на $arr2. Код нашего скрипта будет такой:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

// получить в массив данные из файла

// каждая строка элемент массива

$arr = file(«data/keys.txt»,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// цикл по всем элементам

foreach ($arr as $value)

{

$browser->navigate(«https://yandex.ru/»);

$input->send_keyboard_input_by_name(«text»,$value.«n», «20:40»);

$str=$anchor->get_all_hrefs_by_attribute(«class»,«link link_theme_outer path__it»,false,«<br>»);

// разбить строку на элементы массива

// используя как разделитель ;

$arr2 = explode(«<br>»,$str);

// показать массив в панели отладки

print_r($arr2);

}

Запускам скрипт на выполнение. В панели отладки будет следующий текст:

Array

(

[0] => http://yabs.yandex.ru/count/2lsl7Pu6I_C50Ae1CGIRl5i00000E0H00aW2OBm8Q09m-hwqhms00PUlcJ-80U6flyqDa06ajFg91PW1ghI2eWUu0OpGoCS5m06Y0TW1bBt-0-01hExN0-W1-W6W0e2uYm7O0WBm0lhZfQ43-0AGyOBcbRA-gxy1c0EFWpUe0mgm0mIu1Fy1w0JVW07u1DZd7eW5sESUa0MbWZoW1OwV2QW5qUe7i0NHwWUu1P2X3y05fO8yo0MGeG_W1GNm1G6O1hg0zlq2e0R-3gW6_Wx91ZI_8czF17Y7qGOqKrZcJmHuXza60000y7W0002f1nKPgAyv3eDIi0U0W9Wiq0S2u0U62l47Z9y5VQRUycRu1m60207G28I2W860a802u0Y0t4M02W712W0000000F0_s0e2u0g0YNhu2i3y5QeB4BNENRyL6G00eWfTfCft1G3P2nKPgAyv3eDIw0lOvnxm2mRe30lW3G7o3G3w3G223W293lOeN8_2zUm_a0x0X3sO3hJ-YldsYO6yXm6W3i24FR0E0TWE1Q4F00000000y3_P3m0000000F0_

[1] => http://yabs.yandex.ru/count/2lsl7Pu6I_C50Ae1CGIRl5i00000E0H00aW2OBm8Q09m-hwqhms00PUlcJ-80U6flyqDa06ajFg91PW1ghI2eWUu0OpGoCS5m06Y0TW1bBt-0-01hExN0-W1-W6W0e2uYm7O0WBm0lhZfQ43-0AGyOBcbRA-gxy1c0EFWpUe0mgm0mIu1Fy1w0JVW07u1DZd7eW5sESUa0MbWZoW1OwV2QW5qUe7i0NHwWUu1P2X3y05fO8yo0MGeG_W1GNm1G6O1hg0zlq2e0R-3gW6_Wx91ZI_8czF17Y7qGOqKrZcJmHuXza60000y7W0002f1nKPgAyv3eDIi0U0W9Wiq0S2u0U62l47Z9y5VQRUycRu1m60207G28I2W860a802u0Y0t4M02W712W0000000F0_s0e2u0g0YNhu2i3y5QeB4BNENRyL6G00eWfTfCft1G3P2nKPgAyv3eDIw0lOvnxm2mRe30lW3G7o3G3w3G223W293lOeN8_2zUm_a0x0X3sO3hJ-YldsYO6yXm6W3i24FR0E0TWE1Q4F00000000y3_P3m0000000F0_

[2] => https://reklama-sev.com/

[3] => https://reklama-sev.com/advt_categories

[4] => https://youla.ru/

[5] => https://youla.ru/sevastopol

и т.д.

)

Из вывода в панели отладки видно, что ссылки на рекламные сайты начинаются с http://yabs.yandex.ru/count/ уберём эти ссылки при записи адресов в файл. Запись в файл у нас будет как добавление каждой строки из массива $arr2 с адресами в файл res/res.txt.
Опять воспользуемся для этого Помощником кода. Сначала добавим цикл для массива $arr2. Для этого выберем опять пункт дерева Конструкции -> Циклы -> цикл по всем элементам. Заменим в этой конструкции $arr на $arr2 и $value на $value2. Вместо строки // действия вставим добавление строки в файл. Для этого выберем в дереве Помощника кода пункт Текстовый файл -> Работа с файлом -> добавить строку к файлу.
В скрипт у нас добавиться код:

// добавить строку в текстовый файл

$textfile->add_string_to_file(«c:/text.txt», «1234»);

Заменим в этой функции «c:/text.txt» на «res/res.txt» и «1234» на $value2.«n», что бы функция в скрипте выглядела так:

// добавить строку в текстовый файл

$textfile->add_string_to_file(«res/res.txt», $value2.«n»);

Теперь добавим условие перед добавлением строки в файл, что бы не писать в него адреса рекламных сайтов. Выбираем в Помощнике кода Конструкции -> Ветвления -> выполнение по условию. В скрипт добавиться следующий код:

// условие

if ($varConditonal)

{

// действия

}

заменяем // действия на

// добавить строку в текстовый файл
$textfile->add_string_to_file(«res/res.txt», $value2.»n»);

а $varConditonal на условие strpos($value2,»http://yabs.yandex.ru/count/»)===false так что в итоге наш код будет:

// условие

if (strpos($value2, «http://yabs.yandex.ru/count/»)===false)

{

// добавить строку в текстовый файл

$textfile->add_string_to_file(«res/res.txt», $value2.«n»);

}

а весь скрипт будет выглядеть как:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

// получить в массив данные из файла

// каждая строка элемент массива

$arr = file(«data/keys.txt»,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// цикл по всем элементам

foreach ($arr as $value)

{

$browser->navigate(«https://yandex.ru/»);

$input->send_keyboard_input_by_name(«text»,$value.«n», «20:40»);

$str=$anchor->get_all_hrefs_by_attribute(«class»,«link link_theme_outer path__it»,false,«<br>»);

// разбить строку на элементы массива

// используя как разделитель ;

$arr2 = explode(«<br>»,$str);

// показать массив в панели отладки

print_r($arr2);

// цикл по всем элементам

foreach ($arr2 as $value2)

{

    // условие

    if (strpos(«http://yabs.yandex.ru/count/»)===false)

    {

      // добавить строку в текстовый файл

      $textfile->add_string_to_file(«res/res.txt», $value2.«n»);

    }

}

}

Если запустить скрипт на выполнение то в папке res появится файл res.txt с адресами с первой страницы выдачи Яндекса. Как видно из статьи Макрос, Контекстное меню и Помощник кода существенно упрощают написание скриптов автоматизации под свои задачи. Многие действия будут повторяться из скрипта в скрипт и разобравшись один раз с этими действиями вы легко сможете их использовать в других скриптах.

Любые вопросы по данной статье, Макросу, Контекстному меню или Помощнику кода можно задать у нас на форуме.

Посмотреть видео уроки на нашем канале в youtube.

Введение

Всем нам приходится — кому реже, кому чаще — повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую «рутинную составляющую» — одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.

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

В принципе, существует великое множество языков программирования (Pascal, Fortran, C++, C#, Java, ASP, PHP…), но для всех программ пакета Microsoft Office стандартом является именно встроенный язык VBA. Команды этого языка понимает любое офисное приложение, будь то Excel, Word, Outlook или Access.

Способ 1. Создание макросов в редакторе 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)



    macro1.png:

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

macro2.png

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

  • Обычные модули — используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert — Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:

    macro3.png

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

    macro4.png

  • Модуль листа — доступен через Project Explorer и через контекстное меню листа, т.е. правой кнопкой мыши по ярлычку листа — команда Исходный текст (View Source). Сюда записывают макросы, которые должны выполняться при наступлении определенных событий на листе (изменение данных в ячейках, пересчет листа, копирование или удаление листа и т.д.)

    macro5.png

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

macro6.png

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

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

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

Способ 2. Запись макросов макрорекордером

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

  • Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу — запись останавливается.
  • Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
  • Если во время записи макроса макрорекордером вы ошиблись — ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) — во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.

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

  • в Excel 2003 и старше — выбрать в меню Сервис — Макрос — Начать запись (Tools — Macro — Record New Macro)
  • в Excel 2007 и новее — нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

macro7.png

  • Имя макроса — подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
  • Сочетание клавиш — будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис — Макрос — Макросы — Выполнить (Tools — Macro — Macros — Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
  • Сохранить в… — здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
    • Эта книга — макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
    • Новая книга — макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
    • Личная книга макросов — это специальная книга Excel  с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording).

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

Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или — в старых версиях Excel — через меню Сервис — Макрос — Макросы (Tools — Macro — Macros):

macro8.png

  • Любой выделенный в списке макрос можно запустить кнопкой Выполнить (Run).
  • Кнопка Параметры (Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
  • Кнопка Изменить (Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

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

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

Кнопка на панели инструментов в Excel 2003 и старше

Откройте меню Сервис — Настройка (Tools — Customize) и перейдите на вкладку Команды (Commands). В категории Макросы легко найти веселый желтый «колобок» — Настраиваемую кнопку (Custom button):

macro9.gif

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

macro10.gif

Кнопка на панели быстрого доступа в Excel 2007 и новее

Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar):

macro11.png

Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:

macro12.png

Кнопка на листе

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

  • В Excel 2003 и старше — откройте панель инструментов Формы через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms)
  • В Excel 2007 и новее — откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer) 

Выберите объект Кнопка (Button):

macro13.png

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

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

Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция — только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert — Module и введем туда текст нашей функции:

macro14.png

Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка — Функция) в категории Определенные пользователем (User Defined):

macro15.png

После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

macro16.png

Понравилась статья? Поделить с друзьями:
  • Как написать скрипт на javascript
  • Как написать скрипт на java
  • Как написать скрипт для фотошопа
  • Как написать скрипт для установки программ
  • Как написать скрипт для трейдингвью