obyektlarga murojaat. Visual Basic oddiy o‘zgaruvchilardan
tashqari obyektga murojaatni ifodalovchi o‘zgaruvchilar ham
ishlatiladi. Bunday o‘zgaruvchilarni ishlatish faqat dastur mat-
nini soddalashtiriladi va qisqartiribgina qolmasdan uning ish-
lash tez ligini yetarlicha oshiradi.
O‘zgaruvchi obyektlarini ishlatish oddiy o‘zgaruvchilarni ish-
latishdan farqlanadi. Ishlatishdan oldin uni faqat e’lon qilibgina
qolmay, unga mos obyektni Set operatori yordamida tayinlash
kerak.
Bunday e’lon qilish sintaksisi va tayinlanishi quyidagicha:
Dim As object
Set = Ba’zi hollarda bunday o‘zgaruvchilarni e’lon qilishdan oldin
aniq obyekt toifasini ko‘rsatish qulay. Bunda office ni obyekt
mode lidan aniq ixtiyoriysini ko‘rsatish mumkin:
Set MyBase=DBEngine.Workspaces(0).Database(0).
Bunday e’lon qilish va tayinlashdan so‘ng MyBase o‘zgaruv-
chisini joriy ochiq ma’lumot bazasiga murojaat uchun ishlatish
mumkin. Bunday murojaatlar tezroq qayta ishlaydi.
Massivlar. Massiv bir vaqtda bir toifaga tegishli bir nechta
qiymatni saqlovchi o‘zgaruvchidir.
Massivning rasmiy ta’rifi bir toifali indekslangan o‘zgaruvchilar
majmuasidir. Massivda ishlatiladigan indekslar soni ham har xil
bo‘lishi mumkin. Odatda bir yoki ikki indeksli massivlar ko‘proq
ishlatiladi. VBA 60 tagacha indeksli massiv ishlatilishi mumkin.
Bitta indeksli massivlar bir o‘lchamli massivlar deyiladi, ikki-
talisi – ikki o‘lchamli va hokazo. Massivni dasturda ishlatishdan
avval uni albatta Dim operatori yordamida e’lon qilish kerak va
massivda saqlanuvchi qiymatlarning toifalari ko‘rsatilishi kerak.
78
Massivning barcha qiymatlari bitta ma’lumot toifasiga tegishli
bo‘lishi kerak.
Bu cheklanishni chetlab o‘tish uchun massivni e’lon qilishda
variant toifasini ishlatib amalga oshirish mumkin. Bunda mas-
siv elementlari har xil toifali ma’lumot qiymatlarini qabul qilishi
mumkin. Massivni e’lon qilish operatori sintaksisi
Dim< massiv nomi > (,,…) As
qavs ichida ko‘rsatilgan kattaliklar bilan mas-
sivning o‘lchamlari – indekslar soni va har bir aniq indeksning
maksimal qiymati beriladi.
Bunda massiv elementlarini indekslash sukut bilan 0 dan
boshlanadi. Masalan, DIM ARRAY(9) AS INTEGER ARRAY
butun toifali o‘zgaruvchi 10 ta elementli bir o‘lchamli massivini
aniqlaydi.
DIM ARRAY (4,9) AS VARIANT
ARRAY nomli variant universal toifali o‘zgaruvchini 50 ta
(5x10) elementdan iborat ikki o‘lchamli massivni aniqlaydi. Mas-
sivni e’lon qilishda indeksning faqat yuqori chegarasini emas, bal-
ki uning quyi chegarasini ham ko‘rsatish mumkin, ya’ni massivli
aniq indeksni o‘zgartirish diapazonini ham ko‘rsatish mumkin,
bunda quyi chegara ixtiyoriy musbat son bo‘lishi mumkin. Bunday
e’lon qilishning sintaksisi
Dim ( To ) As toifasi>
Keltirilgan misollarda massivlar fiksirlangan massivlar hisob-
lanadi. Ularda massivni Dim operatori bilan e’lon qilinganda
elementlar soni oshkor ravishda ko‘rsatiladi. Bunday massivlar
statik massivlar deyiladi. VBAda dinamik massivlarni ishlatish
mumkin. Dinamik massivlarni e’lon qilishda ularning o‘lchamlari
fiksirlanmaydi.
Dinamik massivlarning o‘chamlarini aniqlash bevosita das-
turni bajarish vaqtida amalga oshiriladi. Dinamik massivni Dim
operatori bilan aniqlaganda Dim operatorida massiv nomidan
keyin bo‘sh qavslar va o‘zgaruvchilar toifasi yoziladi. Indekslar
soni va ularning o‘zgarish diapazoni berilmaydi. Massivni ish-
latishdan avval ReDim operatorini kiri
tish zarur. U dinamik
massivni o‘lchamlari va indekslarini o‘zgarish diapazonini bera-
di. Dinamik massivning o‘lchamlari va e’lon qilish sintaksisi qu-
yidagicha: