5.5. Vbani boshqarish konstruksiyalari VBAda ham boshqa dasturlash tillari kabi, dasturni boshqa-
rish tarti bini o‘zgartirish imkoniyatini beradigan har xil boshqa-
rish konstruksiyalari bor. Agar boshqarish konstruksiyalari (ope-
ratorlari) ishlatilmasa, dasturlash tilining operatorlari ketma-ket
bajariladi. Birinchi operatordan tortib oxirgi operatorgacha
(dasturning operatorlari birinchidan boshlab oxirigacha ketma-
ket bajariladi). Lekin amaliyotni ko‘pgina masalarini yechishda
ope ratorning kelish tartibini birorta shartning bajarilishiga qarab
o‘zgartirish talab etiladi. Bunda ba’zi operatorlarning bajarilishini
o‘tkazib yuborib yoki aksincha ularni bir necha bor takror baja-
rishga to‘g‘ri keladi.
Dasturchilik amaliyoti shuni ko‘rsatadiki, axborotlar qayta
ishlashni ixtiyoriy algoritmlarini amalga oshirish uchun ikki
ko‘rinishdagi boshqa rish ko‘rsatmalari (buyruqlari) yetarli hisob-
lanadi: tarmoqlanish va sikllar.
tarmoqlanish. Tarmoqlarni boshqarish konstruksiyalari bi-
rorta shartni tekshirish va uning natijasi asosida u yoki bu opera-
torlarni boshqarish imkoniyatlarini beradi.
VBAda tarmoqlanishni tashkil qilish uchun
if operatorining
xilma-xil shakli va
select case operatori ishlatiladi.
If operatori oddiy qisqa bitta shartni tekshirish uchun ishla-
tiladi. Tekshirish natijasiga qarab bitta operator yoki bir nechta
ope ratorlik bloki bajariladi yoki o‘tkazib yuboriladi. If opera-
torining qisqa shakli bitta satrli yoki blokli forma shakliga ega
bo‘lishi mumkin. If operatorining qisqa bir satrli shakli qu-
yidagicha yozilishi mumkin.
If «shart» Then «operator»
If operatorining qisqa blokli shakli quyidagi ko‘rinishda
bo‘ladi.
If Then
83
ELSE
End If
Shart sifatida True(rost) va false (yolg‘on) qiymatlar beruvchi
mantiqiy ifoda yoki ixtiyoriy arifmetik ifoda ishlatilishi mumkin.
Agar arifmetik ifoda ishlatilmasa, bu ifoda 0 qiymatli mantiqiy
false qiymatiga ekvi valent. Agar shart false ifodalarni qaytarsa,
qisqa tarmoqlanish operatori tanasini tashkil qiluvchi operator
yoki operatorlar bloki ishlamaydi.
If operatori to‘la formasi quyidagi hollarda ishlatiladi: ikkita
har xil operatorlar bloki mavjud bo‘lib, shartli tekshirish nati-
jasida shulardan birini bajarish zarurati paydo bo‘lsa, bunday if
operatorini bitta satrda yozib bo‘lmaydi va u doim blok shaklida
yoziladi.
If Then
Else If Then
Else If Then
………………………………..
Else If Then
Else
End If
Agar shart rost bo‘lsa, unda Then va Else kalit so‘zlari orasida
joylashgan birinchi blok operatorlari bajariladi, aks holda Else va
End if kalit so‘zlari orasida joylashgan ikkinchi blok operatorlari
bajariladi.
Ba’zi hollarda bir nechta alternativ amallar guruhi amallaridan
bittasini tanlab olib amal bajarish talab qilinadi. Bunday hollarda
if operatori if…then…Else operatorlar ketma-ketligini (zanjirini)
ishlatish mumkin.
If Then
Else If Then
Else If Then
84
………………………………..
Else If Then
Else
End If
Bunday if…Then…Else if operatorlar zanjiri yaxshi moslanuv-
chanlikka ega va ko‘p muammolarni yechish imkonini beradi,
lekin, agar bir necha imkoniyatlardan birini tanlash hamma vaqt
bitta ifodaning har xil qiymatlariga asoslangan bo‘lsa, unda max-
sus shu maqsadlarga mo‘ljallangan select case tanlash operatorini
ishlatish qulay. Uning ko‘rinishi quyidagicha:
Select Сase Case Case Case ............................................
Case Else
End Select
Tekshirilayotgan ifoda select case operatori boshlanishida hi-
soblanadi. Bu ifoda ixtiyoriy toifali qiymatlarni qaytarishi mum-
kin. Ifodalar (qiymatlar ro‘yxati) bir-biridan vergul bilan ajratil-
gan bir yoki bir necha ifodalardan iborat bo‘ladi. Operatorning
bajarilishida shu ro‘yxat elementlaridan hech bo‘lmaganda bittasi
tekshirilgan ifodaga mosligi tekshiriladi. Ifoda ro‘yxati element-
lari quyidagi shakllardan biriga ega bo‘ladi.
(bu holda tekshirilayotgan ifoda qiymatini berilgan ifoda qiy-
matiga mosligi
tekshiriladi)
to Bu holda tekshirilayotgan ifoda qiymati ko‘rsatilgan qiymatlar
diapazoni mos joylashishi tekshiriladi.
85
If Bu holda tekshirilayotgan ifoda ko‘rsatilgan qiymat bilan
mantiqiy operator yordamida solishtiriladi. Masalan: if>=20 ba-
jarilgan hisoblanadi, agar tekshirilayotgan qiymat 20 dan kichik
bo‘lsa.
Agar ro‘yxat elementlaridan biri tekshirilayotgan ifodaga mos
kelsa, unda shunga mos operatorlar bajariladi va select case ope-
ratorining ishi yakunlanadi, ifoda ro‘yxatining qolganlari tek-
shirilmaydi.
Agar barcha shu ro‘yxatning birorta ham elementi tekshirila-
yotgan ro‘yxatidagi elementlariga mos kelmasa, u holda Else dan
keyin joylashgan (agar u bo‘lsa) operatorlar guruhi bajariladi.
Sikllar . VBA siklini tashkil qilishini yetarli vositalariga ega.
Ularni ikki guruhga bo‘lish mumkin:
– DO…Loop shartli sikllar;
– fOR…NEXT sanoqli sikllar.
DO LOOP sikllari sikl tanasini tashkil qiluvchi operator-
lar bloki necha marta qayta bajarishlar soni noma’lum bo‘lganda
ishlatiladi. Bunday sikl birorta aniq shart bajarilguncha, ishini
davom ettiradi.
DO…LOOP operatorining 4 ko‘rinishi mavjud. Ular shartini
va bu tekshirishni bajarish vaqti bilan farqlanadi.
Ularning konstruksiyalari jadvalda keltirilgan.