
- •Лабораторная работа №1. Изучение возможностей интегрированной среды разработки vba-приложений
- •Лабораторная работа №2. Отладка программ и обработка ошибок в vba
- •Лабораторная работа №3. Использование элементов управления в приложениях vba
- •Лабораторная работа №4. Автоматизация обработки табличных документов. Программирование в среде Microsoft Excel
- •Лабораторная работа №5. Автоматизация обработки текстовых документов. Программирование в среде Microsoft Word
- •Лабораторная работа №6. Автоматизация обработки баз данных. Программирование в среде Microsoft Access
Лабораторная работа №1. Изучение возможностей интегрированной среды разработки vba-приложений
Цель лабораторной работы
Познакомиться с особенностями работы в интегрированной среде разработки приложений VBA. Освоить инструментарий редактора VBA.
Основные сведения об интегрированной среде разработки приложений
VBA - версия Visual Basic для приложений, которая имеет собственную специальную интегрированную среду разработки (IDE). VBA IDE - это окно, содержащее меню, другие окна и элементы, которые применяются при создании проектов VBA. Все приложения, поддерживающие VBA (EXCEL, WORD и др.), работают с одним IDE.
Проектом называется набор программных модулей, связанных с основным документом приложения. С каждым документом связан свой проект. В проект входят:
модуль с процедурами обработки событий других объектов приложения,
стандартные модули с пользовательскими процедурами и макросами,
модули классов,
модули, связанные с диалоговыми окнами,
ссылки на другие проекты, позволяющие использовать их процедуры и данные.
При создании основного объекта приложения , например, рабочей книги EXCEL - возникает проект VBAProject(<имя книги>), содержащей по умолчанию модули для четырех объектов Excel: самой рабочей книги и трех рабочих листов.
Основные сведения об операторах VBA
Функция MsgBox
MsgBox(сообщение[, кнопки][, заголовок][, файл справки, контекст])
Выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.
Функция InputBox
InputBox(сообщение[, заголовок][, умолчание][, Xпоз][, Yпоз][,файл справки, контекст])
Выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатие кнопки, а затем возвращает значение типа String, содержащее текст, выведенный в окне.
Условный оператор IF
Для проверки одного условия и выполнения оператора или блока операторов используется оператор IF…THEN. Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).
а) Однострочный:
If <условие> Then <оператор>
б) блочный:
If <условие> Then
<блок операторов>
End If
Для проверки одного условия и выбора одного из двух блоков операторов используется оператор вида If…Then… Else.
If <условие> Then
<блок операторов1>
Else
<блок операторов2>
End If
Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется оператор вида:
If… Then…ElseIf
If <условие 1> Then
<блок операторов 1>
ElseIf <условие 2> Then
<блок операторов 2>
…………….
ElseIf<условие n> Then
<блок операторов n>
Else
<блок операторов Else>
End If
Оператор выбора SELECT CASE
Используется для проверки одного условия и выполнения одного из нескольких блоков операторов.
Формат записи оператора:
Select Case проверяемое выражение
Case список выражений 1
операторы 1
Case список выражений 2
операторы 2
Case список выражений 3
операторы 3
……………………………….
Case Else
операторы группы Else
End Select
Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).
Список выражений – одно или несколько выражений, разделенных стандартным символом – разделителем(;).
При выполнении оператора проверяется, соответствует ли хотя бы один из элементов этого списка проверяемому выражению. Эти элементы списка выражений могут иметь одну из следующих форм:
выражение
выражение 1 To выражение 2
Is логический оператор (оператор сравнения) выражение
Например, Is >= 10
Оператор цикла For…Next имеет две разновидности:
For счетчик = начало To конец [Step приращение]
операторы
Next [счетчик]
б) For Each <элемент> In <группа>
операторы
Next [элемент]
Оператор цикла WHILE…WEND
Используется для организации циклов с предусловием и имеет следующий формат:
While <условие продолжения цикла>
операторы тела цикла
Wend
Оператор цикла DO…LOOP
Используется для организации циклов с неопределенным числом повторений (с предусловием и с постусловием).
Этот оператор для организации цикла с предусловием может использоваться в двух модификациях:
а) Do While <условие продолжения цикла>
операторы тела цикла
Loop
б)Do Until <условие прекращения цикла>
операторы тела цикла
Loop
Для организации цикла с постусловием этот оператор также может быть использован в двух модификациях:
в) Do
операторы тела цикла
Loop While <условие продолжения цикла>
г)Do
операторы тела цикла
Loop Until <условие прекращения цикла>
Оператор перехода GoTo
Этот оператор позволяет выполнить безусловный переход к заданной строке активной процедуры.
Формат оператора:
GoTo строка
строка – это метка строки в процедуре. Метка строки представляет собой строку программы, в начале которой указывается имя метки и двоеточие. Количество меток не ограничено, но каждая должна быть уникальна.
Оператор With для операций с одним объектом.
Если в одном блоке программы требуется выполнить несколько операций с одним объектом, то это можно явно указать оператором With, а затем не повторять имя этого объекта.
Формат записи оператора:
With объект
[операторы]
End With
Выполнение лабораторной работы
Cоздать проект в редакторе VBA. Для этого запустить редактор VBA: с помощью команды меню Сервис\Макрос\Редактор Visual Basic.
(Включение вкладки "Разработчик"
1.На вкладке Файл выберите Параметры, чтобы открыть диалоговое окно Параметры.
2.Щелкните Настройка ленты в левой части диалогового окна.
3.В разделе Выбрать команды из, расположенном слева в окне, выберите Популярные команды.
4.В разделе Настройка ленты, который находится справа в диалоговом окне, выберите Основные вкладки в раскрывающемся списке, а затем установите флажок Разработчик.
5.Нажмите кнопку ОК.)
Отобразить окно проекта. Для этого необходимо выбрать команду Вид\Окно проекта (View\Project Explorer) или нажать комбинацию клавиш <Ctrl><R>.
Скрыть окно проекта. Нажать кнопку "Закрыть" окна проекта или щелкнуть правой кнопкой мыши по окну проекта, а затем выбрать из контекстного меню команду Скрыть (Hide).
Закрепить окно проекта. Для этого щелкнуть правой кнопкой мыши по окну проекта и выбрать из контекстного меню команду Закрепить (Установить флажок "Dockable").
Переместить закрепленное окно проекта. Для этого перетащить окно, щелкнув по строке заголовка.
Проделать все перечисленные в пунктах 2-5 операции с окном свойств (Properties Window).
Вывести свойства объекта. Для этого необходимо выбрать объект из списка, расположенного вверху окна свойств, или выбрать объект в окне проекта и, если окно свойств скрыто, вывести его, нажав клавишу <F4>.
Изменить значение свойства. Для этого необходимо выбрать требуемое свойство в левом столбце, а затем задать нужную величину в правом столбце. Например, из списка, расположенного вверху окна свойств, выберите объект Лист1 (Лист1), в левом столбце окна свойств выберите свойство Name и в правом столбце задайте новое значение этого свойства Бюджет.
Добавить модуль в проект. Для этого:
в окне проекта необходимо выбрать проект, в который требуется добавить модуль;
выбрать в меню редактора VBA команду Вставка\Модуль (Insert\Module), после чего выведется пустое окно модуля;
в окне свойств задать имя модуля (например, Обработка)
Отобразить окно модуля. Окно модуля отображается только тогда, когда с выбранным объектом связан код. Для отображения окна модуля можно выполнить одно из указанных действий:
дважды щелкните в окне проекта по имени требуемого объекта приложения, который может содержать код (по названию модуля);
дважды щелкните по форме или любому элементу управления в форме;
выделите требуемый объект проекта, а затем выберите в окне редактора VBA команду Вид\Программа (View\Code).
Добавить процедуру в проект. Для этого:
открыть окно модуля, в которое требуется добавить процедуру;
выбрать команду Вставка\Процедура (Insert\Procedure);
ввести имя процедуры в поле Имя (например, pr);
выбрать переключатель. Задающий тип добавляемой процедуры: подпрограмма (Sub), функция (Function) или свойство (Property);
задать личную или общую область определения процедуры, выбрав переключатель Общая (Public) или Личная (Private) соответственно;
в случае если все локальные переменные являются статическими, установить флажок "Все локальные переменные считать статическими" (All Local variables as Statics);
нажать кнопку "ОК". В окне модуля выведется пустая процедура с заданным именем.
Введите текст процедуры, вычисляющей сумму значений элементов одномерного массива:
Sub pr()
Dim b(10) As Integer
Dim s As Integer
s = 0
For i = 1 To 10
b(i) = InputBox("Введите число")
s = s + Val(b(i))
Next
MsgBox s
End Sub
Написание кода включает в себя описание переменных и объектов, использование процедур. Если VBA определяет, что описывается переменная или объект, то отображается специальное окно, в котором можно выбрать допустимый объект или тип. Например, после ввода: Dim s As редактор отображает список всех известных объектов и типов данных. После вывода списка нужно выбрать требуемый тип (Integer) и нажать клавишу <Enter>. VBA подставляет выделенный элемент в выражение Dim. Аналогичным образом введите еще две следующие процедуры:
Sub pr1()
Dim a As Single
Dim k As String
Dim y As Single
a = InputBox("Введите число")
x = Val(a)
If Val(a) <> 0 Then
y = 150 / x
k = MsgBox(y)
Else
MsgBox ("Деление на ноль")
End If
End Sub
Sub pr2()
Dim a(10) As Single, s As Single, b As Single, n As Boolean
For i = 1 To 10
a(i) = Val(InputBox("Введите число"))
Next
Do
n = False
For i = 1 To 9
If a(i) > a(i + 1) Then
b = a(i): a(i) = a(i + 1): a(i + 1) = b: n = True
End If
Next
Loop While n = True
s = a(1) + a(10)
MsgBox s
End Sub
Осуществить поиск процедур в окне модуля. Для этого:
Чтобы быстро найти процедуру, которая находится в текущем модуле, необходимо выбрать в списке, расположенном в верхнем левом углу окна модуля, элемент (Общая область), а затем выделить название требуемой процедуры в списке, находящемся в правом верхнем углу.
Чтобы быстро найти процедуру обработки события или метод текущего объекта, необходимо выбрать имя объекта в списке, расположенном в левом верхнем углу окна модуля, а затем выделить название события или метода в списке, находящемся в верхнем правом углу.
Чтобы быстро найти описание процедуры, нужно щелкнуть правой кнопкой мыши по имени требуемой процедуры в любом месте кода и выбрать команду Описание (Object Browser).
Чтобы возвратиться в позицию последней правки, нужно щелкнуть правой кнопкой мыши по окну модуля и выбрать из контекстного меню команду Вернуться к последней позиции (Last Position).
Задать цвет вывода для отдельных частей программы, для этого:
Раскрыть вкладку "Формат" (Editor Format) диалогового окна "Параметры" (Options).
Задать тип текста в списке Цветовые коды (Code Colors).
Выбрать цвет текста и фона в списках Текст (Foreground) и Фон (Background) соответственно. Если требуется использовать индикатор полей, например, для точки останова, выберите индикатор в списке Индикатор (Indicator). Задать шрифт текста и его размер в списках Шрифт (Font) и Размер (Size) соответственно.
Для сохранения заданного типа текста нажать "ОК".
Экспортировать файл, для этого:
Выбрать экспортируемый компонент в окне проекта (например, Модуль1).
Выбрать команду Файл/Экспорт файла (File\Export File), в диалоговом окне "Экспорт файла" раскройте нужную папку, введите имя файла и нажмите "ОК".
Импортировать файл, для этого:
Активизировать другое приложение MS Office (например, WORD).
Выбрать в окне редактора VBA команду Файл/Импорт файла (File\Import File), в диалоговом окне "Импорт файла" найдите требуемый файл, выделите его, а затем нажмите кнопку "ОК".
Выполнить VBA-процедуры из импортированного модуля.