VBA-дағы циклдар. VBA циклдері (1-бөлім)

Цикл операторлары

VBA тілінде Циклдердің екі негізгі түрі бар: есептегіші бар циклдар (параметрлік) және шарты бар циклдар (итеративті).

Қарсы ілмектер белгілі бір әрекеттерді белгілі бір рет орындау қажет болған жағдайларда қолданылады.

Шартты циклдар бағдарламадағы белгілі бір әрекеттер белгілі бір шарт орындалғанға дейін қайталануы қажет болғанда қолданылады.

Параметрі бар циклдарҮшін... Келесі

Цикл құрылымы:

Үшін Цикл_параметрі = Бастапқы_мәнКімге Соңғы_мән

[Қадам қадам]

Операторлар

[Шығу]

Келесі [Цикл_параметрі]

қайда үшін кілт сөз VBA (ден), циклдің басын көрсете отырып;

цикл_параметрінің айнымалы мәні цикл санаушысы ретінде анықталған;

Initial_Value цикл параметрінің бастапқы мәнін көрсететін сан;

Негізгі сөзге VBA (бұрын), бөлу

Бастапқы_мән және соңғы_білім;

Final_Value цикл параметрінің мәнін көрсететін сан,

Цикл қай уақытта аяқталады;

Қадам кілт сөзі VBA (қадам) үшін қолданылады

Цикл қадамының спецификациялары, қосымша аргумент;

Цикл қадамын көрсететін санды қадам, яғни. мәні

Параметр мәнін арттырады (немесе азайтады).

Әр қадамда цикл. Бұл сан болуы мүмкін

Теріс;

Шығу үшін циклден ерте шығу операторы (міндетті емес);

Келесі кілт сөз VBA (келесі) білдіреді

Циклдың соңы.

Циклдік жұмыс:

1-қадам Алдымен цикл параметрі анықталады және осы айнымалының бастапқы және соңғы мәндері есептеледі және сақталады.

2-қадам Цикл параметріне бастапқы мән тағайындалады.

3-қадам Цикл параметрінің бастапқы мәні соңғы мәнмен салыстырылады.

Егер цикл параметрі соңғы мәннен үлкен болса, бағдарлама бірден циклден шығып, циклден кейінгі код жолына өтеді.

4-қадам Циклдің денесі орындалады.

5-қадам Циклдің денесін орындағаннан кейін цикл параметріне келесі мән тағайындалады. 3-қадамға өтіңіз.

Ескерту.

1. Егер кілт сөз қолданылсаҚадам , содан кейін цикл параметрі осы сөзден кейін көрсетілген санға сәйкес өзгереді. Сөз болсаҚадам жоқ болса, онда қадам мәні біреуге тең болады.

1-мысал.

I = 0-ден 10-ға дейін 2-қадам (I мәні 2-ге артады)

2. For... Келесі цикл кез келген жағдайға жеткенде мерзімінен бұрын тоқтатылуы мүмкін. Ол үшін циклдің дұрыс жеріне операторды орналастыру керекШығу үшін.

2-мысал.

Dim S бүтін сан ретінде

Dim j бүтін сан ретінде

S=2

j = 1-ден 10-ға дейін

S = S + j

Егер S > 6 болса

Шығу үшін (Мән болса, циклден шығыңыз S > 6)

Аяқтау болса

Келесі j

MsgBox(S)

Шартты циклдар (итеративті)

Егер қандай да бір әрекетті (бірнеше әрекеттерді) көп рет орындау қажет болса, бірақ қанша рет екені алдын ала белгілі болмаса және бұл қандай да бір шартқа байланысты болса, онда алғы шарты немесе кейінгі шарты бар циклды пайдалану керек.

VBA тілінде екі негізгі цикл бар DO...LOOP кілт сөз арқылы енгізілген шартпенӘзірге , және кілт сөзбен енгізілген шартпенДейін . Олардың екеуі де алғы шартпен немесе кейінгі шартпен болуы мүмкін.

Синтаксис:

қайда түйінді сөз (do);

Әзірге кілт сөз (әлі);

Дейін кілт сөз (дейін);

Цикл циклдің аяқталуын көрсететін түйінді сөз;

<условие>ақиқаттығы тексерілетін логикалық өрнек

Цикл денесінің әрбір орындалуының басында;

<тело_цикла>операторлардың ерікті тізбегі;

Жасаңыз... Құрылыс кезінде оқылады: шарт орындалғанша орындаңыз. Дизайнда Do...While For

The Do... Құрылыста оқылғанға дейін: шарт орындалғанша орындаңыз. ДизайндаЖасаңыз... дейін Қадамды арттыру үшін арнайы операторды жазу керек, өйткені онда дизайннан айырмашылығыҮшін , бұл автоматты түрде орындалмайды.

Негізгі сөзден кейін жазылатын шартДейін , әрбір итерацияның соңында тексеріледі (цикл денесі орындалғаннан кейін). Ол циклдегідей жұмыс істемейтінін ескеріңізӘзірге . шарт дұрыс болса (Рас ), содан кейін цикл аяқталады. Шарт орындалмаса (жалғанЖалған ), содан кейін цикл денесі қайтадан орындалады.

1-мысал.

Мәселенің тұжырымы. Ішкі бағдарлама процедурасын пайдаланып ақырлы қатардың қосындысын есептеңіз.

Тапсырманы орындау технологиясы:

1. Бастапқы деректер:мен  З

Нәтиже: S  R .

2.Алдын ала шарты бар циклды пайдаланып стандартты жоба модулінде келесі теңшелетін процедураны теріңізӘзірге:

Ішкі жиын()

Dim S бүтін сан ретінде

Күңгірт i бүтін сан ретінде

S=0

i = 1

Мен кезінде жасаңыз<= 10

S = S + i^2

i = i + 1

Цикл

MsgBox(S)

Аяқтау қосалқы

3.Алдын ала шарты бар циклды пайдаланып стандартты жоба модулінде келесі теңшелетін процедураны теріңізДейін:

Ішкі жиын()

Dim S бүтін сан ретінде

Күңгірт i бүтін сан ретінде

S=0

i = 1

i > 10 болғанша орындаңыз

S = S + i^2

i = i + 1

Цикл

MsgBox(S)

Аяқтау қосалқы

4 Кейінгі шарты бар циклды пайдаланып стандартты жоба модулінде келесі теңшелетін процедураны теріңізӘзірге:

Ішкі жиын()

Dim S бүтін сан ретінде

Күңгірт i бүтін сан ретінде

S=0

i = 1

