Макросы VBA в Excel. VBA парсер погоды в качестве примера

Хотите верьте, хотите – нет, а дело было так…

В своей работе на протяжении многих лет мне приходилось для самых разнообразных целей (важных и не очень) пользоваться макросами VBA в Excel.


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

Не долго чесав репу, по обыкновению, решил применить комплексный подход: Так как программер я не профессиональный, подготовительную часть работы по забору информации с сайта произвел вручную. Ну не делать же бесплатный парсер сайтов, чтобы воспользоваться им только один раз для того, чтобы архив погоды скачать с погодного сайта России или погодного сайта Украины?

Ресурс, с которого я брал журнал погоды гисметео, находится здесь:http://www.gismeteo.ru/diary/
Формат, в который помещались первичные данные, – один файл Excel.Имена листов файла соответствуют году и месяцу, за который копируется журнал. Пример исходных данных для обработки макросом VBA в Excelсмотрите на скриншоте ниже.

 

Excel - исходные данные для журнала погоды
Excel — исходные данные для журнала погоды

Лист для форматирования результатов с помощью макроса VBA

Excel - результирующий лист для журнала погоды
Excel — результирующий лист для журнала погоды

Алгоритм, по которому будет работать разборка данных для формирования моего журнала погоды гисметео:

  1. Объявляем необходимые переменные:

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

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

  3. Организуем примитивный цикл для обработки всех данных:

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

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

Комментарий о “Макросы VBA в Excel. VBA парсер погоды в качестве примера

  1. Pingback: Как выполнить gem install saas через прокси - Архив системного администратора

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

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

*

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.