Напоминание

АВТОМАТИЗАЦИЯ В MICROSOFT EXCEL ПРИ ПОМОЩИ VBA VISUAL BASIC APPLICATION


Автор: Шайдуллина Динара Ташеновна
Должность: преподаватель кафедры асу
Учебное заведение: Военно-инженерного института радиоэлектроники и связи МО РК
Населённый пункт: города Алматы
Наименование материала: статья:
Тема: АВТОМАТИЗАЦИЯ В MICROSOFT EXCEL ПРИ ПОМОЩИ VBA VISUAL BASIC APPLICATION
Раздел: высшее образование





Назад




Д.Т.ШАЙДУЛЛИНА

преподаватель кафедры АСУ Военно-инженерного

института радиоэлектроники и связи, город Алматы

АВТОМАТИЗАЦИЯ В MICROSOFT EXCEL ПРИ ПОМОЩИ VBA

(VISUAL BASIC APPLICATION)

Аннотация

Статья рассматривает применение языка программирования Visual

Basic for Applications (VBA) для тех задач, с которыми можно столкнуться

при внедрении нового программного обеспечения на крупном предприятии.

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

программирования VBA.

Ключевые

слова:

макрос,

планово-предупредительные

ремонт,

ремонтная сложность, трудоемкость ремонтных работ

Microsoft Excel имеет встроенный язык программирования — Visual

Basic for Applications (VBA). Этот язык позволяет создавать приложения,

которые доступны и выполняются средствами Microsoft Office. Это могут

быть

разнообразные

аналитические

программы,

финансовые

системы,

программы учета кадров и т. д. Также VBA позволяет решать конкретные

локальные и глобальные задачи.

VBA – это сочетание больших возможностей с простотой изучения и

использования. Одним из главных достоинств VBA является использование

этого языка программирования во всех офисных приложениях Microsoft и

связь между ними.

VBA (Visual Basic for Applications) — это упрощенная версия Visual

Basic,

встроенная

в

множество

продуктов

линейки

Microsoft

Office.

Она

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

требуется устанавливать различные IDE — всё, включая отладчик, уже есть в

Excel.

Еще при помощи Visual Studio Tools for Office можно писать макросы

на C# и также встраивать их. Спасибо, FireStorm.

Сразу скажу — писать на других языках (C++/Delphi/PHP) также

возможно, но требуется научится читать, изменять и писать файлы офиса —

встраивать в документы не получится. А интерфейсы Microsoft работают

через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием

COM.

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

Любой

макрос

это

последовательность

действий,

записанная

под

определенным

именем.

Если

при

работе

с

Microsoft

Excel

возникает

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

операций

(например,

сложное

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

текущей

ячейки

или

добавление новой строки с заполнением некоторых ее ячеек формулами), то

можно записать эти действия, а затем воспроизводить их столько раз, сколько

потребуется.

Записанный

макрос

можно

вызывать

для

выполнения

с

помощью

специального диалогового окна или при помощи комбинации клавиш. Кроме

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

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

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

результату.

Как

уже

было

сказано

ранее

все

приложения

Microsoft

Office

поддерживают язык программирования Visual Basic for Applications (VBA). В

распоряжении разработчика VBA-приложения большое количество объектов,

коллекций, инструментов, возможностей настроек, позволяющие в различной

степени программно настроить приложение. Важнейшим достоинством VBA

является возможность объединять любые приложения Microsoft Office для

решения практически любых задач по обработке информации. В этом смысле

Microsoft Office можно считать системой программирования, подобной C++,

Delphi и т.д.

К положительным особенностям VBA можно отнести то, что он очень

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

среде Windows. Этому способствует большое распространение продуктов

Microsoft

Office,

простота

понимания

и

использования

языка

программирования

VBA,

интуитивно

понятная

интегрированная

среда

редактора

Visual

Basic,

наличие

огромного

количества

объектов.

Более

глубокие

знания

