Dasturlarning misollari Vba. Vba dasturlash asoslari va Microsoft Office ilovasida makrolarni yaratish
Download 0.9 Mb. Pdf ko'rish
|
2.VBA dasturlash muhiti va unda ishlash
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. Download 0.9 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling