Mavzu: Formalar va boshqaruv obyektlari



Yüklə 133,85 Kb.
Pdf görüntüsü
səhifə1/2
tarix29.03.2023
ölçüsü133,85 Kb.
#90885
  1   2
4.Forma va obyektlar bilan ishlash



Mavzu:Formalar va boshqaruv obyektlari 
Ob'ekt parametrlari 
Ob'ekt o'zgaruvchisi butun ob'ektni, masalan, intervalli yoki ishchi varaqni 
ifodalovchi o'zgaruvchidir: Dim InputArea Range as Input. Ob'ektni o'zgaruvchiga 
tayinlash uchun Set: Set InputArea = Range ("C16: E16") kalit so'zidan 
foydalaning. 
Ichki funksiyalar 
VBA hisob-kitoblarni va operatsiyalarni soddalashtiradigan bir qator 
funksiyalarga ega. Misol uchun, mag'lubiyatni katta darajaga aylantirgan VBA 
UCase funksiyasi Excel UPPER funktsiyasiga teng. VBA ifodasida Excel 
funktsiyasidan foydalanish uchun funktsiya nomidan oldin quyidagi ifodani 
yozing: 
Application.WorksheetFunction 
Excel funktsiyalarini VBAda mos keladigan funktsiyalardan foydalana olmaysiz. 
Masalan, VBA Excel ROOT (SQRT) funktsiyasiga kirishga ruxsat bermaydi, 
chunki VBA bu funksiyaning o'z versiyasiga ega: Sqr. Shunday qilib, quyidagi 
so'zlar xato keltiradi: 
MsgBox Application.WorksheetFunction.Sqrt (123) 
MsgBox funksiyasi VBA-da eng foydali hisoblanadi. Boshqa narsalar bilan bir 
qatorda, dasturni to'xtatib turish va hisob-kitob yoki topshiriqning natijasini 
ko'rsatish uchun MsgBox funksiyasini har qanday vaqtda qo'shishingiz mumkin 
bo'lganligi uchun ajoyib nosozlik vositasi. MsgBox funksiyasi faqat qiymatni 
qaytaradi, balki foydalanuvchining muayyan xatti-harakatlarni amalga oshirishi 
mumkin bo'lgan dialog oynasini ham ko'rsatadi. MsgBox funktsiyasi tomonidan 
qaytarilgan qiymat foydalanuvchi tomonidan ko'rsatilgan so'rovga javobdir. 
MsgBox funksiyasi foydalanuvchi javobga muhtoj bo'lmasa ham, xabarni 
ko'rsatishga to'g'ri kelsa ham foydalanish mumkin. MsgBox funktsiyasining 
sintaksisi quyidagicha: 
MsgBox (xabar [, tugmalar] [, sarlavha] [, help_file, context]) 
Xabar (zarur) - dialog oynasida ko'rsatiladigan xabar. 
Tugmachalar (ixtiyoriy argument) - xabarlar oynasida qaysi tugmalar va belgilar 
(kerak bo'lsa) ko'rsatiladi. O'rnatilgan sobitlardan foydalaning (masalan, 
vbYesNo). 
Üstbilgi (ixtiyoriy mustaqil o'zgaruvchilar) xabarlar oynasining sarlavhasida 
ko'rsatilgan matndir. Odatiy bo'lib, Microsoft Excel matni ko'rsatiladi. 


Help_file (ixtiyoriy) - xabar qutisiga mos keladigan yordam faylining nomi. 
Kontekst (ixtiyoriy) yordam mavzusining kontekst identifikatoridir. Ko'rish 
uchun muayyan yordam mavzusini ifodalaydi. Agar kontekst argumenti ishlatilsa, 
help_file argumentini ham ishlatishingiz kerak. 
Olingan qiymatni o'zgaruvchiga belgilashingiz yoki vazifani belgilash 
operatoridan foydalanmasligingiz mumkin. Quyidagi misolda Ans o'zgaruvchiga 
natija beriladi. 
Ans = MsgBox ("Davom?", VbYesNo + vbQuestion, "Hisobot")
Ans = vbNo So'ngra Chiqish-ni tanlang 
Shuni e'tiborga olingki, ikkita o'rnatilgan sobit (vbYesNo + vbQuestion) summasi 
tugma argumentining qiymati sifatida ishlatiladi. Xabar oynasida "vbYesNo 
constant" tufayli ikkita tugma paydo bo'ladi: biri "Ha", ikkinchisi esa "No" belgisi 
bilan Argumentga vbQuestion qo'shilishi ham savol belgisini ko'rsatadi. Dastlabki 
so'zlar bajarilgandan so'ng, Ans o'zgaruvchisi egri va vbNo sobiklari bilan 
ifodalanadigan ikkita qiymatdan birini oladi. Ushbu misolda, Yo'q tugmasini 
bosgandan so'ng amaliyot jarayoni tugaydi. 
Ob'ektni yig'ish va boshqarish 
VBA ob'ektlar va kollektsiyalarni boshqarishni soddalashtiradigan ikkita dizaynni 
taklif etadi. With - End bilan birga bir ob'ekt ustida bir nechta operatsiyani bajarish 
imkonini beradi. Qanday ishlashini tushunish uchun, tanlangan ob'ektning oltita 
xususiyatlarini o'zgartiradigan quyidagi usulni tahlil qiling (bir qator obyekti 
tanlangan bo'lsa). 
Sub ChangeFontl ()
Selection.Font.Name = "Cambria"
Selection.Font.Bold = Haqiqiy Selection.Font.Italic = To'g'ri
Selection.Font.Size = 12
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.ThemeColor = xlThemeColorAccentl
End sub 
Ushbu protsedura bilan birga - End With tuzilishi bilan qayta yozish mumkin. 
Quyida keltirilgan protsedura oldingi ish bilan bir xil ishlaydi. 
Sub ChangeFont2 ()
Selection.Font bilan
Ism. "Cambria"
.Bold = To'g'ri
.Italic = To'g'ri
.Size = 12
.Underline = xlUnderlineStyleSingle


.Rekor = xlThemeColorAccentl
Bilan yakunlang
End sub 
To'plamdagi barcha narsalar ustida biror harakatni bajarishga qaror qilsangiz, 
yoki muayyan shartlar bajarilganda to'plamdagi barcha narsalarni baholashingiz va 
ishni bajarishingiz kerak. Ushbu For Every - Next konstruktsiyasini ishlatish uchun 
ideal holat. Qurilish sintaksisi: 
Har biri uchun elementIn to'plam 
[ko'rsatmalar
[ko'rsatmalar
Keyingi [ element
Masalan: 
Sub CountSheets ()
Parcha emas, ishchi varag'i
ActiveWorkbook.Worksheets da har bir element uchun
MsgBox Item.Name
Keyingi element
End sub 
Quyidagi misol faol oyna tashqari barcha oyna yopiladi: 
Sub Closelnactive ()
Yig'ilish kitobi Ish kitobi sifatida
Ish kitoblarida har bir kitob uchun
Agar Book.Name<> Keyinchalik Book.Close nomli ActiveWorkbook.Name
Keyingi kitob
End sub 
Kod bajarilishini nazorat qilish 
Ba'zi VBA protseduralari kodning birinchi qatorlaridan boshlanadi. Shu bilan 
birga, ba'zida operatsiyalar ketma-ketligini nazorat qilish, alohida ko'rsatmalarga 
o'tish, ayrim buyruqlarni qayta bajarish va protsedura bo'yicha bajariladigan 
keyingi harakatlarini aniqlash uchun shartlarni tekshirish kerak. 
GoTo operator dasturi progressini maxsus tarzda belgilanadigan yangi 
yo'riqnomaga yo'naltiradi (yo'riqnoma bilan ko'rsatib o'tilgan nuqta bilan 
yakunlangan matn satri yoki son bilan tugaydigan raqam). Quyidagi protsedura 
foydalanuvchi nomini olish uchun VBA InputBox funksiyasini qo'llaydi. Agar 
foydalanuvchi nomi Govarddan farq qilsa, protsedura WrongName yorlig'i bilan 
yakunlanadi, u erda tugaydi. Aks holda, protsedura qo'shimcha operatsiyalarni 
bajaradi. Chiqish pastki bayonoti protsedurani tugatadi. 


Sub GoToDemo ()
UserName = InputBox ("Ismingizni kiriting:")
Agar foydalanuvchi nomi bo'lsa<> "Xovard" Keyin GoTo WrongName
MsgBox ("Salom, Xovard ...")
"- [Bu erda qo'shimcha kod kiritiladi] -
Chiqish sub
Noto'g'ri nomi:
MsgBox "Kechirasiz, faqat Xovard bu amaliyotni bajarishi mumkin."
End sub 
Aslida, GoTo bayonoti faqat xatoni qo'lga olish uchun talab qilinadi (yuqoridagi 
kod ishlatilmaydigan muvaffaqiyatsiz misoldir). 
VBA yo'riqnomasini guruhlash uchun "If-Then" qurilishi ko'pincha qo'llanilishi 
mumkin. 
Agar holati Keyin ko'rsatmalar
Misol uchun 
Sub GreetMe ()
Vaqt bo'lsa< 0.5 Then 
MsgBox "Xayrli tong"
O'z vaqtida\u003e = 0,5 va vaqt< 0.75 Then 
MsgBox "Xayrli kun"
Boshqa
MsgBox "Yaxshi oqshom"
Agar tugatilsin
End sub 
VBA, Excelda ishlatiladigan bir tarix va vaqt tizimidan foydalanadi. Kunning 
soati parchalanadigan raqam sifatida ifodalanadi, masalan, peshin soati 0,5 ga teng. 
0.75 qiymati 18:00 vaqtni - kunning uch choragini va kun kechqurun kiradigan 
paytni anglatadi. Agar bu holda ichki tuzilmalar juda og'ir bo'lsa. Shuning uchun 
ularni oddiy ikkilik qarorlar qabul qilish uchun ishlatish tavsiya etiladi. Agar uch 
yoki undan ortiq variantni tanlash kerak bo'lsa, unda tanlash holatini ko'rsatish 
tavsiya etiladi. 
Quyidagi protsedura joriy kunning shanba yoki yakshanba ekanini (hafta yoki 
kunduz funktsiyasi 1 yoki 7 qiymatini qaytaradi) aniqlash uchun ishlatiladigan 
VBA WeekDay funktsiyasidan foydalanadi. Keyin tegishli xabar ko'rsatiladi. 
Sub GreetUserlO
Case weekday ni tanlang (hozir)
1, 7-savol
MsgBox "Bu hafta oxiri"


Boshqa holatlar
MsgBox "Bu hafta oxiri emas"
Tugatish tanlang
End sub 
VBA tarjimoni "True" holati topilmaguncha Applications Case ko'rinishidan 
chiqadi. Shuning uchun, maksimal samaradorlik uchun, birinchi navbatda, eng 
mumkin bo'lgan vaziyatni tekshirish kerak. 

Yüklə 133,85 Kb.

Dostları ilə paylaş:
  1   2




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin