- •Норинский л. Ю. Программирование на Visual Basic и Visual Basic for Applications (Конспект лекций)
- •Введение
- •1. Основы языка программирования visual Basic
- •1.1. Общие сведения о Visual Basic
- •1.2. Среда vb, инструментальные средства. Разработка проектов
- •1.3. Типы данных. Константы и переменные
- •1.4. Операции
- •1.5. Ввод и вывод данных
- •1.6. Управляющие операторы
- •1.7. Массивы
- •1.8. Примеры программ работы с числами
- •1.9. Обработка строк. Примеры
- •1.10. Математические вычисления. Другие операторы и функции
- •1.11. Процедуры и функции. Примеры
- •1.12. Работа с файлами
- •1.13. Обработка ошибок
- •2. Разработка интерфейса
- •2.1. Элементы управления
- •2.1.1. Общие сведения
- •2.1.2. Встроенные эу
- •2.1.3. Внедренные и связанные эу
- •2.2. Разработка форм
- •2.3. Создание и использование меню
- •2.4. Окна диалога
- •3. Классовое общество
- •3.1. Классы-формы
- •3.2. Модули классов и стандартные модули
- •3.3. Управление событиями объекта
- •3.4. Семейства и массивы объектов
- •4. Vba. Макропрограммирование
- •4.1. Общие сведения о vba
- •4.2. Работа в Excel с помощью vba
- •4.2.1. Объекты Application и семейство Workbooks
- •4.2.2. Объекты Worksheet и Worksheets
- •4.2.3. Объект Range
- •4.3. Макропрограммирование
- •4.4. Создание макросов в Word
- •4.5. Создание макросов в Excel
- •4.6. Пример макроса
- •Приложения п1. Некоторые виды ошибок
- •П2. Свойства элементов управления
- •П3. Методы работы с элементами управления
- •П4. Примеры проектов vb Проект 1.
- •Проект 2.
- •Проект 3.
- •Проект 4.
- •Проект 5.
- •Проект 6.
- •Проект 8.
- •Проект 11.
- •П5. Пример ПроектА vba.
- •Литература
1.6. Управляющие операторы
Условный оператор:
If УСЛОВИЕ Then ОПЕРАТОР
где ОПЕРАТОР – любой оператор, который выполняется только в том случае, когда выражение УСЛОВИЕ имеет значение ИСТИНА, иначе данный оператор пропускается; затем, в обоих случаях, выполняется оператор, следующий за условным оператором; например,
If X > 3 Then Y = Y + 1
A = Y * (B + C)
Оператор условного перехода:
If УСЛОВИЕ Then
ОПЕРАТОР 1-1
...
[ОПЕРАТОР 1-n ]
[ Else
ОПЕРАТОР 2-1
...
[ОПЕРАТОР 2-m ] ]
End If
данный оператор состоит из Then-ветви с операторами 1-1...1-n и из Else-ветви, которая содержит операторы 2-1...2-m. Если условие, заданное в операторе If истинно, то выполняется Then-ветвь. В противном случае, выполняются операторы Else-ветви. После выполнения одной из ветвей работа программы продолжается с оператора, следующего за End If (если ход выполнения программы не изменяется оператором GoTo). Если отсутствует Else-ветвь и условие в операторе If ложно, то работа программы всегда начинается с оператора, следующего за End If.
Примеры:
1) If X > 3 Then
Y = 1
X = X + 1
End If
2) If Y = 1 Then
Z = X
Else
Z = X - 1
End If
Операторы условного перехода могут быть вложенными один в другой, при этом, в частности, должна использоваться конструкция следующего вида:
If УСЛОВИЕ Then
ОПЕРАТОР(Ы)
Else If УСЛОВИЕ Then
ОПЕРАТОР(Ы)
Else
ОПЕРАТОР(Ы)
End If
Оператор безусловного перехода GoTo:
GoTo МЕТКА_ПЕРЕХОДА
МЕТКА_ПЕРЕХОДА – объявленная в программе метка; метка объявляется произвольным именем, заканчивающимся двоеточием, например,
GoTo M1
X = 1…..‘ оператор пропускается
М1: X = 2.
Оператор цикла While:
While УСЛОВИЕ
ОПЕРАТОР_1
...
[ОПЕРАТОР_n]
Wend
До тех пор, пока условие соблюдается, выполняются шаги цикла, каждый из которых состоит в выполнении операторов от 1-го до n-го (тело цикла). Среди выполняемых операторов должен находиться хотя бы один, который изменяет значение переменной, входящей в условие заголовка цикла (While УСЛОВИЕ), иначе цикл будет бесконечным. При нарушении условия в заголовке цикла выполняется оператор, следующий за Wend. Пример:
I = 1: x = 0
While i < 11 ‘ Определение суммы 10-ти чисел от 1до 10
x = x + 1
i = i + 1 ‘ Изменение значения переменной в заголовке цикла
Wend
Оператор цикла Do:
1) вариант 1
Do
ОПЕРАТОРЫ
[Exit Do]
Loop While | Until УСЛОВИЕ
2) вариант 2
Do While | Until УСЛОВИЕ
ОПЕРАТОРЫ
[Exit Do]
Loop
где While | Until – способ проверки условия выполнения цикла; при использовании While цикл выполняется, пока условие соблюдается; при использовании Until цикл выполняется, пока условие не соблюдается; Exit Do – преждевременное прерывание цикла; управление данному оператору должно передаваться при выполнении определенного условия, проверяемого одним или несколькими операторами тела цикл. После завершения цикла или при преждевременном его прерывании работа продолжается с оператора, следующего после Loop.
В обоих вариантах среди операторов тела цикла должен находиться хотя бы один, который изменяет значение переменной, входящей в условие цикла While | Until УСЛОВИЕ (также как в операторе цикла While).
Оператор цикла For:
For СЧЕТЧИК = НАЧАЛЬНОЕ_ЗНАЧЕНИЕ To КОНЕЧНОЕ_ЗНАЧЕНИЕ [Step ШАГ]
ОПЕРАТОР_1
...
[ОПЕРАТОР_n]
[Exit For]
Next СЧЕТЧИК
где СЧЕТЧИК – арифметическая переменная, которая изменяется при повторении цикла (управляющая переменная цикла); НАЧАЛЬНОЕ_ЗНАЧЕНИЕ – арифметическое выражение, задающее начальное значение счетчика; КОНЕЧНОЕ_ЗНАЧЕНИЕ – арифметическое выражение, задающее конечное значение счетчика; ШАГ – арифметическое выражение, задающее приращение значения счетчика после каждого шага цикла (по умолчанию это +1); Exit For – прерывание выполнения цикла (см. пояснение к Exit Do оператора цикла Do). Работа продолжается с оператора, следующего за Next. Пример:
x = 0
For i = 1 To 10 Step 1
x = x + 1
Next i
Оператор выбора (переключатель) Select Case:
Select Case ПЕРЕМЕННАЯ
Case СРАВНЕНИЕ_1
ОПЕРАТОРЫ_1
[ Case СРАВНЕНИЕ_2
ОПЕРАТОРЫ_2 ]
...
[ Case Else
ОПЕРАТОРЫ ]
End Select
Перед выполнением переключателя ПЕРЕМЕННАЯ в его заголовке должна получить от предшествующих операторов определенное значение. Сначала выполняется СРАВНЕНИЕ_1, если результат истинен, выполняются ОПЕРАТОРЫ_1, после чего программа выполняется с оператора, следующего за End Select. Если результат СРАВНЕНИЯ_1 ложен, то выполняется СРАВНЕНИЕ_2 и т.д. Если ни для одной Case-ветви результат сравнения не оказался истинным, выполняются операторы ветви Case Else (если в данной ситуации этой ветви нет, то будет выдана ошибка). Допускается использование вложенных операторов Select Case.