Сделай Сам Свою Работу на 5

Визуальный язык программирования Бейсик для приложений: Visual Basic for Applications (VBA)





VBA – это подмножество визуального языка программирования Visual Basic (VB), которое включает почти все средства создания приложений VB.
VBA отличается от языка программирования VB тем, что система VBA предназначена для непосредственной работы с объектами Office, в ней нельзя создавать проект независимо от приложений Office. Таким образом, в VBA языком программирования является VB, а инструментальная среда программирования реализована в виде редактора VB, который может активизироваться из любого приложения MS Office.
Например, для того, чтобы открыть редактор VBA из приложения PowerPoint необходимо выполнить команду Сервис / Макрос / Редактор VBA. Вернуться из редактора в приложение можно, выбрав команду Microsoft PowerPoint в меню Вид или комбинацией клавиш Alt + F11.
С помощью встроенного в редактор VBA набора элементов управления и редактора форм пользователь может создать пользовательский интерфейс для разрабатываемого проекта с экранной формой. Элементы управления являются объектами, а для каждого объекта определен ряд возможных событий (например, щелчок или двойной щелчок мыши, нажатие клавиши, перетаскивание объекта и т.д.).
Каждое событие проявляется в определенных действиях программы (откликах, реакции). Пользовательская форма позволяет создавать окна диалога приложений. Язык программирования VBA служит для написания кода программы, например для создания функций пользователя в Excel.
Тот факт, что система программирования VBA предназначена для работы с объектами Office, позволяет эффективно ее применять для автоматизации деятельности, связанной с разработкой различных типов документов.
Рассмотрим алгоритм создания функций пользователя в VBA:
1. Вызвать окно редактора кода VBA, выполнив команду Сервис / Макрос / Редактор Visual Basic или нажать Alt+F11.



2. Выполнить пункт меню редактора Insert / Module (Вставка / Модуля).

3. Далее выполнить Insert / Procedure (Вставка /Процедура). В открывшемся диалогом окне Add Procedure ввести имя функции (например, СУММА5) и установить переключатели: Type (тип) – в положение Function (функция); Scope (Область определения) - в положение Public (Общая) и щелкнуть ОК.

4. В окне редактора для программирования VBA появится заготовка функции: заголовок - Public Function СУММА5() и окончание - End Function, между которыми надо поместить код тела функции.



5. Далее вводим список параметров функции, например, в скобках указываем (x, y, z, i, j), тип данных (для точных расчетов) и тип возвращаемого функцией значения (в данном примере не будем вводить). Кроме того, вводим тело функции, например, СУММА5 = x + y + z + i + j. В итоге получим следующий текст программы:
Public Function СУММА5(x, y, z, i, j)
СУММА5 = x + y + z + i + j
End Function

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

7. Выполняем "Вставка/Функция" и в открывшемся окне мастера функций выбираем категорию «Определенные пользователем», а в окне «Выберите функцию» выделяем СУММА5 и щелкаем ОК.

8. Далее выбираем ячейки со значениями и щелкаем ОК. Получаем следующий результат.

Макросы

Создание макроса

Создадим макрос для автоматического суммирования двух чисел в ячейках A1, B1 и размещения результата в ячейке C1, а также заливки ячейки C1 бирюзовым цветом.
Алгоритм создания макроса для поставленной задачи:
1. Выберите Сервис/Макрос, Начать запись.

2. В поле Имя макроса введите имя для макроса.

Первым символом имени макроса должна быть буква. В имени макроса не допускаются пробелы; в качестве разделителей слов можно использовать знаки подчеркивания.
3. Для того чтобы запускать макрос с помощью сочетания клавиш, введите букву в поле Сочетание клавиш. Допускается использование сочетаний CTRL+ буква (для строчных букв) или CTRL+SHIFT+ буква (для прописных букв), где буква — любая буквенная клавиша на клавиатуре. Не выбирайте стандартного сочетания клавиш, так как выбранное сочетание клавиш подавляет стандартные сочетания клавиш Microsoft Excel на то время с данной книгой.