S = S + i^2

i = i + 1

Цикл while i<= 10

MsgBox(S)

Аяқтау қосалқы

5 Кейінгі шарты бар циклды пайдаланып стандартты жоба модулінде келесі теңшелетін процедураны теріңізДейін:

Ішкі жиын()

Dim S бүтін сан ретінде

Күңгірт i бүтін сан ретінде

S=0

i = 1

S = S + i^2

i = i + 1

i > 10 дейін цикл

MsgBox(S)

Аяқтау қосалқы

Шешім қабылдау құрылымдарынан басқа цикл деп аталатын басқару құрылымының тағы бір түрі бар.

Циклалгоритмдік құрылым, оның көмегімен операторлар блоктарының бірнеше рет қайталануы жүзеге асырылады.

Visual Basic-те циклдердің үш негізгі түрі бар, олар For:Next, Do:Loop және While:Wend конструкциялары арқылы жүзеге асырылады.

Үшін: Келесі цикл. Берілген мәлімдемелер блогының қайталану саны алдын ала белгілі болған кезде қолданылады. Бұл дизайн келесідей көрінеді:

Есептегіш үшін = бастапқы мән Соңғы мәнге Операторлар1 Операторлар2 Келесі [есептегіш]

Жоғарыдағы операторлар бірінші рет орындалғанда, санауыш айнымалыға бастапқы мән беріледі, одан кейін екі опция мүмкін болады. Егер шарт санауышы > соңғы мәнді тексеру нәтижесінде True мәні алынса, онда цикл аяқталады және операторлар1 және операторлар2 блоктары ешқашан орындалмайды. Екінші жағынан, егер шартты тексерудің нәтижесі False болса, онда оператор блоктары бірінші рет орындалады, содан кейін цикл басына көшу орын алады. Әрі қарай, санауыш айнымалының мәні Step түйінді сөзінен кейін орналасқан қадамға артады (егер ол жоқ болса, қадам = 1 орнатылады). Осыдан кейін шарт есептегішінің ақиқаты > соңғы мән және т.б. қайтадан тексеріледі, циклдің соңы осы тексерудің нәтижесі True мәні болған сәтте орын алады.

Кейбір қосымша шарттар орындалған кезде «төтенше жағдай» циклін тоқтату қажет. Бұл жағдайда цикл ішінде әдетте басқару құрылымында орналасатын Exit:For қызметтік фразаны пайдалану керек, мысалы:

Шарт болса, Шығу үшін

Егер шартты тексеру нәтижесі True болса, онда циклдің орындалуы тоқтатылады, ал оператор1 блогы қайтадан орындалады, бірақ оператор2 блогы орындалмайды.

Орындау: цикл. Ол цикл денесі операторларының қайталану саны алдын ала белгісіз болған жағдайда қолданылады. Бұл дизайнның төрт түрі бар. Алғашқы екеуін пайдаланған кезде цикл не көп рет орындалады, не мүлде орындалмайды.

Do Until шарты цикл операторлары

Егер шартты тексеру нәтижесі False болса, онда операторлар блогы орындалады, әйтпесе Loop қызмет сөзінен кейін орналасқан операторға көшу жүзеге асырылады. Екінші жағынан, егер шарттың бірінші сынағы True нәтижесін қайтарса, онда цикл бір рет болса да орындалмайды.

Do while шартының цикл мәлімдемелері

Егер шарт ақиқат болса, онда операторлар блогы орындалады, бірақ егер ол жалған болса, яғни тексеру нәтижесі False болса, онда цикл бір рет болса да орындалмайды.

Егер соңғы екі конструкция пайдаланылса, цикл кем дегенде бір рет орындалады.

Шартқа дейін мәлімдемелер циклін орындау

Мәлімдеме блогы шартты тексеру нәтижесі False болғанша орындалады, әйтпесе цикл аяқталады.

Do операторларының циклі while шарты

Егер шарт жалған болса, операторлар блогы орындалады, бірақ ол ақиқат болса, т.б. Тексеру нәтижесі True, содан кейін цикл аяқталады.

While циклі: Вэнд. Ол сонымен қатар цикл денесінің мәлімдемелерінің қайталану саны алдын ала белгісіз болған кезде қолданылады және келесі синтаксиске ие:

Шарт Wend мәлімдемелері

Шартты тексеру нәтижесі True болса, онда операторлар блогы орындалады, әйтпесе Wend қызметтік сөзінен кейін орналасқан операторға көшу жүргізіледі. Екінші жағынан, егер шарттың бірінші сынағы False болса, онда цикл бір рет болса да орындалмайды.

Оператор синтаксисі:

ҮшінЕсептегіш= Бастау ТоСоңы[ҚадамҚадам]

Блок_операторлар

КелесіЕсептегіш

Мұнда көрсетілген:

ҮшінҮшін (міндетті кілт сөз VB);

Кімгебұрын (міндетті кілт сөз VB);

Блок_операторлар– бір немесе бірнеше оператор шақырылды цикл денесі;

Есептегіш –орындалатын циклдар санын есептейтін бүтін айнымалы;

Басы, соңы -бастапқы және соңғы санауыш мәндері;

Қадамқадам(кілтсөзVB);

Қадам –қарсы өзгерту қадамы; теріс болуы мүмкін; параметр міндетті емес, себебі қадам 1 болса, қадам жасай аласыз Қадамтөмен;

Келесі – келесі (міндетті түйінді сөз VB, цикл операторының жазбасының соңы).

Есептегіш мән (Бастау, Аяқтау)бола алады сандық тұрақтылар немесе бүтін немесе нақты түрдегі айнымалылар теріс немесе оң сандар болуы мүмкін. Циклдің денесі кемінде бір рет орындалуы үшін болуы керек Басы ≤ Соңы,Егер Қадам> 0, және Басы ≥ Соңы,Егер Қадам< 0. Бұл белгілі болғаннан кейін Есептегіш>Соңы (Егер Бастау< Конец), Циклдің орындалуы аяқталады. Егер Бастау =Соңы,цикл бір рет орындалады;

9.1-мысал .Функцияны бағалауЫ = 2 – 1.5 СинксX диапазондағы 0,2 қадаммен өзгергенде.

Y есептеуге және Х аргументі мен Y функциясын шығаруға арналған бағдарламаның фрагменті:

X = 0-ден 2.4-ке дейін 0.2-қадам

Y = 2 – 1,5*Sin(X)

Бұл циклдің қалай жұмыс істейтінін түсіну үшін, міне, көмегімен жасалған ұқсас циклге арналған бағдарлама операторБару, тегтер, операторЕгерСодан кейін.

