
- •Основы офисного программирования. Интегрированная среда разработки приложений в vba
- •Программирование в системе vba (Visual Basic for Application)
- •Запись макросов макрорекордером
- •Интегрированная среда разработки (редактор vba)
- •Порядок создания проекта
- •Структура программ на vba
- •Основные конструкции языка Visual Basic for Application.
- •Данные и имена. Типы данных.
- •Операции, выражения, операторы
- •Операторы (команды).
- •Ввод и вывод данных с помощью диалоговых окон
- •InputBox("Сообщение" [,"Заголовок"],[,"По умолчанию"])
- •Ввод-вывод данных на лист Excel с помощью метода Cells
- •Массивы в vba.
Ввод-вывод данных на лист Excel с помощью метода Cells
Метод Cells делает указанную ячейку активной. Синтаксис метода следующий:
Cells[(N строки, N столбца)]
Здесь:
N строки - номер строки текущего листа Excel,
N столбца – номер столбца текущего листа Excel (при обращении к этому методу столбцы нумеруются).
В данном варианте синтаксиса предполагается, что на активном листе Excel ячейка, находящаяся на пересечении N строки и N столбца, становится активной.
С помощью метода Cells можно сделать активной ячейку, чтобы затем вводить или выводить данные.
Если с помощью этого метода осуществляется ввод данных из ячейки рабочего листа в переменную, то Cells стоит в правой части оператора присваивания, а если осуществляется вывод из переменной в ячейку рабочего листа, то Cells стоит в левой его части.
Структура ввода, с использованием метода Cells следующая:
<имя>=Cells (<N строки, N столбц>),
где
<имя> - простая переменная или элемент массива.
Структура вывода с использованием метода Cells следующая:
Cells( <N строки, N столбц>)= <выражение>,
где
<выражение> - любое выводимое значение.
Рассмотрим, пример следующей программы:
Sub ввод_ввывод_Cells()
Dim a As Single
Dim b As Single
Dim c As Single
a = Cells(1, 2)
b = Cells(2, 2)
c = a * b
Cells(5, 1) = "c="
Cells(5, 2) = c
End Sub
До запуска этого макроса рабочий лист Excel имел вид (см. рис. 13):
Рис. 13
А после запуска макроса он выглядит так (см. рис. 14):
Рис. 14
Управляющие структуры VBA. Условный оператор. Оператор безусловного перехода
Управляющие структуры позволяют управлять последовательностью выполнения программы. Без операторов управления все операторы программы будут выполняться слева направо и сверху вниз. Рассмотрим одну из управляющих структур VBA – условный оператор.
Условный оператор применяется, когда необходимо выполнить один или группу операторов в зависимости от значения некоторого условия.
Синтаксис условного оператора:
Короткая форма If <условие> Then <оператор>
или
If < условие > Then
< оператор > /< Группа операторов 1 >
End If
Полная форма If < условие > Then
< оператор 1 > / < Группа операторов 1 >
Else
< оператор 2> < Группа операторов 2 >
End If
В блок схеме условный оператор изображается так:
Обычно условие является простым сравнением, но оно может быть любым выражением с вычисляемым значением. Это значение интерпретируется как False (Ложь), если оно нулевое, а любое ненулевое рассматривается как True (Истина). Если условие истинно, то выполняются все выражения, стоящие после ключевого слова Then. Если условие ложно, то выполняются все выражения, стоящие после ключевого слова Else.
Допускаются многократно вложенные конструкции, имеющие столько уровней вложения сколько необходимо.
Рассмотри еще одну управляющую структуру - оператор безусловного перехода. Его синтаксис:
GoTo метка,
где метка – это любая комбинация символов.
Этот оператор принудительно изменяет последовательность выполнения программы. Оператор GoTo передает управление оператору с меткой, т.е. следующим за оператором GoTo будет выполняется оператор, указанный с помощью метки.
Управляющие структуры VBA. Операторы цикла.
Иногда требуется многократно выполнять некоторый набор инструкций автоматически, либо решить задачу по-другому в зависимости от значения переменных или параметров, заданных пользователем во время выполнения. Для этого служат условный оператор и операторы циклы.
Рассмотрим операторы цикла VBA. Цикл с известным числом повторений (цикл с параметром) реализован в VBA с помощью оператора For Next следующей структуры:
For <параметр цикла>=<начальное значение> To <конечное значение> [Step <шаг>]
<операторы VBA>
Next <параметр цикла>
где
<параметр цикла> – имя (идентификатор) параметра цикла;
<начальное значение> – начальное значение параметра цикла;
<конечное значение> – конечное значение параметра цикла;
<шаг> – шаг изменения параметра цикла (необязательный параметр, если он отсутствует, шаг изменения равен 1);
<операторы VBA> - операторы VBA, реализующие тело цикла.
В блок-схеме этот оператор изображается так:
В теле этого цикла можно использовать оператор Exit For, с помощью которого можно завершить цикл For Next до того, как параметр примет свое конечное значение.
Циклы с неизвестным числом повторений реализуются на VBA с помощью операторов Do While … Loop, Do Until … Loop, Do … Loop While, Do … Loop Until .
Рассмотрим структуру оператора Do While … Loop.
Do While <условие>
<операторы VBA>
Loop
Здесь <условие> – логическое выражение;
<операторы VBA> - операторы VBA, реализующие тело цикла.
Оператор выполняется следующим образом. Проверяется <условие>, если <условие> принимает значение Истина(True), то выполняются операторы до служебного слова Loop. Затем вновь проверяется условие, и так продолжается до тех пор, пока условие не станет ложным(False).
В блок схеме этот оператор изображается так:
Рассмотрим структуру оператора Do Until … Loop.
Do Until <условие>
<операторы VBA>
Loop
Оператор выполняется следующим образом. Проверяется <условие>, если <условие> принимает значение Ложь(False), то выполняются операторы до служебного слова Loop. Затем вновь проверяется условие, и так продолжается до тех пор, пока условие не станет истинным (True).
В блок схеме этот оператор изображается так:
Мы рассмотрели операторы цикла, которые реализуют цикл с предусловием.
Рассмотрим, операторы цикла, которые реализуют цикл с постусловием. Это операторы Do … Loop While и Do … Loop Until. Структура этих операторов следующая:
Do
<операторы VBA>
Loop Until <условие>
Оператор выполняется следующим образом. Выполняются операторы до служебного слова Loop. Затем проверяется <условие>, если <условие> принимает значение Ложь(False), то опять выполняются операторы до служебного слова Loop. Так продолжается до тех пор, пока <условие> не станет истинным (True).
В блок схеме этот оператор изображается так:
Do
<операторы VBA>
Loop While <условие>
Оператор выполняется следующим образом. Выполняются операторы до служебного слова Loop. Затем проверяется <условие>, если <условие> принимает значение Истина(True), то опять выполняются операторы до служебного слова Loop. Так продолжается до тех пор, пока <условие> не станет ложным (False ).
В блок схеме этот оператор изображается так:
В VBA существует оператор, позволяющий осуществить досрочный выход из циклов с неизвестным числом повторений. Для выхода из этих циклов нужно использовать оператор Exit Do.