- •Программирование в среде Microsoft Office 2000
- •1. Основные сведения о vba
- •1.2. Макрорекордер в Office 2000
- •2.Основные сведения о программировании на vba
- •2.1. Алфавит и лексика языка vba
- •2.2.Правила записи текста программы на vba.
- •2.4. Данные в vba
- •2.4.1. Типы данных в vba
- •Т ипы данных в vba
- •Встроенные типы данных показаны в таблице 2.1.
- •2.4.2.Объявление переменных и констант простых типов
- •2.4.3. Массивы
- •2.5.Использование стандартных диалоговых окон для организации ввода-вывода данных
- •2.5.1.Функция MsgBox
- •2.5.2.Функция InputBox
- •2.6. Управляющие конструкции vba
- •2.6.1.Условный оператор if
- •2.6.2.Оператор выбора Select Case
- •2.6.3.Оператор цикла For … Next
- •2.6.4.Оператор цикла While…Wend
- •2.6.5.Оператор цикла Do…Loop
- •2.6.6. Оператор перехода GoTo
- •2.7. Основные сведения об объектах
- •2.7.1.Основные понятия объектно-ориентированного программирования.
- •2.7.2. Особенности использования объектов.
- •2.7.3. Коллекции в vba
- •2.7.4. Объект Application
- •2.7.5. Объекты Range и Selection
- •2.7.6. Оператор With для операций с одним объектом.
- •2.8.Обработка ошибок
- •3.Программирование в приложениях ms Office 2000.
- •3.1.Объекты excel, их свойства и методы.
- •3.1.1. Объектная модель excel
- •3.1.2. Коллекция Workbooks
- •3.1.3. Объект Workbook
- •3.1.4.Объект Worksheet
- •3.1.5.Объект Chart
- •3.1.6.Объекты Range и Selection
- •3.1.7. Пример решения задачи в excel на основе построения vba-кода.
- •3.2. Объекты word, их свойства и методы.
- •3.2.1. Модель объектов word
- •3.2.2.Объект Appication
- •3.2.3. Объект Document
- •3.2.4. Классы, задающие структуризацию текста документа.
- •3.2.5. Классы, составляющие части документа
- •3.2.5.1. Объект Range
- •3.2.5.2. Объект Selection
- •3.2.6. Классы, представляющие структуру документа
- •3.3. Автоматизация работы в Access на основе использования Access vba
- •3.3.1. Средства автоматизации работы в Access.
- •3.3.2. Объектная модель Microsoft Access
- •3.3.3.Особенности программирования в Access vba
- •3.3.3.1. Модель программирования Access
- •3.3.3.2. Особенности работы с объектами в Access vba.
- •3.3.4. Манипулирование в Access объектами Application
- •3.3.5. Объекты доступа к данным
- •3.3.5.1. Объекты dao
- •3.3.5.2. Объекты ado
- •3.3.6. Использование объектов доступа к данным в Access
- •3.3.6.1. Соединение с текущей базой данных
- •3.3.6.2. Открытие базы данных
- •3.3.6.3. Создание базы данных
- •3.3.6.4. Выполнение операций с записями
- •3.3.6.5. Перемещение по набору записей
- •3.3.6.6. Поиск записей в объектах Recordset
- •3.3.7. Пример решения задачи в Access на основе построения vba-кода
- •3.4.Совместная работа приложений Microsoft Office 2000
- •4.Список рекомендуемой литературы
2.6. Управляющие конструкции vba
Управляющие конструкции включают операторы ветвления и цикла. Ветвление организуется с использованием условного оператора и оператора выбора.
2.6.1.Условный оператор 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
В качестве условия можно использовать логическое выражение, возвращающее значение True (Истина) или False (Ложь), или любое арифметическое выражение (нулевое значение эквивалентно False, а ненулевое – True).
Пример 2.3. Использование условного оператора If.
Sub pr23()
a = InputBox("Введите число")
x = Val(a)
If Val(a) <> 0 Then
y = 150 / x
k = MsgBox(y)
Else
MsgBox ("Деление на ноль")
End If
End Sub
2.6.2.Оператор выбора 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
Пример 2.4. Использование оператора Select Case.
Sub pr24()
Dim acode
acode = InputBox("Введите код")
Select Case acode
Case "095"
gorod = "Москва"
Case Is = "812"
gorod = "Санкт-Петербург"
Case "044"
gorod = "Киев"
Case Else
gorod = "Ошибка в коде"
End Select
MsgBox (gorod)
End Sub
2.6.3.Оператор цикла For … Next
В VBA существуют три циклические конструкции операторов:
For … Next
Do … Loop
While … Wend
Оператор цикла For…Next имеет две разновидности:
For счетчик = начало To конец [Step приращение]
операторы
Next [счетчик]
б) For Each <элемент> In <группа>
операторы
Next [элемент]
где:
элемент- переменная, используемая для ссылки на элементы коллекции однородных объектов (семейства);
группа – имя коллекции (семейства).
Оператор данного вида используется для обработки объектов, составляющих коллекцию однородных объектов, т.е. многократно выполняет одну и ту же группу операторов для каждого элемента набора объектов (массива).
Пример 2.5. Использование оператора цикла For … Next.
Sub pr25()
Dim b(10)
s = 0
For i = 1 To 10
b(i) = InputBox("Введите число")
s = s + Val(b(i))
Next
MsgBox s
End Sub
Пример 2.6. Использование оператора цикла For Each ... Next.
Sub pr26()
For Each k In ActiveSheet.Range( “B2:F12” ).Cells
If k.Value<0 Then
k.Value = 0
End If
Next k
End Sub
Программа перебирает ячейки диапазона B2:F12 на активном листе и обнуляет ячейки с отрицательными значениями (Excel).