- •Методические указания
- •Среде Microsoft excel
- •Лабораторная работа №1. Введение в Visual Basic for Applicрations. Структура программы. Типы данных.
- •Р ис. 1.1 Редактор vba
- •Практическое упражнение.
- •Контрольные вопросы.
- •Лабораторная работа №2. Инструкции управления порядком выполнения команд.
- •Инструкция If…Then…Else
- •Инструкция Select Case
- •Безусловный переход с помощью инструкции GoTo
- •Практическое упражнение.
- •Безусловный выход из цикла.
- •Цикл While…Wend
- •Цикл For…Next
- •Практическое упражнение.
- •Контрольные вопросы.
- •Лабораторная работа №4. Массивы. Задание собственных типов данных.
- •Многомерные массивы
- •Задание собственных типов данных
- •Область определения и время жизни переменных
- •Практическое упражнение.
- •Использование окна свойств объекта.
- •Создание форм.
- •Размещение элементов управления в форме
- •Практическое упражнение.
- •Контрольные вопросы.
- •Лабораторная работа №6. Модель объектов Excel.
- •Использование объекта Application.
- •Использование семейства Workbooks.
- •Использование семейства Worksheets.
- •Использование объекта Range.
- •Практическое упражнение.
- •Контрольные вопросы.
Практическое упражнение.
Напишем программу, которая по введенному названию месяца выводит количество дней в этом месяце, используя инструкцию Select Case.
Перейдите в редактор VBA и откройте окно проекта, если до этого оно было закрыто.
Отобразите окно модуля.
В окне модуля введите следующую процедуру:
Public Sub Месяцы()
Dim Month As String
Dim Day As String
Month = InputBox("Введите название месяца")
Select Case Month
Case "Январь", "Март", "Май", "Июль", _
"Август", "Октябрь", "Декабрь"
Day = "31"
Case "Апрель", "Июнь", "Сентябрь", "Ноябрь"
Day = "30"
Case "Февраль"
Day = "28 или 29"
Case Else
Day = "Ошибка ввода"
End Select
MsgBox Month & " - " & Day
End Sub
Знак подчеркивания ( _ ) в тексте программы используется тогда, когда строка программы выходит за пределы экрана, для упрощения восприятия текста.
Контрольные вопросы.
Правила записи инструкции If…Then…Else. Многострочная структура
Правила записи инструкции Select Case, параметры.
Логические операции.
Инструкция безусловного перехода.
Правила записи инструкции
Лабораторная работа №3.
Операторы цикла.
Цель: Научиться использовать операторы цикла для организации повторяющихся вычислений
Часто требуется многократно повторить одну или несколько инструкций. VBA включает несколько управляющих структур для выполнения циклов, многие из которых знакомы тем, кто работал с другими языками программирования.
Цикл Do…Loop
Цикл Do…Loop является одним из самых простых и удобных. Он имеет 4 варианта синтаксиса:
Синтаксис 1:
Do While условие
[инструкции]
Loop
Синтаксис 2:
Do Until условие
[инструкции]
Loop
Синтаксис 3:
Do
[инструкции]
Loop While условие
Синтаксис 4:
Do
[инструкции]
Loop Until условие
Команды между инструкциями Do и Loop выполняются заданное число раз. Рассмотрим примеры использования цикла Do…Loop, начиная с синтаксиса 1:
Counter = 100
Do While Counter > 0
Call MySub
Counter = Counter - 1
Loop
При вычислении условия в первый раз переменная Counter равна 100, поэтому выражение Counter > 0 (в данном случае 100 > 0) истинно, и выполняются инструкции внутри цикла. В цикле вызывается подпрограмма, а затем переменная Counter уменьшается на 1, поэтому в следующий раз условие равно 99 > 0, и команды выполняются повторно. После ста повторений переменная Counter уменьшается до 0 и условие становится ложным. Цикл заканчивается и управление передается инструкции, которая следует за командой Loop.
Аналогичные действия можно произвести, используя синтаксис 2:
Counter = 100
Do Until Counter = 0
Call MySub
Counter = Counter - 1
Loop
В данном случае цикл выполняется, пока условие ложно, в отличии от предыдущего случая, когда действия производились, если логическое выражение истинно.
Синтаксис 3 и 4 очень похожи на первые два за исключением того, что условие не выполнится до тех пор, пока цикл не выполнится один раз. В первых двух случаях если условие ложно при входе в цикл, то управление сразу передается команде, которая следует после инструкции Do…Loop. С помощью двух последних вариантов можно обеспечить, по крайней мере, однократное выполнение цикла. Рассмотрим пример использования синтаксиса 3:
Counter = 0
Do
Call MySub
Counter = Counter - 1
Loop While Counter > 0
В этом случае даже если счетчик цикла равен 0 перед входом в цикл, инструкции выполняются, по крайней мере, один раз, т. к. условие проверяется только в конце цикла.
При работе с циклами имеется опасность входа в бесконечный цикл, если значение заданного условия не может измениться. В этом случае цикл выполняется бесконечно или до прерывания пользователем работы макроса. При возникновении бесконечного цикла, нажмите комбинацию клавиш <Ctrl>+<Break>.
