Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Приведем пример:
Возраст = TextBox1.Value
Select Case Возраст
Case Is < 13
Label1.Caption = "После 22-00 спать!"
Case 16
Label1.Caption = "Пора получать паспорт"
Case Is < 18
Label1.Caption = "Только чай!"
Case Is >= 18
Label1.Caption = "Можно почти все!"
End Select
Теперь рассмотрим организацию циклов. Вообще говоря, цикл нетрудно организовать и без специальных инструкций по схеме:
1) инструкции присваивания начальных значений переменной цикла и другим переменным;
2) инструкции, исполняемые при очередном значении переменной цикла;
3) наращивание (изменение) переменной цикла и, возможно, других переменных, изменяемых одновременно с переменной цикла;
4) проверка переменной цикла на соответствие условию, при котором цикл должен исполняться повторно, и передача управления блоку 2 при выполнении этого условия (IF <условие> GoTo <метка в начале блока 2>).
Именно такой, классический цикл изображен на рис. 4.1 в виде блок-схемы. Но в языках высокого уровня, и в том числе в VBA, предусмотрены инструкции, позволяющие записывать циклы еще компактнее. Проще всего цикл записывается, если известны начальное, конечное значения переменной цикла и шаг ее изменения. Пусть в J-ом столбце на листе Excel надо суммировать четные ячейки до строки 20, но только пока не встретится число 7777:
J = 1: S = 0
For I = 2 To 20 Step 2
F = Cells(I, J).Value
If F = 7777 Then Exit For 'Выход из цикла - на инструкцию после Next
S = S + F
Next I
MsgBox "i= " & Str(I-2) & " S=" & Str(S)
После выхода из цикла сообщается номер последней ячейки, значение которой добавлено к S и сама накопленная сумма. Цикл этого примера называют циклом типа For-Next.
В большинстве случаев циклы этого типа выглядят проще, т.к. обычно не требуется задавать шаг изменения переменной цикла (Step) и не нужно выходить из цикла по дополнительному условию (Exit For). В модуле, приведенном после рис. 10.5 (см. подраздел 10.4), такие циклы используются в процедурах TabCXCY и TabA. В последней процедуре – вложенный (двойной) цикл.
В тех случаях, когда нет возможности указать начальное и конечное значения переменной цикла, используют циклы типа Do-Loop. Для таких циклов возможны 4 варианта записи:
условие True в начале цикла Do While <условие> <инструкции, исполняемые в цикле> Loop | условие False в начале цикла Do Until <условие> <инструкции, исполняемые в цикле> Loop |
условие True в конце цикла Do <инструкции, исполняемые в цикле> Loop While <условие> | условие False в конце цикла Do <инструкции, исполняемые в цикле> Loop Until <условие> |
Циклы такого типа уже неоднократно применялись в примерах процедур в подразделах 10.3, 10.4. В число инструкций, исполняемых в цикле, может быть включена инструкция Exit Do, если из цикла надо выйти “досрочно”, например, при выполнении какого-нибудь дополнительного условия. Заметим, что Do While означает Выполнять пока … Do Until означает Выполнять пока не … Другими словами, вместо Do Until можно написать Do While Not. В некоторых случаях эти проверки удобнее ставить в конец цикла (Loop – цикл, дословно – петля).
В заключительной части этого раздела приведем рекомендации по отладке приложений.
Во-первых, для отладки надо подбирать разнообразные примеры, не ограничиваясь самыми простыми – ведь многие ошибки проявляются только при определенных значениях исходных данных, а иногда даже только при определенных сочетаниях этих значений.
Во-вторых, для просмотра промежуточных и окончательных значений переменных можно на время отладки включать в тексты процедур обращения к процедуре MsgBox, а также выводить значения переменных в виде свойства Caption элемента управления Label (метка – статический текст) или в виде свойства Text элемента управления TextBox (поле с редактируемым текстом). Важную роль играет выбор точек процедуры для вывода значений переменных при отладке. Для выбора таких точек можно рекомендовать рассматривать процедуру состоящей из логически завершенных фрагментов программного кода, формирующих определенные «информационные сцены». Эти-то сцены, характеризующиеся содержимым переменных и массивов, и надо контролировать.
В-третьих, VBA предоставляет специальные средства для отладки процедур. Если в окне редактора слева от текста инструкции (на полях) щелкнуть мышью, то создастся точка останова. При этом инструкция выделится красным цветом. Теперь переключаемся через панель задач на окно Excel и запускаем процедуру (обычно – командной кнопкой). В точке останова выполнение программы приостановится, причем произойдет переключение на окно редактора Visual Basic, а очередная инструкция будет выделена желтым цветом. Теперь можно навести мышь на любую переменную (на ее имя в любой инструкции), и появится окошечко со значением этой переменной в момент останова. Далее можно установить курсор в следующую представляющую интерес позицию модуля и нажать <Ctrl>+<F8> - программа выполнится до этой позиции и снова приостановится. Можно снова “посмотреть” значения переменных, наводя на них мышь. Есть также возможность перейти к пошаговому исполнению инструкций, пользуясь клавишей <F8> или комбинациями клавиш <Shift>+<F8> (шаг с обходом вызываемой процедуры) и <Shift>+<Ctrl>+<F8> (шаг с выходом из процедуры – см. также пункт меню Отладка).
Таким образом, современные среды визуального программирования предельно облегчают отладку программ.
Контрольные вопросы к главе 10
Что такое программирование;
особенности и достоинства VBA;
создание интерфейса пользователя: как разместить элементы управления на листе Excel, как установить их свойства, как перейти в окно редактора VBA, как создать диалоговое окно;
что такое модуль, процедура, функция;
как оформляются и вызываются процедуры;
как оформляются и вызываются функции;
категории встроенных функций;
встроенные типы данных VBA;
назначение переменных, их описание, локальные и глобальные переменные;
назначение инструкции Option Explicit;
массивы, их описание, доступ к элементам массива, многомерные массивы, динамическое переопределение размерности массивов;
пояснить связь математических понятий вектора и матрицы с понятиями одномерного и двумерного массивов в программировании;
конструирование собственных типов данных;
константы, их определение и использование;
доступ к данным, хранимым в виде свойств объектов-элементов управления;
основные группы инструкций языка Visual Basic;
инструкция присваивания;
арифметические операции;
конкатанация;
операции сравнения;
логические операции;
инструкции проверки условий и организации циклов;
методы отладки приложений.
Дата публикования: 2014-11-03; Прочитано: 414 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!