HTML, Excel, Word, SEOОсновы VBA ⇒ Безусловный переход

Основы VBA

Самоучитель vba: Теория
..Первый макрос в Word
..Этапы записи макроса
..Запись макроса в Word
..Запись макроса в Excel
..Код макроса
..Выполнение макроса
..Типы данных VBA
..Переменные VBA
..Константы VBA
..Совместимость типов данных
..Арифметические операторы
..Логические операторы
..Строковые операторы
..Функции VBA ч.1
..Функции VBA ч.2
..Примеры использования функций
..Функции host-приложений
..Функции-процедуры
..Пользовательские функции в Excel
..Операторы ветвления: простой выбор
..Операторы ветвления: сложный выбор
..Использование MsgBox
..Прерывание процедур и функций
..Необязательные аргументы функций
..Циклы VBA ч.1
..Циклы ч.2
..Циклы ч.3
..Массивы VBA ч.1
..Массивы ч.2
..Массивы ч.3
..Управление файлами с помощью VBA
Самоучитель vba: Практика
Игра: Цепная реакция
Приложения
..Сумматор
..Наклейки
..Восьмерка
..Менеджер почты
Надстройки
..DEF
..SortSheets
..HideSheet



Операторы ветвления VBA: сложный выбор. Безусловный переход

В реальных программах зачастую бывает необходимо выполнять более сложный выбор в процедурах, выбирая между тремя и более ветвями. В этом случае можно помещать операторы If..Then..Else друг в друга. Это называется вложением операторов.



Вышепоказанная процедура использует несколько вложенных друг в друга операторов условного перехода. Следует сказать, что такая процедура будет работать только в Excel, т.к. использует метод Application.InputBox (см. Функции host-приложений). Этот метод не дает пользователю во время работы функции ввести что-либо, кроме числа.

Если пользователь вводит не число, то получает об этом сообщение.



Если пользователь ничего не вводит, то получает сведение об ошибке.



Если пользователь воспользуется кнопкой "Отмена", то получает сообщение "Не введены данные".


VBA предоставляет сокращенную версию оператора If..Then..Else, являющуюся сжатым эквивалентом вложенных операторв If..Then..Else, использованных в листинге. Такой краткой формой является операторIf..Then..ElseIf



Какой из вариантов использовать - вопрос, который решает каждый программист для себя индивидуально. Считается, что второй вариант более компактный, тогда как первый - более удобный и понятный.


Для выполнения выбора из нескольких возможных ветвей кода можно вкладывать операторы If..Then..Else на много уровней вглубь, но уследить за ходом выполнения ветвей становится все труднее и труднее.

VBA имеет условный оператор перехода для использования в случаях, когда необходимо выбирать из большого количества различных ветвей кода - Select Case. Он работает практически так же, как и Else..If, но более понятен.

Ключевые слова Select Case используются со многими операторами Case, где каждый оператор Case проверяет появление другого условия и выполняется только одна из ветвей Case. Ветвь Case может содержать один, несколько или ни одного оператора VBA.



Оператор безусловного перехода

Оператор безусловного перехода, можно сказать, является рудиментом от ранних языков программирования, в которых он являлся практически единственным средством организации циклических выполнений блоков кода.

Оператор безусловного перехода всегда изменяет порядок выполнения операторов в процедуре или функции. При этом не проверяется никаких условий.


Синтаксис:

GoTo line


line - любая допустимая метка или номер строки в той же процедуре или функции, которая содержит оператор GoTo.


При выполнении оператора GoTo управление выполнения программы немедленно передается оператору в строке, определенной с помощью метки line.



В среде программистов считается, что любую логику программы можно организовать без применения оператора безусловного перехода. Поэтому, применение GoTo может быть оправдано только в исключительных случаях.




В начало страницы



В начало страницы