M1: X = X + 0,2

Егер X<= 2.4 Then

Y = 2 – 1,5*Sin(X)

Бұл бағдарлама қалай жұмыс істейтінін қарастырайық. Бірінші есептеу Y циклден шығып кеткендей стандартты емес. Цикл GoToM1 басқару элементін M1 белгісіне бірінші тасымалдаудан кейін басталады. M1 деп белгіленген жолда X аргументі 0,2 қадамға ұлғайтылады және X-тің жаңа мәні 2,4-тің соңғы мәнінен асатынын тексеру үшін дереу тексеріледі. Егер ол аспаса, онда Y есептеуі осы жаңа X арқылы қайталанады. Содан кейін GoToM1 операторы қайтадан орындалады - басқаруды M1 белгіленген жолға тасымалдау. Y есептеудің бұл итерациялары (циклдері) Х 2,4-тен асқан кезде аяқталады.

Енді бағдарламаны If бағдарламасымен For...Next циклімен салыстырайық.

X = 0-ден 2.4-ке дейін 0.2-қадам

екі жолды ауыстырады

M1: X = X + 0,2

Егер X<= 2.4 Then

Бұл For циклінде орындалатын кодтың соңғы екі жолы, бірақ біз оны көрмейміз. Біз оларды cFor жолымен кодтадық... GoTo M1 код жолы Next X (сөзбе-сөз: келесі X) сөзімен кодталған. Бұл ықшам дизайнға әкеледі.

For...Next циклін пайдаланған кезде әртүрлі есептерді шығару үшін цикл санауышын пайдалануды үйрену керек. Есептегішті мәселені шешу үшін қалай пайдалану керектігін анықтау үшін сізге қажет есептің тұжырымын талдау, есептің кейбір параметрлерінің өзгеру заңдылықтарын табу.

9.2-мысал . Қатар элементтерінің қосындысын анықтау: .

Бағдарлама фрагменті:

S = 0 ‘ S – қатарлар қосындысы

i = 1-ден 16-ға дейін ‘ санағыш i – бөлшектің бөлгіші

S = S + 1/i ‘ соманың жинақталуы

«S =» басып шығару; S ‘ пішінге S сомасын шығарыңыз

i санағыштың әрбір мәні үшін 1/i өрнегі 1-ден бастап қатардың элементтерін ретімен құрайды.

9.3-мысал . Элементтер қатарының қосындысын есептеу
.

Бағдарлама фрагменті:

S = 0 ‘ S – қатарлар қосындысы

i = 1-ден 18-ге дейін ‘ санағыш i – алым

S = S + i/(i + 1) ‘ бөлгіш алымнан 1 артық

«S =» басып шығару; S ‘ пішінге S сомасын шығарыңыз

9.4-мысал . Қосындыны есептеу: 5 + 8 + 11 + … + 32 + 35

Бағдарлама фрагменті:

S = 0 ‘ S – қатарлар қосындысы

i = 5-тен 35-ке дейін 3-қадам ‘ арифметикасын аламыз _

3-бөлгіші бар прогрессия

«S =» басып шығару; С

9.5-мысал. Берілген х үшін қосындыны есептеу:

Есепті талдау Х дәрежесі 1-ден 10-ға дейін өзгеретінін көрсетеді. Бұл жағдайда Х коэффициентіндегі алым дәрежеден 1-ге, ал бөлгіш 2-ге артық. есептегіш i. Содан кейін сіз келесідей бағдарлама жасай аласыз (фрагмент):

S = 1 ‘ S – қатардың қосындысы

i = 1-ден 10-ға дейін санауыш i сияқты, дәреже X-де өзгереді

S = S + (-1)^i*(i + 1)*x^i / (i + 2)

«S =» басып шығару; С

ЦиклдерҮшінКелесіүшін пайдаланыладыкіріс шығыс Жәнемассивтерді өңдеу .

9.6-мысал. B( жиым элементтерінің мәндерін енгізу және шығаруН).

Бағдарлама фрагменті:

‘ N айнымалысына мән беруді өткізіп жібереміз, _

txtN мәтін өрісіндегі пішінге енгізілген:

B(i) = InputBox("B(" & i & ") элементін енгізіңіз", _

«В кіріс массиві(» & N & «)»)

"" басып шығару; B(i);

Функция InputBox() жабу түймесі, көрсетілген хабарлама, енгізу өрісі, түймелері бар диалогтық терезені көрсетеді ЖАРАЙДЫ МА,Бас тарту,берілген тақырыппен (немесе онсыз). Егер 12 саны енгізілсе - N массивінің өлшемі, онда біздің мысалда ол бірінші рет пайда болған кезде бұл терезе келесідей болады:

Көріп отырғанымыздай, хабарлама B(1) элементін енгізіңізмәтін жолағына 1-ші элементтің мәнін енгізуді ұсынады. Бұл терезе 12 рет пайда болады, себебі массив 12 элементтен тұрады. Бұл пішін тақырыбынан туындайды. Шақырудағы B(i) элементінің индексі 1-ден 12-ге дейін өзгереді.

Пішінде B(N) массивінің элементтерінің мәндерін ғана көрсеткіңіз келсе, онда цикл денесі бір оператордан тұрады:

Жиым элементтерін оларда кейбір әрекеттерді орындау үшін қарау For...Next циклінің операторы арқылы да орындалады.

берейік бір өлшемді массивтерді өңдеу мысалдары.

9.7-мысал . B массивіндегі максималды элементті анықтау(М).

Бастапқы деректерді енгізуді және нәтижелерді шығаруды қоспағанда, біз алгоритмді қысқаша сипаттаймыз:

    Bmax айнымалысын жариялайық, онда массивтің бірінші элементінің мәнін енгіземіз және Imax айнымалысын, оған 1 – массивтің бірінші элементінің индексін тағайындаймыз.

    Циклде For...Next операторының көмегімен 2-шіден бастап массивтің барлық элементтерін қарастырамыз. If...Then операторының көмегімен олардың мәндерін Bmax айнымалысында сақталған мәнмен салыстырамыз.

    Егер массив элементінің мәні Bmax мәнінен үлкен болып шықса, онда Bmax мәніне осы элементтің мәні, ал Imax мәніне осы массив элементінің индексі тағайындалады.

Цикл аяқталғаннан кейін Bmax айнымалысы максималды элементтің мәнін, ал Imax оның индексін (санын) қамтиды.

Алгоритмнің осы бөлігіне арналған бағдарлама.

