- •Введение
- •Лабораторная работа №1 Знакомство с Visual Basic for Applications
- •Лабораторная работа №2 Создание первой программы в vba
- •Объявление переменных
- •Лабораторная работа №3 Построение алгоритма ветвления. Конструкция If _ Then _ Else
- •Лабораторная работа №5 Организация циклов Операторы for…next и while…wend
- •Цикл For...Next
- •Оператор Do While...Loop
- •Оператор Do Until...Loop
- •Рабочее задание (по вариантам):
- •Информация для выполнения заданий
- •Лабораторная работа № 6 Создание пользовательской формы
Объявление переменных
Хотя в Visual Basic можно явно и не объявлять переменные, но явное объявление типов переменных в процедурах обработки событий перед их использованием - и, естественно, с комментариями - является хорошим стилем в программировании. Это также помогает улучшить читабельность текстов программ.
Для явного объявления используем оператор Dim:
Dim I As Integer – объявляет переменную I как целочисленную
Dim Str As String – объявляет переменную Str как строковую
Объявления переменных можно комбинировать в одной строке, например:
Dim I As Integer, Str As String
Предупреждение:
Частой ошибкой является использование выражения: Dim X, Y, Z As Integer в предположении, что все три переменные будут целого типа. Фактически в данном случае переменные Х и Y будут объявлены как variant, и только Z - как integer. Чтобы избежать этого, необходимо каждый раз использовать идентификатор типа.
Задание 3. Подсчет суммы нескольких ячеек.
Введите следующую программу и убедитесь в ее работоспособности
Sub Изучаем_переменные( )
Dim Sum As Integer
Sum = 6 + 5
MsgBox "Ответ: " & Sum
End Sub
Задание 4. Учитывая, что считать содержимое ячейки рабочей книги Excel можно оператором
n = Worksheets("Лист1").Range("A1")
Модифицируйте программу, таким образом, чтобы выводить на экран сумму значение ячеек A5 и А6. Покажите текст программы и результат преподавателю.
Контрольные вопросы
-
Как загрузить программную среду VBA?
-
Как создаются программные модули в VBA?
-
Как можно организовать в VBA вывод информации на дисплей?
-
Для чего предназначена функция MsgBox?
-
Какие имена подходят для обозначения переменных? А какие нет?
-
Переменные какого типа поддерживает VBA?
-
Как описываются переменные в программе VBA?
-
Как описываются константы в программе VBA?
-
В тексте макроса нет ни одной переменной. С какими данными работает макрос?
Лабораторная работа №3 Построение алгоритма ветвления. Конструкция If _ Then _ Else
Цель работы: построение алгоритма ветвления If _ Then _ Else
Синтаксис строчной формы оператора If _ Then _ Else:
If условие Then [ инструкции ]
[ Else инструкции_else]
Синтаксис блочной формы оператора If _Then _Else:
If условие Then [ инструкции ]
[ ElseIf условие-n Then [ инструкции_elseif ]
[ Else [ инструкции_else ] ]
EndIf
Внимательно разберите приведенные ниже примеры и проверти их в VBA.
Пример 1:
Sub If_конструкция1 ( )
Dim Sum As Integer
Sum = Range("A1")
If Sum >10000 Then MsgBox ">10000" Else MsgBox"< 10000"
End Sub
Пример 2: (Замена фрагмента If программы пример1)
If Sum < 1000 Then
MsgBox "< 1000"
Else
MsgBox "> 1000"
End If
Пример 3:
Sub If_конструкция3()
Dim Sum As Integer
Sum = Range("A1")
If Sum < 1000 Then
MsgBox "< 1000"
ElseIf (Sum >= 1000) And (Sum <= 2000) Then
MsgBox "от 1000 до 2000"
Else
MsgBox "> 2000"
End If
End Sub
Задание. Определение минимального (максимального) значения содержимого трех ячеек
Составьте блок – схему и напишите программу, которая считывает содержимое трех (указанных преподавателем) ячеек листа Excel и определяет минимальное (для четного варианта) или максимальное (для нечетного варианта) значение.
Контрольные вопросы:
1)Каковы синтаксис и назначение конструкции if … then … else?
2)Как организуются комментарии в программе?
3)Как создаются программные модули в VBA?
4)Как задаются процедуры в программе?
5)Как можно организовать в VBA вывод информации на дисплей?
6)Для чего предназначена функция MsgBox?
7)Какие имена подходят для обозначения переменных? А какие нет?
8)Переменные какого типа поддерживает VBA?
9)Как описываются переменные в программе?
Лабораторная работа № 4
Построение алгоритма ветвления. Конструкция Select Case
Цель работы: Построение алгоритма ветвления с помощью конструкции Select Case в VBA.
Оператор Select Case
Select Case-оператор ветвления, который позволяет выполнять одну из нескольких групп операторов в зависимости от значения определенного условия.
Синтаксис конструкции Select Case:
Select Case Проверочное выражение
[Case значение 1
[Операторы 1]]
[Case значение 2
[Операторы 2]]
[Case Else
[Операторы N]]
End Select
В операторе Case можно использовать строковое или числовое выражение. В списке значений допускается указать явное значение. Наберите в VBA тексты примеров и разберите их.
Пример 1.
Sub Экзамен()
Dim Оценка As Integer
Оценка = InputBox("Введите Вашу Оценку")
Select Case Оценка
Case 0 To 2
MsgBox "Плохо"
Case 3
MsgBox "Удовлетворительно"
Case 4
MsgBox "Хорошо"
Case 5
MsgBox "Отлично"
Case Else
MsgBox "Таких оценок не существует"
End Select
End Sub
Case 0 To 2 означает, что если Оценка равна 0, 1 или 2, следует отобразить сообщение "Плохо". Case 3 применимо, если Оценка равна 3, Case 4 применимо, если Оценка равна 4, и аналогично Case 5 - если Оценка равна 5.
В операторе Case допускается применение операций сравнения (> больше, < меньше, >= больше или равно, <= меньше или равно).
Пример 2.
Sub Экзамен2()
Dim Оценка As Integer
Оценка = Worksheets("Лист1").Range("A1")
Select Case Оценка
Case Is < 3
MsgBox "Плохо"
Case 3
MsgBox "Удовлетворительно"
Case Is >= 4
MsgBox "Молодец!"
End Select
End Sub
Рабочее задание:
-
Напишите программу, выполняющую ввод с клавиатуры двух чисел, и вычитающую из большего числа меньшее. Результат отобразить на экране.
-
Составить программу в соответствии с заданием в Табл.1 по вариантам и реализовать ее в двух вариантах: при помощи конструкций IF… THEN… ELSE…и SELECT CASE.
Контрольные вопросы:
1) Каков синтаксис конструкции SELECT CASE?
2) Каковo назначение конструкции SELECT CASE?
3) Возможно ли заменить оператор IF… THEN… ELSE…и SELECT CASE?.
Вари-анты |
Задание |
Вари-анты |
Задание |
1 |
8 |
||
2 |
9 |
||
3 |
10 |
||
4 |
11 |
||
5 |
12 |
||
6 |
13 |
||
7 |
14 |