Введение
VBA (Visual Basic for Applications) – это объектно-ориентированный язык программирования, предназначенный для визуального проектирования приложений и работы с табличными документами и текстовыми файлами.
VBA поддерживается такими приложениями Microsoft, как Excel, Word и Access. VBA может быть использован для решения достаточно сложных алгоритмических задач, основываясь на технологиях структурного и событийного программирования.
Таким образом, используя программы MS Office, при помощи VBA можно автоматизировать выполнение практически любой задачи, возникающей при работе с этими пакетами. Вот некоторые из них:
- выделение нужных фрагментов информации в тексте;
- автоматическое формирование графиков по заданным данным;
- оформление результатов вычислений в таблице;
- оформление бухгалтерской отчётности;
- обработка табличных данных;
- получение сводных таблиц по сведениям из различных отчётов.
Также язык программирования VBA используется не только вместе с продуктами компании Microsoft, но и в свободном программном обеспечении. Так, поддержка VBA в пакете офисных программ OpenOffice (LibreOffice) ведётся с 2006 года. А, вообще, язык VBA входит в состав программы Microsoft Excel с 1993 года.
Основываясь на Visual Basic, VBA позволяет автоматизировать задачи Excel, являясь его эффективным дополнением. Например, можно создавать VBA-код, дублирующий действия пользователя, что упрощает различные задачи. Ещё с помощью VBA можно создавать формы для общения с пользователем. А в более поздних версиях языка VBA появились элементы объектно-ориентированного программирования.
При этом VBA предоставляет пользователю удобную графическую среду, позволяющую наглядно конструировать экранные формы приложения и располагать на них различные управляющие элементы.
Итак, VBA позволяет оптимально применять готовые интерфейсные возможности Windows в сочетании с максимально доступным интерпретатором.
Создание программ на VBA в Excel
VBA представляет собой приложение языка программирования Visual Basic для различных расчётов в пакетах Microsoft Office, особенно, в табличном редакторе Excel.
Благодаря VBA появилась возможность создавать компьютерные программы, непосредственно находясь в среде Excel.
Посмотрим, что представляет собой программирование в Excel. На самом деле, это процесс создания макросов на языке Visual Basic, которые встроены в Excel.
Макросы (макрокоманды, макроопределения) – это любые программы, созданные с помощью языка программирования и позволяющие автоматизировать выполнение какой-то работы. То есть макрос является чётким алгоритмом действий, записанным пользователем в виде программного кода.
Для разработки Макроса в Excel используется специальная кнопка в меню программы под названием «Макросы», которая предназначена для различных действий с макросами – их создания, редактирования, сохранения в нужной папке, удаления и т.д.
Для того чтобы поверх окна Excel открыть окно редактора Visual Basic, используется сочетание клавиш Alt + F11. Из этого окна с проектом переходим к окну с файлом-модулем, где можно вводить и редактировать текст программы пользователя, производить отладку и выполнять программу (по кнопке Run Sub или клавише F5).
Рассмотрим теперь пример программы на VBA, где вычисляется гипотенуза прямоугольного треугольника по заданным катетам.
Рисунок 1. Программа. Автор24 — интернет-биржа студенческих работ
В этом примере с помощью ключевого слова Cells происходит обращение к ячейкам таблицы Excel. Параметры в скобках указывают на номер строки и столбца таблицы, соответственно.
Так, здесь в ячейку A1 записывается текст "a=", а сама переменная $***a***$ принимает значение, записанное в ячейке B1 таблицы, и аналогично с другими переменными. В итоге вычисленный результат (значение переменной $***c***$) записывается в ячейку B3.
Структура программы на языке VBA
Программа, написанная на языке VBA, имеет модульную структуру. Перечислим самые основные и наиболее распространённые модули:
- SUB – главный модуль;
- FUNCTION – подпрограмма в виде функции;
- SUB – подпрограмма в виде процедуры.
Любой такой модуль состоит из операторов, называемых инструкциями языка VBA. При записи этих инструкций, необходимо учитывать, что в одной строке кода может содержаться либо один оператор, либо несколько, но с отделением их друг от друга двоеточием.
Главный модуль имеет следующую структуру, где ИМЯ – это идентификатор главного модуля:
Sub ИМЯ()
Операторы
End Sub
Далее рассмотрим подпрограммы. Подпрограмма представляет собой обособленную группу операторов, которую можно выполнять многократно, обращаясь к ней из различных мест главного модуля. Важно, что каждая такая подпрограмма оформляется определённым образом и составляется в общем виде. Это нужно для того, чтобы она могла выполняться с любыми допустимыми новыми данными, поступающими в качестве исходных параметров подпрограммы.
Подпрограмма-функция имеет следующую структуру:
FUNCTION имя [(список параметров) STATIC]
[Операторы подпрограммы]
имя = выражение
END FUNCTION
Для обращения к функции используется следующая конструкция: имя функции, а затем в скобках указываются конкретные значения её аргументов.
Результат выполнения подпрограммы-функции в главную программу передается через локальную переменную, имя которой должно совпадать с именем самой подпрограммы.
И теперь структура подпрограммы-процедуры:
SUB имя [(список параметров])
Операторы подпрограммы
END SUB
Для обращения к подпрограмме общего вида служит специальный оператор её вызова:
[CALL] имя подпрограммы [(список аргументов)].
Результаты реализации подпрограммы-процедуры транслируются в главную программу через локальные переменные, указанные в списке её параметров. Поэтому, в отличие от функций, с помощью процедур в главную программу можно передать большее количество данных.
Также в среде VBA есть возможности по реализации различных типов алгоритмов: линейных, разветвляющихся и циклических.