Bmax = B(1): Imax = 1

Егер B(i) > Bmax болса, Bmax = B(i): Imax = i

9.8-мысал. Массивтің оң элементтерінің қосындысын, көбейтіндісін және санын анықтауD(М).

Айнымалылар: S, P, K – сәйкесінше оң элементтердің қосындысы, көбейтіндісі және саны.

Алгоритммұндай анықтама:

    S және K айнымалысына нөлді, ал P айнымалысына 1 мәнін береміз. Ереже бойынша қосынды жинақталған айнымалылар, мұнда ол S және k, әрқашан цикл алдында нөлге, ал айнымалылар өнім есептелетін 1 тағайындалады.

    For...Next циклін қолданып, массивтің барлық элементтерін аралап, олардың оң екенін тексереміз (D(i) > 0).

    Егер элемент оң болып шықса, онда оның мәнін S қосындысының мәніне қосып, жаңа қосындыны сол айнымалыға сақтаймыз. Р айнымалысын элементтің оң мәніне көбейтеміз және оны Р айнымалысында сақтаймыз. Ал біз K айнымалысына 1 қосып, жаңа мәнді сол айнымалыға сақтаймыз

БағдарламаАлгоритмнің бұл бөлігі келесідей көрінеді:

S = 0: P = 1: K = 0

Егер D(i) > 0 болса

S = S + D(i) ‘ сома осылай жинақталады _

D(i) массив элементтерінің оң мәндері

P = P*D(i) ‘ оң көбейтіндісінің анықтамасы

‘ массив элементтері

K = K + 1 ‘ бұл оператор САНАУШЫ деп аталады, мінекей

‘ оң массив элементтерінің санын анықтайды

9.9-мысал. Тақ массив элементтерінің қосындысын, көбейтіндісін, санын және орташа мәнін табуD(М).

Міне, осындай анықтамаға арналған бағдарламаның фрагменті.

S = 0: P = 1: K = 0

Егер D(i) Мод 2<>0 Содан кейін

Ssr = S/k ‘ тақ элементтердің орташа мәнін есептеу

Бұл бағдарлама фрагментін 9.8-мысалдағы бағдарламамен салыстырыңыз. Бұл бағдарлама алдыңғысын толығымен дерлік қайталайды. Тек If операторындағы шарт өзгерді. ШартD(i) Мод 2<>0 D(i) массивінің 2-ге біркелкі бөлінбейтін элементтерін, яғни тақ элементтерді іздейтінімізді білдіреді. Егер D(i) Mod 2 = 0 шартын тексерсек, онда массивтің жұп элементтерін таңдаймыз.

Белгілі болғандай, бөлу Модбөлудің қалған бөлігін бүтін сандармен береді. Мысалы, d = 34Mod4 операторын орындағаннан кейін d айнымалысы 2-ге тең болады. Сондықтан 4-ке еселік массив элементтерін таңдау үшін D(i) Mod 4 = 0 шартын тексеру керек. Шарт келесідей болады: басқа сандарға еселік элементтерді іздесек, ұқсас болады. Бұл басқа сандар 4 орнына жазылады.

Мысал 9.10. Массив элементтерін жазуР(Н), 5-ке еселіктерді басқа массивке енгізіп, жаңа массивті пішінге шығарады.

Басқа массивті белгілейік, мысалы, R5(N). Бұл жаңа массивтің өлшемін бастапқымен бірдей деп қабылдау керек, өйткені төтенше жағдайда барлық элементтер 5-ке еселік болуы мүмкін.

Мәселе алгоритмі:

    Есептегішті қалпына келтіру k. For...Next цикл операторының көмегімен R(N) массивінің барлық элементтерін қарастырамыз.

    Әрбір элементті If...Then операторы арқылы және массив элементін Mod бойынша бөлу арқылы 5-ке еселілігін тексереміз.

    Егер элемент 5-ке еселік болса, онда k=k+ 1 типті санауыштың көмегімен 1-ден бастап R5(N) массивінің индекстерін құрастырамыз және оны осы басқа –R5(N) массивіне жазамыз.

    Егер k нөлден өзгеше болса, пішінде R5() массивін көрсетіңіз.

    Егер k нөлге тең болса, біз: «5-ке бөлінетін элементтер жоқ» шығарамыз.

Бағдарлама фрагменті:

Егер R(i) Mod 5 Онда k = k + 1: R5(k) = R(i)

Егер к<>0 Содан кейін

«5-ке бөлінбейтін элементтер жоқ» басып шығару

Циклдерді басқа ілмектер ішінде кірістіруге болады.

Жұмысты көрсетейік кірістірілген ілмектер . Төмендегі бағдарлама i, j және k цикл санауыштарының мәндерін көрсетеді. i, j, k шығыстарынан кірістірілген циклдар қалай орындалатыны белгілі болады.

Жеке қосалқы frmCycle_DblClick()

ScaleMode = 4 ‘бірлік – символдар

i = 1-ден 3-ке дейін сыртқы цикл үшін

"i =" басып шығару; мен;

j = 1-ден 4-ке дейін ‘1-ші кірістірілген цикл үшін

CurrentX = TextWidth("i = 1 ") + 5

"j =" басып шығару; j;

CurrentX = TextWidth("i = 1 j = 1 ") + 7

k = 1-ден 5-ке дейін ‘2-ші кірістірілген цикл үшін

Көрсетілген пішінде (1-сурет) барлық үш циклдің есептегіштерін шығару нәтижелері көрсетілген: сыртқы цикл – санауыш i, бірінші кірістірілген цикл – j санауышы және екінші, ең ішкі цикл – k санауыш. Көріп отырғанымыздай, ең баяу есептегіш - сыртқы цикл(poi), және «Ең жылдам» - ең ішкі циклдің есептегіші (сәйкеск).

Бағдарлама frmCicli пішінінде тышқанның сол жақ батырмасын екі рет басқаннан кейін орындалады.

CurrentX, CurrentY – Print әдісі арқылы ақпаратты көрсету үшін бастапқы нүктенің X, Y координаттарын анықтайтын пішін қасиеттері (формадағы X және Y осьтерінің орналасуын 1-суретті қараңыз).

TextWidth() – қос тырнақшаға аргумент ретінде функцияда көрсетілген мәтіннің енін қайтаратын функция.

Кірістірілген циклдар екі өлшемді массивтерді (матрицаларды) өңдеу кезінде қолданылады. Бірақ кейбір тапсырмаларда, екі өлшемді массивтің элементтерін енгізу мен шығаруды қоспағанда, сіз өзіңізді бір циклмен шектей аласыз. Матрицалық бағдарламалаудың кейбір мысалдарын қарастырайық.