VBA-программирования

позволят

решать

практически

любые задачи: от автоматизации создания простых документов и рутинных

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

сетевых СУБД [1, с. 3].

Недостатком

VBA

являются

проблемы

с

совместимостью

разных

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

кода,

но

многие

продукты

позволяют

использовать

шифрование

кода

и

установку пароля на просмотр.

2. Постановка реальной задачи

Имеется крупное промышленное предприятие, на котором в недавнем

времени была установлена корпоративная информационная система (КИС). В

ее

основе

лежит

автоматизация

всех

бизнес-процессов

на

данном

промышленном предприятии. В состав этой КИС входят многочисленные

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

другими системами, применяемыми на предприятии. Конечно же, как и во

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

так и локальные проблемы. Так и произошло в этом случае.

Возьмем

для

примера

один

из

модулей

модуль

«Планово-

предупредительные ремонты» (ППР). Данный модуль позволяет вести учет

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

вести

фактические

цифры

по

трудоемкости

работ,

учитывать

простои

оборудования и т.д. Основой этого модуля являются – годовые и месячные

графики ППР. Данные графики содержат в себе следующую информацию:

1) список оборудования с указанием его характеристик и следующих

параметров:

- ремонтная сложность выполнения работ;

- группа ремонтной сложности;

- виды ремонтов в месячной разбивке;

- виды обслуживания и ремонтов;

-

трудоемкость

по

видам

работ,

рассчитанная

по

каждой

единице

оборудования.

2) итоговые суммы по каждой единице и общая сумма по ремонтной

бригаде.

Графики

ППР

составляются

для

ремонтных

цехов.

Каждый

ремонтный

цех

имеет

не сколько

ремонтных

бригад,

которые

специализируются на определенном виде оборудования и на определенном

цехе. Поэтому таких бригад бывает очень много, и если возникают какие-

либо проблемы или меняется стандарт представления данных, то изменения

касаются всех этих бригад.

Стандартный функционал внедренной КИС не обеспечивал полный

набор функций и процедур для обеспечения целостности работы планово-

предупредительных

ремонтов

на

предприятии.

Доработка

модуля

силами

производителя КИС требовала большого количества времени. А для того,

чтобы

исправить

эту

недоработку

силами

отдела

корпоративной

информатизации

предприятия

пришлось

бы

полностью

перерабатывать

функционал, что тоже требует большого количества времени и человеческих

ресурсов. Поэтому было предложено временное решение – использовать язык

программирования VBA для решения поставленных задач.

Теперь рассмотрим сами задачи, которые необходимо было решить:

1) применение понижающих коэффициентов, а также округление до

сотых долей трудоемкости работ, как в годовых, так и в месячных графиках

ППР;

Данная

трудоемкость

напрямую

связана

с

заработной

платой

работников

ремонтных

цехов

и

поэтому

она

должна

быть

приведена

в

соответствие;

2) графики ППР должны быть представлены в том виде, которое

прописано в стандарте по ремонту и обслуживанию оборудования;

3) формирование обязательных номенклатур на основании месячных

графиков

ППР.

По

новому

стандарту

предприятия

«Планово-

предупредительный

ремонт

оборудования.

Формирование

и

выполнение

плана-графика ППР» было введено в действие формирование ежемесячно

обязательных номенклатур на ремонт оборудования по ремонтным цехам.

Это те виды ремонтов, которые в первую очередь должны быть выполнены,

чтобы не допустить простоев оборудования. Эти виды ремонтов, а также их

трудоемкость формируются из ремонтных бригад по ремонтным цехам. А как

уже было сказано выше, их довольно много.

Все эти операции, выполняемые специалистами в данной области,

занимают

довольно

большое

количество

времени.

Поэтому

доработка

поставленных задач с помощью макросов VBA должны была снизить время

их

исполнения,

а

также

снизить

трудоемкость

выполнения

рутинных

операций.

3.

Результат

использования

языка

