Цикл с предусловием vba

Цикл с предусловием vba

Цикл с предусловием – предусматривает проверку условия перед телом цикла. В таком цикле возможна ситуация, когда эта последовательность действий ни разу не выполнится.

В VBA такой цикл может быть реализован с помощью оператора Do … Loop.

Пока условие верно — выполнять тело цикла. В теле цикла необходимо предусмотреть изменение параметра условия, иначе может произойти процесс зацикливания, остановить который можно сочетание клавишCtrl + Break.

Do While условие

Пока условие неверно — выполнять тело цикла.

Do Until условие

32. Vba. Циклический алгоритм. Циклы с постусловием. Операторы для их реализации.

Цикл с постусловием – предусматривает проверку условия после тела цикла. Такой цикл в любом случае хотя бы один раз обязательно выполнится.

В VBA такой цикл может быть реализован с помощью оператора Do … Loop.

Пока условие верно — выполнять тело цикла. В теле цикла необходимо предусмотреть изменение параметра условия, иначе может произойти процесс зацикливания, остановить который можно сочетание клавишCtrl + Break.

Loop While условие

Пока условие неверно — выполнять тело цикла.

Loop Until условие

33. Vba. Разветвляющийся алгоритм. Условные выражения.

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

На языке VBA разветвление можно описать оператором If. Различают строчный (однострочный) и блочный (многострочный) операторы.

Синтаксис однострочного оператора: после If записывается логическое выражение (ЛВ).

If ЛВ Then [ОП_истина] [Else ОП_ложь]

ОП_истина – операторы, которые будут выполнены, если ЛВ — истина (True).

ОП_ложь – операторы, которые будут выполнены, если ЛВ – ложь (False).

Вся конструкция записывается в одной строке.

На языке VBA разветвление можно описать оператором If. Различают строчный (однострочный) и блочный (многострочный) операторы.

Синтаксис многострочного оператора: после If записывается логическое выражение (ЛВ).