9.11-мысал. Бүтін сандардың матрицасын (екі өлшемді массив) енгізу және шығаруintA(Н).

Матрицаны енгізуге болады жолдар және бағандар бойынша . Бұл оңайырақ - жол бойынша жол, егер сіз массив элементтерінің шығысын олар енгізілгеннен кейін бірден пішінге бағдарламаласаңыз.

Матрицаны енгізу және шығарусызық бойынша - фрагмент 1.

Dim M бүтін сан, N бүтін сан, i бүтін сан, j бүтін сан

Dim intA() Integer ‘ динамикалық массивті жариялайды

M = Val(txtN.Text) ‘ M – жолдар саны

N = Val(txtN.Text) ‘ N – бағандар саны

ReDim intA(M, N) Integer ретінде ‘ алапты қайта анықтаңыз

i = 1 To M ‘ үшін i оның мәнін толық болғанша сақтайды

‘ j ішіндегі кірістірілген цикл орындалмайды

"" басып шығару; intA(i, j); ‘ жол бойынша шығару

Print ‘ жаңа жолдың басына өтіңіз

Матрицаны бағандар бойынша енгізу үшін сыртқы циклды j (баған нөмірлерін көрсетеді), ал ішкі циклды i (жол нөмірлерін көрсетеді) жасау керек.

Матрицаны енгізу және шығарубағандар бойынша фрагмент 2.

PrY = 2500: CurrentY = PrY ‘ PrY бастаудың Y координатасын орнатады

‘ пішіндегі әрбір бағанның бірінші элементін көрсетеді

j = 1 үшін N ‘ j толық болғанша өз мәнін сақтайды

‘i ішіндегі кірістірілген цикл орындалмайды

intA (i, j) = InputBox("intA(" & i & "," & j & ") элементін енгізіңіз", _

"IntA матрицасын енгізу(" & M & "," & N & ")")

Басып шығару қойындысы(6 * j); intA(i, j) ‘ бағандар бойынша шығару

Бірінші элементті көрсету үшін CurrentY = PrY '

' келесі баған

Бұл екінші бағдарлама фрагменті бірінші фрагменттің алғашқы 5 жолын қайталамайды. Tab(6 * j) функциясы форманың сол жақ шетінен бастап жолдағы (таңбалармен) шығыстың басын орнатады. Мұндағы PrY координатасы 2500 айналдыруға тең, бірақ басқа мәнді таңдауға болады.

9.12-мысал . Жиым элементінің мәндерін ретке келтіруВ(Н) Көтерілу.

Массивтерге тапсырыс берудің бірнеше алгоритмдері бар. Міне, олардың бірі: кірістірілген циклдарды пайдалануҮшінКелесібіз элементтерді біріншіден соңғыға дейін таңдаймыз және олардың әрқайсысын кейінгі элементтермен салыстырамыз; егер келесі элемент таңдалған элементтен кішірек болып шықса, біз оларды ауыстырамыз.

Бұл алгоритмді жүзеге асыратын бағдарламаның фрагменті:

i = 1 үшін N – 1

j = i + 1 үшін N

Егер V(j)< V(i) Then P = V(i): V(i) = V(j): V(j) = P

Бағдарламаның осы фрагментін түсіндірейік.

i санағышы бар сыртқы циклды пайдаланып, келесі элементтермен салыстыру үшін V(i) элементін таңдаймыз. j есептегіші бар ішкі цикл салыстыру үшін V(j) келесі элементтерін таңдайды. Бастапқы j мәні i+ 1. Бұл кейінгі элементтердің бірінші элементі.

V(i) және V(j) элементтерінің мәндерін алмасу үшін біз кейбір P айнымалысын енгіземіз, онда массив элементтерінің бірінің мәнін уақытша «жасырамыз» (бағдарламада бұл V(i) )). Содан кейін V(i) элементіне V(j) элементінің мәні, ал V(j) элементіне P айнымалысында сақталатын V(i) мәні тағайындалады. Егер біз P-де V(j) мәнін «жасырсақ», онда мәндерді алмасу коды келесідей болады: P = V(j): V(j) = V(i): V(i) = P Нәтиже өзгермейді.

Кімге алапты кему ретімен сұрыптаңыз, тексеру шартын V(j) > V(i) түрінде жазу жеткілікті, яғни теңсіздік белгісін басқасына өзгерту.

Егер массив сандық емес, жол болса және фамилиялар массив элементтеріне енгізілсе, онда 9.12 мысалында бағдарламаны пайдалана отырып, фамилиялар тізімін алфавит бойынша ретке келтіруге болады. Компьютерде қолданылатын алфавиттің әріптері үшін келесі теңсіздіктер дұрыс: А.< Б < В < Г….< Я и т. д., поскольку числовые коды букв алфавита последовательно увеличиваются, начиная с А и до конца алфавита. Это же справедливо и для букв английского алфавита.

9.13-мысал . Матрицаның тақ бағандары үшін оң элементтердің қосындысын есептеуФ(М, Н) және сомаларды пішінге шығарыңыз.

Бағдарлама алгоритмі:

    2-қадаммен сыртқы циклды пайдалана отырып, бірінші бағаннан бастап матрицаның тақ бағандарының индексін қалыптастырамыз.

    Біз оң элементтердің қосындысы жиналатын S қосындысын қалпына келтіреміз.

    Ішкі циклде массив элементінің белгісін тексереміз.

    Егер массив элементі оң болса (> 0), S қосындысын есептейміз.

    Ішкі цикл аяқталғаннан кейін пішінде S қосындысын көрсетеміз.

Фрагмент бағдарламалар:

j = 1 үшін N 2-қадам

Егер F(i, j) > 0 болса, S = S + F(i, j)

«Баған сомасын» басып шығару; j; “:”; S ‘ j – баған нөмірі!

Кірістірілген циклдар ұйымдастыруға мүмкіндік береді опцияларды санау және аналитикалық жолмен шешілмейтін мәселелерді шешу. Іздеу нәтижесінде шешім нұсқалары алынады, олардың ішінен мәселенің шарттарына сәйкес келетін біреуі немесе бірнешеуі таңдалады.

9.14-мысал. 1801 рубль бар. 31 рубльге қанша шоколад сатып алуға болады? және барлық ақшаны толығымен жұмсау үшін 18 рубльге тоқаш.

Бағдарлама:

Сома = 1801