программирования

VBA

для

реализации поставленной задачи

Макрос — это последовательность команд и функций, хранящаяся в

модуле Visual Basic. Ее можно запускать каждый раз, когда необходимо

выполнить данную задачу.

При записи макроса Microsoft Excel сохраняет информацию о каждом

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

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

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

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

отдельной библиотеке макросов для простоты работы с ними [2].

Для редактирования макросов используется редактор Visual Basic. Для

создания и редактирования макросов для электронных таблиц необходимо

знание языка программирования Visual Basic. Редактор Visual Basic.

После

написания

всех

необходимых

функций

и

процедур,

было

реализовано

изменение

интерфейса

печатной

форм

также

с

помощью

редактора

Visual

Basic

в

этом

же

макросе.

И

в

конце

были

добавлены

выводимые диалоговые окна для определения количества листов в книге,

определения цеха и месяца расчета.

Описание

последовательности

операций

при

выполнения

макроса

«Понижающие коэффициенты»:

1.

Указание

количество

листов

в

книге,

цеха,

месяца

расчета

в

диалоговых окнах.

2. Нахождение столбца трудоемкости, вида ремонта и общего числа

столбцов.

3. Получение обозначения бригады.

4.

Получение

понижающих

коэффициентов

по

видам

ремонта

из

соответствующего файла.

5. Пробег по столбцу трудоемкости и применение коэффициентов.

6. Суммирование по видам работ и округление до сотых долей.

7. Удаление лишней информации с листов.

Описание

последовательности

операций

при

выполнения

макроса

«Обязательная номенклатура»:

1.

Указание

количество

листов

в

книге,

цеха,

месяца

расчета

в

диалоговых окнах.

2. Нахождение столбца с видами ремонтов.

3. Поиск капитальных, средних и текущих ремонтов, а также нового

оборудования.

4. Копирование на отдельный лист необходимых полей в соответствии

с формами, приведенными в стандартах предприятия.

5. Приведение печатной формы к форме, обозначенной в стандартах

предприятия.

Допустим, Вам досталась достаточно сложная математическая задача

по работе с большим количеством данных, причем задача промышленного

назначения

и

должна

быть

выполнена

на

ПЛК.

Данную

задачу

проще

разработать на языках C# или Visual Basic Application – в итоге рождается

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

по аппроксимации данных в большом нелинейном массиве и нахождении

коэффициентов

линейной

функции

при

условии

приращения

к

прямой.

Бывают

и

намного

более

простые

задачи,

которые

также

удобно

визуализировать в программе MS EXCEL при помощи языка VBA, например,

отчеты.

Написание

программ

на

VBA

существенным

образом

снизит

издержки, связанные с уточнением технического задания при производстве

работ [3].

Бывают

и

намного

более

простые

задачи,

которые

также

удобно

визуализировать в программе MS EXCEL при помощи языка VBA, например,

отчеты.

Написание

программ

на

VBA

существенным

образом

снизит

издержки, связанные с уточнением технического задания при производстве

работ [4].

Использование языка программирования Visual Basic for Applications

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

Также безопасность данного языка не позволяет углубляться в более глубокое

его изучение. Но когда перед вами стоит задача автоматизации рутинных

операций, то язык программирования VBA очень полезен. Особенно стоит

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

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

автоматизации.

Литература:

1. "Информационные технологии. Учебное пособие". Под ред. А.К.

Волкова. Москва. Издательство "ИНФРА-М". 2001 г.

2. "Информатика: Учебник" Под ред. проф. Н.В. Макаровой. Москва.

Издательство "Финансы и статистика". 2005 г.

3.

Уокенбах

Дж.

Профессиональное

программирование

на

VBA

в

Excel 2002. М.: Диалектика, 2003

4. "Информационные технологии управления: Учебное пособие". Под

редакцией Ю.М. Черкасова. Москва. Издательство "ИНФРА-М". 2004 г.



В раздел образования