4. В поле "Сохранить" выберите книгу, в которой требуется сохранить макрос.
Сохраните макрос в «Эта книга». Для создания краткого описания макроса, введите необходимый текст в поле Описание. На скриншоте представлен пример заполнения окна диалога «Запись макроса»

5. Нажмите кнопку OK.

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

7. Нажмите кнопку Остановить запись на плавающей панели инструментов «Ос» (Остановить запись) или Сервис / Макрос / Остановить макрос.

По окончании записи макроса он появляется в списке макросов под своим именем.
Редактор VBA автоматически записал последовательность макрокоманд или программу по выполненным действиям:

Для вызова макроса необходимо выполнить команду Сервис / Макрос / Макросы. После этого в диалоговом окне со списком макросов его можно найти по имени и нажать кнопку Выполнить.

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

Макрос можно запустить с помощью кнопки на встроенной панели инструментов, для этого необходимо выполнить:

 Выбрать пункт Настройка в меню Сервис.

 В окне диалога Настройка выбрать вкладку Команды и выбрать параметр Макросы в списке Категории, в списке Команды выделить «Настраиваемая кнопка».

 Из списка Команды перетащить с помощью мыши настраиваемую кнопку на панель инструментов.

 Щелкнуть эту кнопку правой кнопкой мыши и выбрать команду Назначить макрос в контекстном меню.

 Ввести имя макроса в поле Имя макроса.

Назначение области графического объекта для запуска макроса:

 Создайте графический объект.

 К выделенному графическому объекту, примените контекстное меню.

 Выберите в контекстном меню команду Назначить макрос.

 В появившемся окне диалога "Назначить макрос объекту", введите название макроса в поле Имя макроса, затем нажмите кнопку OK.

Редактирование макроса

Редактирование макроса осуществляется редактором VBA, для этого необходимо выполнить следующее:

1. Выбрать команду Сервис / Макрос / Макросы

2. Выбрать имя макроса, который следует изменить, в списке Имя.

3. Нажать кнопку Изменить, будет открыто окно Visual Basic, в котором возможно редактирование команд выбранного макроса, записанных на языке Visual Basic.
Удаление макроса:

 В меню Сервис выберите пункт Макрос, а затем — команду Макросы.

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

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

 

 

Обработка ошибок выполнения. Поиск ошибок в программе.

Обработка ошибок VBA

Для обработки ошибок в VBA и VB есть специальный оператор On Error. Он задает, куда будет передано управление в случае ошибки. Приведу пример:
Sub ErrorHandling()
On Error GoTo ErrorHandler
Dim a As Integer
Dim x As Integer
Dim y As Double
a = 20
x = 0
y = a / x
MsgBox ("Это сообщение никогда не появится")
GoTo Ends:
ErrorHandler:
MsgBox ("Ошибка деления на ноль")
Ends:
End Sub

В этом примере при возникновении ошибки управление передается к метке ErrorHandler и выводится сообщение об ошибке. Если нужно вернуться из обработчика ошибки назад, в точку, где выполнение было прервано, используется оператор Resume Next:
Sub ErrTest()
On Error GoTo ErrorHandler
Dim a As Integer
Dim x As Integer
Dim y As Double
a = 20
x = 0
y = a / x
MsgBox ("Процедура выполненяется дальше")
GoTo Ends:
ErrorHandler:
MsgBox ("Ощибка деления на ноль !")
Resume Next
Ends:
End Sub

В некоторых случаях прерывать выполнение программы нежелательно даже при возникновении ошибок. В таких ситуациях можно сделать так:
Sub ManyBugs()
On Error Resume Next
Dim a As Integer
Dim x As Integer
Dim y As Double
a = 30
x = 0
y = a / x
a = 20
x = 5
y = 8 / 6
MsgBox ("Никто ничего не заметил ;)")
End Sub

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.