Барлық шоколадтар = қосынды\31: AllBulks = қосынды\18

i = 1 үшін AllChocolates

j = 1 үшін VseBulk

Бағасы = i * 31 + j * 18 ‘сатып алудың жалпы бағасы

Баға = 1801 болса, онда

«Шоколад:» басып шығару; мен; Tab(19); "Булок:"; j

Орыс тілінде аталған айнымалыларды қолданатын бағдарламаны түсіндірейік.

Біріншіден, біз шоколадтың максималды саны қандай екенін анықтаймыз немесе бүкіл сомаға сатып алуға болатын жай ғана орамдар. Шоколадтар мен орамдардың санын іздеу санын шектеу үшін біз AllChocolates және AllBulks алынған мәндерін қолданамыз. Шоколадтар санының (i) және орамдар санының (j) әрбір мәні үшін оларды сатып алудың жалпы бағасын анықтаймыз. Есептелген Баға 1801 болса, онда таңдалған опция мәселенің шешімдерінің бірі болып табылады.

Tab() функциясы осы функциядан кейінгі ақпарат пішіннің шетінен қай позициядан көрсетілетінін көрсетеді. Егер Tab(19) болса, онда 19-шы позициядан.

Бағдарлама 3 ықтимал сатып алу опциясын көрсетеді:

Шоколад 7, орамдар 88

Шоколад 25, орам 57

Шоколад 43, орамдар 26

Егер сіз біржақты жауап бергіңіз келсе, қосымша шартты тұжырымдауыңыз керек. Мысалы, «шоколадқа қарағанда тоқаш аз сатып алынды». Сонда жалғыз шешім 3-ші нұсқа болады.

Кірістірілген циклды бағдарламалауды қолдана отырып, қарапайым күшпен шешуге болатын көптеген математикалық есептер бар.

Соңғы жаңарту: 30.10.2015

Басқару құрылымдарының тағы бір түрі - ілмектер. VB.NET циклдердің бірнеше түрін пайдаланады.

Үшін...Келесі цикл

Бұл жағдайда цикл белгілі бір рет орындалады және бұл сан санауыш арқылы көрсетіледі:

i үшін Integer = 1-ден 9-ға дейін Console.WriteLine("(0) санының квадраты (1)", i, i * i) Келесі

Мұнда i айнымалысы санауыш қызметін атқарады. Сөзден кейін Кімгеесептегіштің максималды мәнін қоямыз. Әрбір цикл сайын санауыш мәні бір есе артады. Және бұл мән кейінгі мәнмен салыстырылады Кімге. Егер бұл екі мән тең болса, цикл жұмысын тоқтатады.

Циклдермен жұмыс істегенде біз әр өту кезінде санауыш мәнін тек бір ғана емес, кез келген санға көбейте аламыз. Мұны істеу үшін сізге кілт сөзді пайдалану керек Қадамжәне одан кейін санауыш мәні ұлғайтылатын цикл қадамын көрсетіңіз немесе есептегішті тікелей циклде көбейте аласыз:

i үшін Integer ретінде = 1-ден -9-ға дейін Қадам -1 үшін j As Integer = 1-ден 9-ға дейін Console.WriteLine("i және j сандарының көбейтіндісі (0)", i * j) j += 1 Келесі Келесі

Бірінші циклдегі қадам теріс мәнге орнатылғанын және санауыш мәні әр өту сайын біреуге азаятынын ескеріңіз. Ішкі циклде j санаушысы әр өткен сайын 2-ге артады, өйткені ол әдепкі бойынша біреуге артады, біз де оны циклде анық түрде бір көбейтеміз. Нәтижесінде ішкі цикл бес рет, ал сыртқы цикл тоғыз рет жүреді, яғни шын мәнінде 45 цикл алынады.

Әрқайсысы үшін цикл... Келесі

A For Every циклі массив немесе жинақ сияқты белгілі бір топтағы элементтер арқылы қайталанады. Бізде Integer типті массив бар делік және бізге бұл массивті кездейсоқ мәндермен инициализациялау керек, содан кейін оның барлық элементтерін экранда көрсету керек:

"Бес саннан тұратын массив құру Dim nums(4) Integer As Integer Dim r As New Random() "алапты инициализациялаңыз For i As Integer = 0 to nums.Length - 1 nums(i) = r.Next(100) Next" Элементтер жиымын шығару Әрбір i үшін бүтін сан ретінде nums Console.Write("(0) ", i) Келесі

For Every операторында алдымен массив элементтерінің мәндерін алатын айнымалы мәнді көрсетеміз. Және кілт сөзден кейін жылыБіз барлық элементтер арқылы қайталануымыз керек топты көрсетеміз.

While циклі

While циклі While сөзінен кейін берілген белгілі бір шарт орындалғанша орындалады:

Dim j ретінде бүтін сан = 10 кезінде j > 0 Console.WriteLine(j) j -= 1 Аяқтау кезінде

Цикл жасау

Do циклі, While циклі сияқты, белгілі бір шарт орындалғанша орындалады. Дегенмен, ол әртүрлі формада келеді. Осылайша, келесі мысал алдымен шартты тексереді, содан кейін циклде анықталған код блогын орындайды:

Dim j бүтін сан ретінде = 10 Do while j > 0 Console.WriteLine(j) j -= 1 цикл

Бұл жағдайда, цикл j мәні нөлден үлкен болғанша орындалады. Бірақ тағы бір жазба бар, мұнда While сөзінің орнына сөз қолданылады Дейін, және цикл белгілі бір шарт орындалғанша, яғни j мәні нөлден аз болғанша орындалады:

Dim j бүтін сан = 10 ретінде j дейін орындаңыз< 0 Console.WriteLine(j) j -= 1 Loop

Егер циклде бастапқыда көрсетілген шарт дұрыс болмаса, онда цикл жұмыс істемейді. Бірақ біз циклдің соңында чекті анықтай аламыз, осылайша біздің цикл кем дегенде бір рет орындалады:

Dim j бүтін сан ретінде = -1 Console.WriteLine(j) j -= 1 цикл j дейін< 0 "либо Do Console.WriteLine(j) j -= 1 Loop While j > 0

Жалғастыру және шығу мәлімдемелері

Көбінесе циклдің аяқталуын күтудің қажеті жоқ, бірақ белгілі бір шарт орындалса, циклден дереу шығу керек. Ол үшін операторды пайдаланыңыз Шығу, содан кейін олар шығу жүзеге асырылатын цикл түрін көрсетеді, мысалы, Exit Do (Exit while):