[ElseIf ЛВ_доп Then

ОП_истина – операторы, которые будут выполнены, если ЛВ — истина (True).

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

ЛВ_доп – дополнительные логические выражения.

ОП_доп_истина – операторы, которые выполняются, если ЛВ_доп – истина.

Вся конструкция записывается в несколько строк.

34. Vba. Разветвляющийся алгоритм. Однострочный оператор If.

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

На языке VBA разветвление можно описать оператором If. Различают строчный (однострочный) и блочный (многострочный) операторы.

Синтаксис однострочного оператора: после If записывается логическое выражение (ЛВ).

If ЛВ Then [ОП_истина] [Else ОП_ложь]

ОП_истина – операторы, которые будут выполнены, если ЛВ — истина (True).

ОП_ложь – операторы, которые будут выполнены, если ЛВ – ложь (False).

Вся конструкция записывается в одной строке.

Доброго времени суток! Данную статью я решил посвятить рубрике по основам программирования в Visual Basic for Application. И сегодня мы поговорим о циклах в VBA, разберём их синтаксис и рассмотрим несколько примеров, которые часто встречаются программисту.

Читайте также:  Какая кнопка позволит обновить окно очистить кэш

Сначала напомню, что цикл — процесс повторения части кода, выполняемый, пока не будет выполнено или нарушено заданное нами условие.

В данной статье мы разберём синтаксис и примеры следующих циклов в VBA:

  • For
  • For each
  • While
  • Until

Цикл For в VBA


Цикл for в VBA обычно используется при зацикливании фрагмента кода, если нам известно конечное значение counter — счетчика, при котором мы выйдем из цикла.
Возьмём для примера самый распространённый пример:

Сгенерировать массив из 5 целых значений

Обратите ваше внимание, что в этом примере используется неявное объявление при работе с циклами в VBA. i% — означает неявное объявление переменной i в формате integer. Такая конструкция по сути заменяет следующую: dim i as integer . Это используется для сокращения кода и для удобства написания и чтения. В старых версиях VBA необходимо указывать знак формата после каждого использования неявной переменной. В более поздних версиях достаточно всего один раз.

VBA для цикла for даёт возможность использовать функцию Step. Как ясно из перевода, это шаг, с которым мы будем проходить наш интервал. По умолчанию, он равен 1. Популярный вариант использования встречается в случаях, когда counter связан с переменной, используемой внутри цикла. Например, при написании программ, связанных с функциями.

Найти пересечение графика функции y = 5*x + 5 с осью ординат

Теперь представим, что у нас достаточно большой диапазон и мы не хотим заставлять компьютер считать лишние итерации. На этот случай существует команда Exit For. Перепишем наш последний пример с новой командой.

C помощью команды Exit можно закончить выполнение любого цикла в VBA. Достаточно указать после Exit название используемого цикла. Также им возможно завершить работу любой процедуры или функции.

Цикл For Each в VBA


For Each в VBA основан на переборе всех элементов, указанного типа в массиве, объекте или группе.
Самый популярный вариант его использования — перебор страниц в рабочей книге.

Вывести названия всех листов в рабочей книге

И ещё один интересный пример:

Изменить размер шрифта и выравнить по центру текст в label

Тут следует понимать, что через Controls можно обратиться к любому элементу формы. Если отфильтровать по имени, например, как мы сделали выше, то можно выделить группы элементов и изменить их свойства. В данном случае, размер шрифта и выравнивание.

Цикл While в VBA


Циклы в VBA, которые используют структуру Do..Loop (это while и until циклы) можно записывать с разным расположением фрагмента условия. Как видите на картинке выше, условие может проверяться после выполнения одной итерации, а может перед запуском цикла.
Самый популярный пример:

Отсортируйте по возрастанию сгенерированный массив методом пузырька

В вышеуказанном примере мы отсортировали массив с рандомными значениями в порядке возрастания. Метод пузырька считается достаточно долгим, но простым в реализации. В основном, им сортируют небольшие числовые массивы.

Читайте также:  Как запустить компьютер в безопасном режиме windows

Цикл Until в VBA


Как видите, отличия от while крайне несущественные. Цикл Until в VBA можно реализовать с помощью конструкции while NOT (condition). Тем не менее, приведу пример:

Заставить пользователя ввести число

Почему заставить? Потому, что если пользователь закроет окно ввода, это его не спасёт, оно будет появляться вновь и вновь пока он не введёт любое число.

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

Например . Вывести сообщение о текущей дате.

Для этого можно использовать следующий оператор:

MsgBox "Сегодня на календаре" & Date , , "Внимание"

В результате будет выведено следующее окно (рис.3.1).

После щелчка по кнопке ОК окно сообщения закроется, и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом MsgBox.

3.3.2. Функция InputBox

Функция InputBox осуществляет ввод значений переменных с помощью окна ввода и имеет следующий синтаксис:

Имя_Переменной = InputBox( Сообщение[, Заголовок])

Сообщение — обязательный аргумент. Задает в окне информационное сообщение, обычно поясняющее смысл вводимой величины

Заголовок — задает заголовок окна.

Например , Ввести значение переменной N с клавиатуры, предусмотрев значение по умолчанию равное 10.

Для этого можно использовать следующий оператор:

N = InputBox("Введите N", "Ввод исходных данных",10)

В результате будет выведено следующее окно для ввода значения переменной N (рис.3.2).

Если значение по умолчанию подходит пользователю, то после щелчка кнопки ОК окно ввода закроется, переменной N присвоится значение 10 и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом InputBox.

Если же значение по умолчанию не подходит пользователю, то перед щелчком по кнопке ОК необходимо ввести нужное значение переменной N.

3.4. Условный оператор IF

Для реализации разветвляющегося вычислительного процесса в VBA используется оператор If…Then…Else, который представляет собой простейшую форму проверки условий. Он имеет следующий синтаксис:

If УСЛОВИЕ Then ОПЕРАТОР_1 Else ОПЕРАТОР_2

ОПЕРАТОР_1 выполняется, если УСЛОВИЕ истинно, в противном случае выполняется ОПЕРАТОР_2. При этом оператор If…Then…Else записывается в одну строку.

УСЛОВИЕ – это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения, указанные в табл. 3.2.

Таблица 3.2. Логические отношения

Операция

Название

Выражение

Результат

True, если А равно В

True, если А не равно В

True, если А ,больше В

Больше или равно

True, если А больше или равно В

Пример 1 . Написать часть программы для алгоритма на рис. 3.3.

Пример 2. Написать часть программы для алгоритма на рис. 3.4.

3.5. Оператор выбора Select Case

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

Читайте также:  Когда выйдет самсунг с10

Select Case ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ

Case ЗНАЧЕНИЯ_1

Case ЗНАЧЕНИЯ_N

[Case Else

End Select

ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ может иметь любой скалярный тип, кроме вещественного. ЗНАЧЕНИЯ состоят из произвольного количества значений или диапазонов, отделенных друг от друга запятыми.

Тип ЗНАЧЕНИЙ должен совпадать с типом ПРОВЕРЯЕМОГО_ВЫРАЖЕНИЯ.

Сначала вычисляется ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ. Если его значение совпадает с одним из значений ЗНАЧЕНИЯ_I, то выполнятся ОПЕРАТОРЫ_I и управление передается оператору, стоящему после End Select. Если его значение не совпадает ни с одним из значений ЗНАЧЕНИЯ_I, то выполнятся ИНАЧЕ_ОПЕРАТОРЫ и управление передается оператору, стоящему после End Select

Например. Написать часть программы для алгоритма на рис. 3.5, определяющего значение переменной S в зависимости от значения переменной n.

3.6. Операторы цикла

Для реализации циклического вычислительного процесса, т. е. многократного выполнения одного или нескольких операторов, служит оператор цикла For…Next, который имеет следующий синтаксис:

For СЧЕТЧИК=НАЧ_ЗНАЧЕНИЕ Тo КОН_ЗНАЧЕНИЕ Step ШАГ

[Exit For]

Next СЧЕТЧИК

Цикл For…Next перебирает значения переменной СЧЕТЧИК, которая является параметром цикла, от начального до конечного значения с указанным шагом изменения. При этом обеспечивается выполнение блока операторов тела цикла при каждом новом значении счетчика. Если Step ШАГ в конструкции отсутствует, то по умолчанию считается, что шаг равен 1. По оператору Exit For можно выйти из оператора цикла до того, как СЧЕТЧИК достигнет последнего значения.*

Для перебора объектов из группы подобных объектов, например, ячеек из диапазона или элементов массива, удобно использовать оператор цикла For… Each…Next.

For Each Элемент In Группа

[Exit For]

Next Элемент

В VBA для организации циклов с неизвестным заранее числом повторений используются и другие операторы цикла:

циклы с предусловием – Do While Loop,

Do Until Loop;

циклы с постусловием Do Loop While,

Do Loop Until.

Ниже приведен синтаксис этих операторов цикла:

‘ Цикл с предусловием Do While Loop

Do While УСЛОВИЕ

[Exit Do]

Loop

Примечание. Не рекомендуется принудительно изменять значения параметра цикла, его начального и конечного значения в теле цикла For…Next.

‘ Цикл с предусловием Do Until Loop

Do Until УСЛОВИЕ

[Exit Do]

Loop

‘ Цикл с постусловием Do Loop While

Do

[Exit Do]

Loop While УСЛОВИЕ

‘ Цикл с постусловием Do Loop Until

Do

[Exit For]

Loop Until УСЛОВИЕ

Оператор Do While…Loop обеспечивает многократное повторение блока операторов до тех пор, пока УСЛОВИЕ соблюдается, а оператор Do Until…Loop пока УСЛОВИЕ не соблюдается. Операторы Do…Loop While, Do…Loop Until отличаются от перечисленных выше операторов тем, что сначала блок операторов выполняется по крайней мере один раз, а потом проверяется УСЛОВИЕ.

Для избежания зацикливания в теле цикла должен быть хотя бы один оператор, который изменяет значения переменных, стоящих в УСЛОВИИ.

Оператор Exit Do обеспечивает досрочный выход из оператора цикла.

Ссылка на основную публикацию
Фото с листком для вк
Сигна в ВК – это просто фотография человека с листком бумаги, на котором обычно написано чье-то имя. Часто надписи делают...
Установка виндовс зависла на начало установки
Если вы решили переустановить или установить операционную систему, но начало установки Windows 7 зависает, то в этой статье, думаю, вы...
Установка драйвера принтера отказ
Нередки ситуации, когда не устанавливается принтер, хотя система видит, что к компьютеру подсоединилось новое оборудование. Решение такой задачи требует серьезного...
Фото спортивных мужчин 40 лет
17. Джерард Батлер, 48 лет (kinopoisk) «Законопослушный гражданин» Джерард Батлер когда-то работал официантом, демонстратором игрушек и даже юристом. Он также...
Adblock detector