- •266Лекция 13. Язык программирования Visual Basic for Application (vba)
- •Лекция 13. Язык программирования Visual Basic for Application (vba)
- •Типы данных
- •Инструкции vba
- •Имена vba
- •Процедуры vba
- •Подпрограмма Sub
- •Функция Function
- •Функции ввода-вывода данных и сообщений
- •Функция MsgBox
- •Функция InputBox
- •Управляющие конструкции vba
- •Проверка условия — If
- •Select Case
- •For Next
- •While…Wend
- •Do …Loop
- •Функции пользователя
- •Макросы Microsoft Office
- •Макросы Word
- •Макросы Excel
- •Макросы Access
- •Контрольные вопросы
Функция InputBox
Функция выводит диалоговое окно, содержащее сообщение и поле для ввода значения одной переменной или нажатия кнопки; результат выполнения функции — текстовое значение.
InputBox(prompt[, title] [, default] [, xpos] _
[, ypos] [, helpfile, context])
default– текст в поле ввода по умолчанию;
Xпоз – расстояние по горизонтали между левой границей диалогового окна и левым краем экрана;
Yпоз –расстояние по вертикали между верхней границей диалогового окна и краем экрана;
Если нажимается кнопка ОК или клавиша Enter, функция возвращает пустую строку(“”).
Пример 5
Вывести в диалоговом окне (рис. 13.3) запрос на ввод значения переменной. Если значение не введено, переменной присваивается значение, заданное по умолчанию.
Рис. 13.3
Фрагмент программного кода:
Dim Msg, Title, Response, Default
Msg = "Введите число от 1 до 5"
Title = "Пример функции InputBox"
Defaut =”1”
Response = InputBox (Msg, Title, Default)
Управляющие конструкции vba
Управляющие конструкции VBA позволяют изменять порядок выполнения инструкций программного кода, организовывать циклическое повторение, управлять выполнением блоков инструкций, в зависимости от условий. Эти возможности присущи всем языкам структурного программирования.
Проверка условия — If
Условие — логическое выражение, принимающее значение True (Истина) или False (Ложь), или арифметическое выражение, для которого 0 эквивалентен False, а другие значения соответствуют True.
В зависимости от результатов проверки условия, выполняется определенный блок инструкций. Инструкция If имеет разновидности.
Вариант 1. Однострочный If — выполняется единственная инструкция в случае истинности условия:
If <условие> Then <инструкция>
Пример 6
Проверка значения TaxNalog, вычисление Sale, если TaxNalog больше 0.
Фрагмент программного кода:
IF TaxNalog>0 Then Sale=Summ1*(1+TaxNalog)
Вариант 2. Блочный If — выполняется заданная последовательность инструкций в случае истинности условия:
If <условие=True> Then
<блок инструкций>
End If
Пример 7
Проверка значения TaxNalog, если значение положительное, вычисляются значения Sale и SumNalog.
Фрагмент программного кода:
IF TaxNalog>0 Then
Sale=Summ1*(1+TaxNalog)
SumNalog=SumNalog+Sale
End If
Вариант 3. Выполнение определенного блока инструкций в зависимости от условия:
If <условие=True> Then
<блок инструкций1>
Else
<блок инструкций2>
End If
Пример 8
Проверка значения TaxNalog, вычисление значения Sale в зависимости от результата проверки.
Фрагмент программного кода:
IF TaxNalog>0 Then
Sale=Summ1*(1+TaxNalog)
Else
Sale=0
End If
SumNalog=SumNalog+Sale
Вариант 4. Последовательная проверка нескольких условий:
If <условие1=True> Then
<блок инструкций 1>
ElseIf <условие2=True> Then
<блок инструкций 2>
……………
ElseIf<условиеn=True> Then
<блок инструкций n>
Else
<блок инструкций Else>
End If
Пример 9
Выполнить проверку taxnalog и выбрать алгоритм вычисления Sale.
Фрагмент программного кода:
taxnalog = InputBox("Введите ставку налога")
summ1 = InputBox("Укажите сумму")
If taxnalog < 0.12 Then
sale = summ1 * (1 + taxnalog)
ElseIf taxnalog < 0.25 Then
sale = (summ1 - 200) * (1 + taxnalog)
ElseIf taxnalog < 0.35 Then
sale = (summ1 - 500) * (1 + taxnalog)
Else sale = (summ1 - 1000) * (1 + taxnalog)
End If
MsgBox sale