Dim r ретінде Жаңа Кездейсоқ() Dim сан бүтін сан ретінде = r.Келесі(100) i үшін бүтін сан = 0-ден 100 санға дейін -= 1 Егер num< 50 Then Exit For Next Console.WriteLine(num)

Тағы бір тапсырма бар - циклден емес, ағымдағы өтуден немесе итерациядан шығып, келесіге өту. Ол үшін Continue операторын пайдаланыңыз, содан кейін сіз шығатын цикл түрін көрсетесіз, мысалы Continue while:

Dim r ретінде Жаңа Кездейсоқ() Dim сан бүтін сан ретінде = r.Келесі(100) i үшін бүтін сан = 0-ден 10 санға дейін -= 7 Егер num< 50 AndAlso num >25 Содан кейін Console.WriteLine(num) Келесіні аяқтау үшін жалғастырыңыз

Бұл жағдайда циклдің әрбір өтуінде num санынан 7 санын алып тастаймыз, содан кейін num саны 25-тен 50-ге дейінгі интервалға жататынын көреміз. Ал егер солай болса, біз циклдің жаңа итерациясына көшеміз, ал болмаса, біз оны экранда көрсетеміз.

Код блогын бірнеше рет орындау қажет болатын жағдай болуы мүмкін. Жалпы операторлар ретімен орындалады: функциядағы бірінші оператор алдымен орындалады, содан кейін екіншісі және т.б.

Бағдарламалау тілдері күрделірек орындау жолдарын қамтамасыз ететін әртүрлі басқару құрылымдарын қамтамасыз етеді.

Цикл операторы операторды немесе операторлар тобын бірнеше рет орындауға мүмкіндік береді. Төменде VBA жүйесіндегі цикл мәлімдемесінің жалпы көрінісі берілген.

VBA цикл талаптарын өңдеу үшін келесі цикл түрлерін қамтамасыз етеді. Олардың мәліметтерін тексеру үшін келесі сілтемелерді басыңыз.

цикл үшін

For циклі - әзірлеушіге белгілі бірнеше рет орындалуы қажет циклды тиімді жазуға мүмкіндік беретін қайталауды басқару құрылымы.

Синтаксис

Төменде VBA ішіндегі for циклінің синтаксисі берілген.

Есептегіш үшін = бастау Аяқтау үшін ...... .... Келесі

Ағын диаграммасы

Төменде цикл режиміндегі басқару ағыны берілген -

  • Бірінші қадам аяқталды. Бұл қадам кез келген циклды басқару айнымалы мәндерін инициализациялауға және қадам санауышы айнымалы мәнін арттыруға мүмкіндік береді.
  • Екіншіден, жағдай бағаланады. Егер шын болса, цикл денесі орындалады. Егер ол жалған болса, цикл денесі орындалмайды және басқару ағыны For циклінен кейін бірден келесі операторға ауысады.
  • For циклінің циклі орындалғаннан кейін басқару ағыны келесі операторға өтеді. Бұл мәлімдеме кез келген циклды басқару айнымалыларын жаңартуға мүмкіндік береді. Ол қадам санауышы мәніне негізделген жаңартылады.
  • Жағдайы енді қайта қаралып жатыр. Егер true болса, цикл орындалады және процесс қайталанады (цикл денесі, содан кейін қадамдық өсу, содан кейін қайтадан шарт). Шарт жалған болғаннан кейін For циклі аяқталады.

мысал

Түймені қосып, келесі функцияны қосыңыз.

Private Sub Constant_demo_Click() Бүтін ретінде күңгірттеу a = 10 i үшін = 0 2-қадамға MsgBox "Мәні i: " & i Келесі End Sub

Жоғарыдағы код құрастырылған және орындалған кезде, ол келесі нәтижені шығарады.

i мәні: 0
i мәні: 2
i мәні: 4
i мәні: 6
i мәні: 8
i мәні: 10

Мәлімдемелердің тізбегін бірнеше рет орындайды және цикл айнымалысын басқаратын кодты қысқартады.

үшін ... циклі

Әрбір цикл массивтегі немесе жинақтағы әрбір элемент бойынша мәлімдемені немесе мәлімдемелер тобын орындау үшін пайдаланылады.

Әрбір цикл үшін For Loop ұқсас; дегенмен, цикл жиымдағы немесе топтағы әрбір элемент үшін орындалады. Сондықтан қадам санауышы циклдің бұл түрінде болмайды. Ол негізінен массивтермен қолданылады немесе рекурсивті жұмыс істеу үшін файлдық жүйе нысандарының контекстінде қолданылады.

Синтаксис

Төменде VBA жүйесіндегі For Every циклінің синтаксисі берілген.

Топтағы әрбір элемент үшін....Келесі

мысал

Private Sub Constant_demo_Click() "жемістер жиым болып табылады fruits = Array("алма", "апельсин", "шие") Жеміс атаулары күңгірттенеді. Вариант ретінде "қайталау Әрбір цикл үшін. Жемістердегі әрбір элемент үшін жеміс атаулары = жеміс атаулары & Элемент және Chr(10) Келесі MsgBox жеміс атаулары Соңы Ішкі

Жоғарыдағы код орындалғанда, ол әр жолда бір элементі бар жемістердің барлық атауларын басып шығарады.

алма
апельсин
шие

Бұл топта кемінде бір элемент болса және топтағы әрбір элемент үшін қайталанса орындалады.

while..wend циклі

While кезінде ... Wend циклі, егер шарт True болса, Wend түйінді сөзі кездескенше барлық операторлар орындалады.

Шарт жалған болса, цикл аяқталады және басқару элементі Wend түйінді сөзінен кейінгі келесі операторға өтеді.

Синтаксис

Төменде VBA-дағы While..Wend циклінің синтаксисі берілген.

Шарт(тар) болса ... Вэнд

Ағын диаграммасы

мысал

Private Sub Constant_demo_Click() Dim Counter: Есептегіш = 10 Есептегіш кезінде< 15 " Test value of Counter. Counter = Counter + 1 " Increment Counter. msgbox "The Current Value of the Counter is: " & Counter Wend " While loop exits if Counter Value becomes 15. End Sub

Жоғарыдағы код орындалғанда, ол хабарлама өрісінде келесіні шығарады.

Есептегіштің ағымдағы мәні: 11
Есептегіштің ағымдағы мәні: 12
Есептегіштің ағымдағы мәні: 13
Есептегіштің ағымдағы мәні: 14
Есептегіштің ағымдағы мәні: 15

Бұл цикл денесін орындамас бұрын шартты тексереді.

do..while циклі

Do ... while циклі шарт ақиқат болғанда операторлар жиынын қайталағымыз келгенде қолданылады. Шартты циклдің басында немесе циклдің соңында тексеруге болады.

Синтаксис

Төменде VBA жүйесінде Do...While циклінің синтаксисі берілген.

Do while шарты......Цикл

Ағын диаграммасы

мысал

Келесі мысал цикл басындағы күйді тексеру үшін Do ... while циклін пайдаланады. Цикл ішіндегі операторлар шарт True болған жағдайда ғана орындалады.

Private Sub Constant_demo_Click() Do while i< 5 i = i + 1 msgbox "The value of i is: " & i Loop End Sub

i мәні: 1
i мәні: 2
i мәні: 3
i мәні: 4
i мәні: 5

Альтернативті синтаксис

Сонымен қатар цикл соңындағы күйді тексеретін Do ... while циклі үшін балама синтаксис бар. Бұл екі синтаксистің негізгі айырмашылығы келесі мысалда түсіндіріледі.

Do ... ... цикл while шарты

мысал

Келесі мысалда цикл соңындағы күйді тексеру үшін Do ... while циклі қолданылады. Шарт False болса да, цикл ішіндегі мәлімдемелер кем дегенде бір рет орындалады.

Private Sub Constant_demo_Click() i = 10 Do i = i + 1 MsgBox "i мәні: " & i циклі while i< 3 "Condition is false.Hence loop is executed once. End Sub

Жоғарыдағы код орындалғанда, ол келесі шығысты хабарлама жолағында басып шығарады.

i мәні: 11

do..While операторлары шарт True болғанша орындалады. (Яғни) Шарт False болғанша цикл қайталануы керек.

do..intil циклі

Шарт жалған болған кезде мәлімдемелер жиынын қайталағымыз келгенде do ... intil циклі пайдаланылмайды. Шартты циклдің басында немесе циклдің соңында тексеруге болады.

Синтаксис

Төменде VBA жүйесіндегі Do..Until циклінің синтаксисі берілген.

Do Until шарты ... ... Цикл

Ағын диаграммасы

мысал

Келесі мысалда цикл басындағы шартты тексеру үшін Do... Before Loop қолданылады. Цикл ішіндегі операторлар шарт жалған болған жағдайда ғана орындалады. Шарт ақиқат болған кезде ол циклден шығады.

Private Sub Constant_demo_Click() i = 10 i>15 "Шарты False. Осыған байланысты цикл орындалады i = i + 1 msgbox ("i мәні: " & i) Цикл соңы ішкі

Жоғарыдағы код орындалғанда, ол келесі шығысты хабарлама жолағында басып шығарады.

i мәні: 11
i мәні: 12
i мәні: 13
i мәні: 14
i мәні: 15
i мәні: 16

Альтернативті синтаксис

Сонымен қатар цикл соңындағы шартты тексеретін Do... Before Loop балама синтаксисі бар. Бұл екі синтаксистің негізгі айырмашылығы келесі мысалмен түсіндіріледі.

Do ... ... Шартқа дейін цикл

Ағын диаграммасы

мысал

Келесі мысал цикл соңындағы шартты тексеру үшін Do...Before циклін пайдаланады. Шарт True болса да, цикл ішіндегі мәлімдемелер кем дегенде бір рет орындалады.

Private Sub Constant_demo_Click() i = 10 Do i = i + 1 msgbox "i мәні: " & i циклі i дейін тағы15 "Шарт True. Сондықтан цикл бір рет орындалады. End Sub.

Жоғарыдағы код орындалғанда, ол келесі шығысты хабарлама жолағында басып шығарады.

i мәні: 11

Шарт False болғанша, do..Until операторлары орындалады. (Яғни) Шарт ақиқат болғанша цикл қайталануы керек.

Циклды басқару жазбалары

Циклді басқару мәлімдемелері орындалуды қалыпты реттіліктен өзгертеді. Орындау ауқымды қалдырғанда, барлық басқа цикл мәлімдемелері орындалмайды.

Бақылау мәлімдемесі және сипаттамасы

Оператор шығысы

Exit for белгілі бір критерийлер негізінде For циклінен шыққымыз келгенде пайдаланылады. Exit For орындалған кезде басқару элементі For циклінен кейін бірден келесі операторға ауысады.

Синтаксис

Төменде VBA ішіндегі Exit For Statement синтаксисі берілген.

Ағын диаграммасы

мысал

Келесі мысал Exit For пайдаланады. Егер санауыш 4-ке жетсе, For Loop аяқталады және басқару элементі For Loop-тен кейін бірден келесі операторға ауысады.

Private Sub Constant_demo_Click() Dim a Integer ретінде a = 10 i = 0 үшін 2-қадамға "i - санауыш айнымалы және ол 2 MsgBox-қа көбейтіледі ("Мән i: " & i) Егер i = 4 болса, онда i = i * 10 "Бұл тек i=4 MsgBox болса ғана орындалады ("Мәні i: " & i) Шығу "i=4 болғанда шықты

Жоғарыдағы код орындалғанда, ол хабарлама жолағында келесі нәтижені басып шығарады.

i мәні: 0
i мәні: 2
i мәні: 4
i мәні: 40

For циклінің операторын аяқтайды және орындалуды циклден кейін бірден операторға тасымалдайды

Шығу Do

Exit Do мәлімдемесі белгілі бір критерийлер негізінде Do циклдарынан шыққымыз келгенде пайдаланылады. Оны Do Do...While және Do...Before циклдарында да қолдануға болады.

Exit Do орындалған кезде басқару элементі Do циклінен кейін бірден келесі операторға өтеді.

Синтаксис

Төменде VBA ішіндегі Exit Do операторының синтаксисі берілген.

мысал

Келесі мысалда Exit Do функциясы қолданылады. Егер санауыш 10-ға жетсе, Do шығыс жолы аяқталады және басқару элементі For циклінен кейін бірден келесі операторға өтеді.

Private Sub Constant_demo_Click() i = 0 Do while i<= 100 If i >10 Содан кейін Exit Do " циклы i>10 End If MsgBox болса шығады ("i мәні: " & i) i = i + 2 цикл соңы ішкі

Жоғарыдағы код орындалғанда, ол келесі шығысты хабарлама жолағында басып шығарады.

i мәні: 0
i мәні: 2
i мәні: 4
i мәні: 6
i мәні: 8
i мәні: 10

Do While операторын аяқтайды және орындалуды циклден кейін бірден операторға тасымалдайды