Vba mantiqiy yoki. VBA operatorlari va o'rnatilgan funktsiyalari. Noto'g'ri uzatish To'g'ri uzatish

Parametr nomi Ma'nosi
Maqola mavzusi: VBA operatorlari
Rubrika (tematik toifa) Dasturlash

VBA operator tilidir. Bu shuni anglatadiki, uning dasturlari (protseduralari yoki funktsiyalari) bayonotlar ketma-ketligini ifodalaydi.

VBA tilida biz farqlashimiz mumkin quyidagi guruhlar operatorlar:

1. dastur ishlaydigan ob'ektlarni tavsiflash uchun mo'ljallangan deklarativ operatorlar (o'zgaruvchilar turlari, doimiylar va massivlar va boshqalar),

2. sharh bayonotlari,

3. ob'ekt qiymatlarini belgilash va o'zgartirish operatorlari,

4. hisob-kitoblarning borishini boshqaruvchi operatorlar (shartli, siklik, o'tish).

IN bu kurs Asosiy operatorlar ko'rib chiqiladi va ba'zilari, masalan, tsikliklar uch turda taqdim etiladi, ammo talabalar foydalanish uchun eng tushunarli bo'lgan faqat bittasini o'zlashtirishlari kerak.

Sharh operatori

Sharhlar dasturning bajarilishiga ta'sir qilmaydi, lekin algoritmni tushunish uchun zarurdir. Dasturlar ko'p marta yangilanganligi sababli, algoritmni eslab qolish va uni to'g'ri o'zgartirish uchun sharhlardan foydalanish juda muhimdir.

Dastur matnining istalgan qatori izoh bilan tugashi mumkin. VBA-dagi sharh apostrof (") bilan boshlanadi va qatorning o'ng tomonidagi istalgan matnni o'z ichiga oladi.

Masalan,

Og'irligi= vazn+z "Og'irlikni oshirish qiymati=vazn*narx "Yangi narx

Tayinlash operatori

Tayinlash operatorlari dastur holatini (o'zgaruvchan qiymatlarni) o'zgartirishning asosiy vositasidir. Bu = belgisini o'zgaruvchi (chap tomon) va ifoda (o'ng tomon) o'rtasida bog'laydigan konstruktsiyadir. Ifoda operandlar (o‘zgaruvchilar nomlari, konstantalar, standart funksiyalar nomlari) va amallar belgilaridan (arifmetik, mantiqiy, satr, taqqoslash) iborat. Ushbu operatorning ma'nosi shundaki, chap tomonga o'ng tomonning qiymati beriladi.

Nazorat bayonotlari

VBA boshqaruv bayonotlari to'plami mos keladi tuzilgan til dasturlash. IN bu to'plam kiritilgan shartli va aylanma gaplar, bu sizga hisoblash jarayonini ishonchli va samarali tashkil qilish imkonini beradi.

Shartli gap If Then Else End If

Bu dasturlash tillarida tez-tez ishlatiladigan hisob-kitoblarni boshqarish operatori bo'lib, ma'lum bir shartning haqiqatiga asoslangan harakatlarni tanlash va bajarish imkonini beradi.

VBA operatorlari - tushunchasi va turlari. "VBA operatorlari" toifasining tasnifi va xususiyatlari 2017, 2018.

  • - Hayot va miqdorni saqlash operatorlari

    TRIZda Dialning ushbu toifasi "34-sonli printsip, qismlarni tashlash va qayta tiklash: a) O'z maqsadini bajargan yoki keraksiz holga kelgan ob'ektning bir qismi tashlab yuborilishi (eritish, bug'lanishi va boshqalar) yoki o'zgartirilishi kerak. bevosita ish jarayonida. b)... .


  • - VBA tilining elementlari

    Guruch. 12.1 Formaga joylashtirilgan obyektlar 6. Formada har bir obyektni alohida faollashtirib, xususiyatlar oynasi yordamida uning xossasini o rnatamiz (Xususiyatlar 12.2-rasm). Shunday qilib, interfeys yaratiladi (12.3-rasm). Guruch. 12.3. Loyiha interfeysi (bilan... .


  • - Shartli gaplar

    Murakkab operator. Strukturaviy operatorlar Protsedura chaqiruvi operatori Shartsiz o'tish operatori Shartsiz o'tish operatori bajarilish tartibini o'zgartirish imkoniyatini beradi... .


  • - qo‘shma shart gaplar

    Ba'zan, muammolarni hal qilishda, filiallardagi operatorlar, o'z navbatida, boshqa shartli operatorlarni o'z ichiga olishi mumkin bo'lgan vaziyat yuzaga keladi. Bular birikma operatorlar deyiladi. Bundan tashqari, investitsiyalar soni yoki ular aytganidek, investitsiyalar darajasi ... bo'lishi mumkin.


  • - VBA asoslari

    Visual Basic Ilova uchun (VBA) - bu eng oddiy dasturlash tillaridan biri va Excel elektron jadvalining barcha hisoblash imkoniyatlarining kombinatsiyasi. VBA-dan foydalanib, siz turli xil ilovalarni osongina va tezda yaratishingiz mumkin, hatto bu sohada mutaxassis bo'lmasdan ham...

  • Qisqacha nazariy ma'lumotlar

    1. VBA dasturlash tilining sintaksisi va semantikasi

    Dasturlash tilining sintaksisi - bu to'g'ri tuzilgan dastur (hujjat) yoki uning fragmenti deb hisoblangan alifbo belgilar kombinatsiyasini tavsiflovchi qoidalar to'plami.

    Bu tilning asosiy sintaktik tamoyillari quyidagilardan iborat:

    • VBA katta-kichik harflarga sezgir emas;
    • kodni satr oxirigacha izohlash uchun foydalaning yagona iqtibos(") yoki REM buyrug'i;
    • belgilar qiymatlari qo'sh tirnoq ichiga olinishi kerak (");
    • VBA-dagi har qanday nomning maksimal uzunligi (o'zgaruvchilar, konstantalar, protseduralar) 255 belgi;
    • yangi bayonotning boshlanishi - o'tkazish yangi qator(C, Java, JavaScript-dagi kabi nuqta-vergul buning uchun ishlatilmaydi);
    • bo'yicha cheklovlar maksimal uzunlik hech qanday satr yo'q (garchi muharrirda bir qatorga faqat 308 belgi to'g'ri keladi). Xuddi shu qatordagi bir nechta gaplar ikki nuqta bilan ajratiladi:
      "Check 1" MsgBox: "Check 2" xabar qutisi
    • O'qish qulayligi uchun siz bo'sh joy va undan keyin pastki chiziq yordamida bir nechta jismoniy chiziqlarni bitta mantiqiy chiziqqa birlashtira olasiz:
      MsgBox "Foydalanuvchiga xabar" _
      &vUserName

    Tilning semantikasi so'zlarning semantik ma'nosidir. Dasturlashda - operatorlarning boshlang'ich semantik ma'nosi, asosiy til konstruktsiyalari va boshqalar.

    Operator VBA kodining bajarilishi mumkin bo'lgan eng kichik birligi. Bayonot o'zgaruvchini e'lon qilishi yoki belgilashi, VBA kompilyator opsiyasini o'rnatishi yoki dasturda ba'zi amallarni bajarishi mumkin.

    Arifmetika VBA-da faqat 7 ta operator mavjud.

    To'rtta standart: qo'shish (+), ayirish (−), ko'paytirish (*), bo'lish (/) va yana uchta:

    • eksponentatsiya (^). Masalan, 2^3 = 8;
    • butun songa bo'linish (\). Birinchi raqamni ikkinchisiga ajratadi, kasr qismini tashlab (yaxlitlashsiz). Masalan, 5\2 = 2;
    • modul bo'limi (Mod). Birinchi raqamni ikkinchisiga ajratadi, faqat bo'linishning qolgan qismini qaytaradi. Masalan, 5 Mod 2 = 1.

    VBA da tayinlash operatori tenglik belgisidir. Siz buni shunday yozishingiz mumkin:

    nVar = 10 bo'lsin
    yoki undan ham oddiyroq:
    nVar = 10

    Bu yerda tenglik belgisini tenglik operatori bilan aralashtirib yubormang. Oxirgi ifoda "nVar qiymatini 10 ga o'rnatish" degan ma'noni anglatadi va agar chiziq quyidagicha ko'rinsa: If (nVar = 10) , u holda "nVar qiymati 10 bo'lsa" degan ma'noni anglatadi.

    Taqqoslash operatorlari VBA-da faqat 8 tasi mavjud:

    • tenglik (=). Masalan, If (nVar = 10);
    • (>) dan katta va (10) dan kichik;
    • dan katta yoki teng (>=) va kichik yoki teng (= 10);
    • teng emas (). Masalan, If(nVar10);
    • ob'ektlarni taqqoslash (Is). Ob'ekt o'zgaruvchilari bir xil ob'ektga yoki boshqa ob'ektga tegishli ekanligini aniqlaydi. Masalan, If (obj1 - obj2);
    • o'xshashlik (Like). String obyektini naqsh bilan solishtiradi va naqsh mos kelishini aniqlaydi.

    Taqqoslash operatorlari har doim qaytib keladi To'g'ri(agar bayonot to'g'ri bo'lsa) yoki Yolg'on(agar bayonot noto'g'ri bo'lsa).

    Ko'pincha, bir nechta shartlarni tekshirishda ular foydalanadilar mantiqiy operatorlar:

    • Va - mantiqiy VA.Ikkala shart ham to'g'ri bo'lishi kerak;
    • Yoki - mantiqiy OR. Shartlardan kamida bittasi to'g'ri bo'lishi kerak;
    • Emas - mantiqiy inkor. Agar shart noto'g'ri bo'lsa, True qiymatini qaytaradi;
    • Xor - bu mantiqiy istisno. E1 Xor ifodasida E2 faqat E1 = True yoki faqat E2 = Rost, aks holda False bo'lsa, True ni qaytaradi;
    • Ekv - ikkita ifodaning ekvivalentligi, agar ular bir xil qiymatga ega bo'lsa, True ni qaytaradi;
    • Imp - implikatsiya, E1 Imp E2, agar E1 = rost va E2 = noto'g'ri bo'lsa, False qiymatini qaytaradi, aks holda True.

    haqida eslab qolishingiz kerak Va, Yoki, Yo'q, boshqa mantiqiy operatorlar kam ishlatiladi.

    O'zgaruvchilar- Bu o'zgaruvchan ma'lumotlarni saqlash uchun konteynerlar. Ularsiz deyarli hech qanday dastur ishlamaydi. Oddiylik uchun o'zgaruvchini shkafdagi raqam bilan solishtirish mumkin - siz shkafga ba'zi ma'lumotlarni berasiz va javoban sizga raqam beriladi. Ushbu ma'lumot yana kerak bo'lganda, siz "raqamni taqdim etasiz" va uni olasiz.

    Har bir o'zgaruvchining nomi bor. O'zgaruvchiga nom bilan kirish mumkin. VBA-da nomlarni tanlash qoidalari ko'p elementlar uchun bir xil (o'zgaruvchilar, doimiylar, funktsiyalar, protseduralar va boshqalar):

    • ism harf bilan boshlanishi kerak;
    • bo'shliqlar yoki tinish belgilaridan iborat bo'lmasligi kerak (istisno - pastki chiziq);
    • maksimal uzunlik - 255 belgi;
    • joriy miqyosda noyob bo'lishi kerak
    • zahiradagi so'zlardan (kod muharriri oynasida ko'k rang bilan belgilangan) foydalanish mumkin emas.

    VBA dasturlarini yaratishda ob'ektlarni nomlash qoidalarini - nomlash konventsiyasini tanlash tavsiya etiladi. Eng ko'p ishlatiladigan Vengriya kelishuvi (Microsoft dasturchilaridan biri, millati venger bo'lgan Charlz Simoni sharafiga):

    • O'zgaruvchining nomi kichik harflar bilan yozilgan prefiks bilan boshlanishi kerak. Prefiks ushbu o'zgaruvchida aniq nima saqlanishini ko'rsatadi:
      str (yoki s) - satr, belgilar qiymati;
      fn (yoki f) - funksiya;
      kichik tartib;
      c (yoki ismning barcha harflari bosh harf bilan yozilgan) - doimiy(o'zgaruvchilardan farqli o'laroq, VBA dasturini bajarish jarayonida o'zgarmaydigan ma'lumotlarni saqlash uchun konteyner);
      b - mantiqiy, mantiqiy qiymat (True yoki False);
      d - sana;
      obj (yoki o) - ob'ektga havola;
      n - raqamli qiymat;
    • funksiyalar, usullar nomlari va qo‘shma so‘zdagi har bir so‘z bosh harf bilan boshlanishi kerak:
      MsgBox objMyDocument.Name
      Sub CheckDateSub()

    Ma'lumotlar turi har qanday dasturlash tilining eng asosiy tushunchalari hisoblanadi. Ma'lumotlar turi qiymat (o'zgaruvchi yoki doimiy) qabul qilishi mumkin bo'lgan haqiqiy qiymatlar to'plamini va ushbu qiymatda bajarilishi mumkin bo'lgan harakatlar to'plamini belgilaydi.

    2. Asosiy VBA ma'lumotlar turlari

    VBA quyidagi ma'lumotlar turlarini taqdim etadi:

    • raqamli:
      Bayt- 0 dan 255 gacha bo'lgan butun son, saqlash uchun zarur 1 bayt xotira;
      Butun son- −32,768 dan 32,767 gacha bo‘lgan butun son, 2 bayt ;
      Uzoq- −2 147 483 648 dan 2 147 483 647 gacha boʻlgan katta butun son, 4 bayt ;
      Valyuta(pul) - katta kasrli raqam 19 ta pozitsiya, shu jumladan 4 kasr
      (-922337203685477.5808 dan 922337203685477.5807 gacha), 4 bayt,
      aniqlik juda muhim bo'lganda raqamlarni saqlash uchun ishlatiladi, bu pul birliklari bilan hisoblashda sodir bo'ladi;
      O'nlik- 29 pozitsiyadan iborat kattaroq o'nlik raqam (o'nli nuqtadan keyin siz 0 dan 28 pozitsiyagacha foydalanishingiz mumkin), 8 bayt;
      Yagona Va Ikki marta- suzuvchi nuqta qiymatlari ( 4 va 8 bayt)
      (salbiy qiymatlar uchun -3,402823·10 38 dan -1,401298·10 -45 gacha va
      Single uchun ijobiy qiymatlar uchun 1,401298·10 -45 dan 3,402823·10 38 gacha va
      -1,79769313486232·10 308 dan -4,94065645841247·10 -324 gacha salbiy qiymatlar va
      Double uchun ijobiy qiymatlar uchun 4,94065645841247·10 -324 dan 1,79769313486232·10 308 gacha);
    • string( String o'zgaruvchan uzunlik (taxminan 2 milliard belgigacha) va qattiq uzunlik (taxminan 65 400 belgigacha));
    • sana va vaqt ( Sana- 01.01.100 dan 31.12.9999 gacha), 8 bayt;
    • mantiqiy ( Mantiqiy- faqat True va False qiymatlarini saqlashi mumkin), 2 bayt;
    • ob'ekt ( Ob'ekt- istalgan ob'ektga havolani xotirada saqlaydi);
    • Variant- har qanday turdagi ma'lumotlarni saqlashi mumkin bo'lgan maxsus ma'lumotlar turi; 16 bayt +1
    Ma'lumotlar turini belgilash til kalit so'zlaridir (va VBA muharririda yozilganda ta'kidlanadi). Yuqorida har xil turlari ma'lumotlar ustida turli operatsiyalarni bajarish mumkin. VBA-da uchta asosiy operatsiyalar turi mavjud:
    • matematik, raqamlar bo'yicha bajarilgan, ularning natijasi raqamlar;
    • relyatsion operatsiyalar nafaqat raqamlarga qo'llanilishi mumkin, ularning natijasi mantiqiy turdagi qiymatdir;
    • mantiqiy, ishlatiladi mantiqiy ifodalar va ularning natijasi boolean qiymatlardir.

    3. Operatsion ustuvorliklari

    Ustuvorlik Operatsiya
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Funktsiya chaqiruvi va qavslar
    ^
    - (belgi o'zgarishi)
    *, /
    \
    Mod
    +, –
    >, <, >=, <=, <>, =
    Yo'q
    Va
    Yoki
    Xor

    4. Matematik funksiyalar

    Funktsiya Qaytish qiymati
    Abs(<число>) Raqamning moduli (mutlaq qiymat).
    Atn(<число>) Arktangent
    Cos(<число>) Kosinus
    Muddati (<число>) Eksponent, ya'ni tabiiy logarifm asosini belgilangan quvvatga ko'tarish natijasi
    jurnali(<число>) Tabiiy logarifm
    Rnd (<число>) [, Sarlavha] oraliqdan tasodifiy raqam

    Argumentlar:

    Xabar - oynada ko'rsatiladigan axborot xabarini belgilaydigan talab qilinadigan argument. Belgi bilan birlashtirilgan bir nechta matn qatorlaridan iborat bo'lishi mumkin & . Ushbu argumentda foydalanish Chr(13) axborotni chiqarishda yangi qatorga olib keladi.

    Tugmalar - bu argumentning qiymati oynada paydo bo'ladigan tugmalar toifalarini aniqlaydi. Tugma argumentining qiymati, shuningdek, oynada biron bir belgi paydo bo'lishini aniqlaydi. Xabar oynasida qaysi tugmalar ko'rsatilishini belgilamasangiz, OK tugmasiga mos keladigan standart qiymat ishlatiladi. Jadvalda 3.1 xabar oynasidagi tugmalar va piktogrammalarning mumkin bo'lgan kombinatsiyalarini ko'rsatadi.

    Sarlavha - oyna sarlavhasini o'rnatadi.

    Funktsiya MsgBox dialog oynasida qaysi tugma bosilganligini ko'rsatuvchi Integer qiymatini qaytaradi.

    3.1-jadval. Yaroqli tugma o'zgaruvchan qiymatlari

    Displey

    Dalil

    OK tugmasi

    OK va Bekor qilish tugmalari

    Ha va Yo'q tugmalari

    Ha, Yo'q va Bekor qilish tugmalari

    To'xtatish, Takrorlash va E'tibor bermaslik tugmalari

    VbAbortRetryIgnore

    Qayta urinish va Bekor qilish tugmalari.

    Axborot belgisi

    So'roq belgisi

    Undov belgisi

    Masalan. Joriy sana haqida xabarni ko'rsatish.

    "Taqvimdagi bugun" va sana, "Diqqat" xabar qutisi

    Natijada quyidagi oyna paydo bo'ladi (3.1-rasm).

    OK tugmasini bosgandan so'ng, xabarlar oynasi yopiladi va dasturning bajarilishi MsgBox qo'ng'irog'idan so'ng darhol bayonotdan davom ettiriladi.

    3.3.2. Funktsiya InputBox

    Funktsiya InputBox Kirish oynasi yordamida o'zgaruvchan qiymatlarni kiritadi va quyidagi sintaksisga ega:

    O'zgaruvchi_nomi = InputBox(Xabar[, Sarlavha] )

    Argumentlar:

    Xabar - talab qilinadigan argument. Oynada odatda kiritilgan qiymatning ma'nosini tushuntiruvchi axborot xabarini o'rnatadi.

    Sarlavha - oyna sarlavhasini o'rnatadi.

    Masalan, N o'zgaruvchining qiymatini klaviaturadan kiriting, standart qiymat 10 ga teng.

    Buning uchun siz quyidagi operatordan foydalanishingiz mumkin:

    N = InputBox("Enter N", "Kirish kiritish",10)

    Natijada N o'zgaruvchining qiymatini kiritish uchun quyidagi oyna paydo bo'ladi (3.2-rasm).

    Agar standart qiymat foydalanuvchi uchun maqbul bo'lsa, "OK" tugmasini bosgandan so'ng, kiritish oynasi yopiladi, N o'zgaruvchisi 10 ga o'rnatiladi va dasturning bajarilishi qo'ng'iroq ortidagi bayonotdan davom etadi. InputBox.

    Agar standart qiymat foydalanuvchi uchun mos bo'lmasa, OK tugmasini bosishdan oldin N o'zgaruvchisi uchun kerakli qiymatni kiritishingiz kerak.

    3 .4. Shartli IF bayonoti

    VBA-da tarmoqlanuvchi hisoblash jarayonini amalga oshirish uchun operator ishlatiladi Agar... Keyin... Aks holda, bu holatni tekshirishning eng oddiy shakli. U quyidagi sintaksisga ega:

    AgarSHARTKeyinOPERATOR_1ElseOPERATOR_2

    OPERATOR_1 bajarilgan bo'lsa SHART rost, aks holda bajariladi OPERATOR_2. Bunda If...Then...Else operatori bir qatorga yoziladi.

    SHART mantiqiy ifodadir. Ifodaning natijasi har doim mantiqiy bo'ladi. Ifoda oddiy yoki murakkab bo'lishi mumkin. Oddiy shartlarni yozishda jadvalda keltirilgan barcha mumkin bo'lgan relyatsion operatsiyalardan foydalanish mumkin. 3.2.

    Jadval3 .2. Mantiqiy munosabatlar

    Operatsiya

    Ism

    Ifoda

    Natija

    To'g'ri, agar A B ga teng bo'lsa

    To'g'ri, agar A B ga teng bo'lmasa

    To'g'ri, agar A B dan katta bo'lsa

    To'g'ri, agar A B dan kichik bo'lsa

    Ko'proq yoki teng

    To'g'ri, agar A B dan katta yoki teng bo'lsa

    Kamroq yoki teng

    To'g'ri, agar A B dan kichik yoki teng bo'lsa

    Mantiqiy amallar va qavslar yordamida oddiylardan murakkab shartlar tuziladi. Mantiqiy operatsiyalar ro'yxati jadvalda keltirilgan. 3.3.

    Jadval3 .3. Mantiqiy operatsiyalar

    Ism

    Ifoda

    Natija

    Mantiqiy
    inkor qilish

    Mantiqiy VA

    Mantiqiy OR

    Shartli gapda har qanday gap o‘rniga gaplar blokidan foydalanishga ruxsat beriladi. Bu holda shartli operator quyidagicha ko'rinadi:

    AgarSHARTKeyin

    BLOCK_OPERATORS_1

    BLOCK_OPERATORS_2

    Oxiri If

    Shartli bayonot bir nechta shartlarni sinab ko'rishi mumkin. Bu holda shartli operator quyidagicha ko'rinadi:

    AgarCONDITION_1Keyin

    BLOCK_OPERATORS_1

    ElseIfCONDITION_2Keyin

    BLOCK_OPERATORS_2

    Boshqa

    OxiriAgar

    1-misol. Shakldagi algoritm uchun dasturning bir qismini yozing. 3.3.

    2-misol. Shakldagi algoritm uchun dasturning bir qismini yozing. 3.4.

    3.5. Case operatorini tanlang

    Select Case operatori amaldagi qiymatlarning chekli to'plamiga ega bo'lgan ba'zi ifodaning qiymatiga qarab turli amallarni bajarish kerak bo'lganda foydalidir. U shartli gaplar bilan ham bog'liq, ammo boshqa shaklga ega:

    Case-ni tanlangSINOV OLDIRGAN ibora

    CaseVALUES_1

    OPERATORS_1

    CaseQIYMATLAR_ 2

    OPERATORLAR_ 2

    . . .

    CaseVALUES_N

    OPERATORLAR_N

    [ CaseBoshqa

    BOSHQA_ OPERATORLAR]

    Tanlovni tugatish

    SINOV OLDIRGAN ibora realdan boshqa har qanday skalyar tipda bo'lishi mumkin. QIYMATLAR vergul bilan ajratilgan ixtiyoriy miqdordagi qiymatlar yoki diapazonlardan iborat.

    Turi QIYMATLAR turiga mos kelishi kerak TEST_EXPRESSION.

    Avval hisoblab chiqiladi SINOV OLDIRGAN ibora. Agar uning qiymati qiymatlardan biriga mos kelsa VALUES_I, keyin ular bajariladi OPERATORS_I Tanlovni tugatish. Agar uning qiymati biron bir qiymatga mos kelmasa VALUES_I, keyin ular bajariladi ELSE_OPERATORS va boshqaruv undan keyin turgan operatorga o'tkaziladi Tanlovni tugatish

    Masalan. Shakldagi algoritm uchun dasturning bir qismini yozing. n o'zgaruvchining qiymatiga qarab S o'zgaruvchining qiymatini aniqlaydigan 3.5.

    3.6. Loop bayonotlari

    Tsiklik hisoblash jarayonini amalga oshirish uchun, ya'ni bir yoki bir nechta operatorlarning takroriy bajarilishi uchun sikl operatori ishlatiladi. Uchun...Keyingi, quyidagi sintaksisga ega:

    UchunCOUNTER=START_VALUEToCON_VALUEQadamQADAM

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    KeyingisiCOUNTER

    For...Keyingi tsikli oʻzgaruvchining qiymatlari boʻylab oʻtadi COUNTER, ko'rsatilgan o'zgartirish bosqichi bilan dastlabki qiymatdan yakuniy qiymatgacha bo'lgan tsikl parametri. Bu har bir yangi hisoblagich qiymati bilan halqa tanasi bayonotlari blokining bajarilishini ta'minlaydi. Agar QadamQADAM dizaynda yo'q bo'lsa, sukut bo'yicha qadam 1 ga teng deb qabul qilinadi. Operatorga ko'ra Chiqish uchun oldin loop bayonotidan chiqishingiz mumkin COUNTER oxirgi qiymatga etadi.*

    O'xshash ob'ektlar guruhidagi ob'ektlarni takrorlash uchun, masalan, diapazon yoki massiv elementlarining kataklari, tsikl operatoridan foydalanish qulay. Uchun…Har bir...Keyingi.

    Har birigaElementInGuruh

    BLOK_ OPERATORLAR

    OPERATOR_BLOCK

    KeyingisiElement

    VBA-da noma'lum takroriy sonli sikllarni tashkil qilish uchun boshqa sikl operatorlari ishlatiladi:

    oldingi shartli tsikllar - DoVaholankiLoop,

    DogachaLoop;

    postshartli tsikllar - DoLoopVaholanki,

    DoLoopgacha.

    Quyida ushbu tsikl iboralarining sintaksisi keltirilgan:

    "Oldin shart bilan tsiklDo Vaholanki Loop

    Do whileSHART

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    "Oldin shart bilan tsiklDo gacha Loop

    DogachaSHART

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    "Postshart bilan tsiklDo Loop while

    BLOK_ OPERATORLAR

    OPERATOR_BLOCK

    Loop whileSHART

    "Postshart bilan tsiklDo Qachongacha aylanish

    BLOK_ OPERATORLAR

    OPERATOR_BLOCK

    Qachongacha aylanishSHART

    Operator DoVhile...Loop qadar bayonotlar blokining bir necha marta takrorlanishini ta'minlaydi SHART kuzatiladi va operator



    Boshqa yangiliklar

    Til ko'rsatmalari (yoki operatorlar)- bu ba'zi harakatlarni bajaradigan yoki ma'lumotlarni tavsiflovchi dastur birliklari.

    Bayonot bir yoki bir nechta kalit so'zlarni va ehtimol parametrlarni o'z ichiga oladi. Xuddi shu dastur qatorida joylashgan bir nechta bayonotlar bir-biridan ikki nuqta bilan ajratiladi. Agar bayonot juda uzun bo'lsa, uni buzish uchun pastki chiziq _ belgisidan foydalanib, uni bir nechta qatorlarga bo'lishingiz mumkin.

    HAQIDA P tuzatuvchi topshiriqlar

    Belgilash operatori dasturni bajarish jarayonida o'zgaruvchiga yangi qiymat berish uchun ishlatiladi. Topshiriq belgisi "=".

    Masalan, operator:

    x = Sqr(5 + Tan(1,8)^2)

    x o'zgaruvchiga ifoda qiymatini belgilaydi. O'ng tomonda yozilgan ifodani hisoblash natijasida biz haqiqiy sonni olamiz. Ammo x o'zgaruvchisiga tayinlanadigan qiymat ushbu o'zgaruvchining turi qanday e'lon qilinganiga bog'liq. Demak, agar x o'zgaruvchisi Single turi bo'lsa, unga 4,834464, Double bo'lsa, 4,83446368725481, Integer bo'lsa, 5 natija beriladi.

    X o'zgaruvchisining ma'lumotlar turi ushbu ifodaning ma'lumotlar turiga mos kelishi kerak. Topshiriq davomida bir turdan ikkinchi turga yashirin konvertatsiya qilishdan tashqari, Visual Basic funksiyalar yordamida turlarni aylantirish imkoniyatini beradi. Masalan, funktsiya CDbl ma'lumotlarni Double turiga o'zgartiradi, CInt- Integer turiga, Clng- uzun turga, CSng- Yagona turga, CStr– Stringni yozish va h.k.

    CInt va Clng funksiyalari natijani yaxlitlaydi. Bundan tashqari, agar raqamning kasr qismi 0,5 bo'lsa, yaxlitlash eng yaqin juft songa amalga oshiriladi.

    Tayinlash operatori nafaqat o'zgaruvchiga qiymat belgilash, balki VBA ob'ektlari xususiyatlarining qiymatlarini o'rnatish imkonini beradi. Masalan, operator

    Qatorlar("1:1").Shrift. Qalin = To'g'ri

    Ishchi varaqning birinchi qatoridagi shriftni qalin qiladi.

    YANGI SATR

    Kombinatsiya<Пробел> + <Знак подчеркивания>satr oxirida keyingi satr avvalgisining davomi ekanligini ta'minlaydi. Shu bilan birga, shuni yodda tutishimiz kerak:

    § Oʻrash orqali satr konstantalarini buzolmaydi

    § Xuddi shu qatorning ettitadan ortiq davomiga yo'l qo'yilmaydi

    § Satrning o'zi 1024 ta belgidan oshmasligi kerak

    Misol.

    Noto'g'ri uzatish To'g'ri uzatish

    Line = "Visual Basic for _ Line = "Visual Basic" _

    Ilovalar" va "Ilovalar uchun"

    IZOHLAR

    Dasturda (") belgisidan keyingi satr oxirigacha bo'lgan matn kompilyator tomonidan e'tiborga olinmaydi va izoh hisoblanadi.Izohlar dasturga tushuntirish va tavsif qo'shish uchun ishlatiladi.Izohlar dasturni disk raskadrovka qilishda foydalidir: ular imkon beradi. disk raskadrovka paytida dastur qatorlarini vaqtincha o'chirib qo'yishingiz mumkin.

    Shartli operator

    Shartli gap shart ifodasining qiymatiga qarab ma'lum ko'rsatmalarni (bayonotlarni) bajaradi. Vaziyatni tekshirish uchun blok diagrammasi quyidagicha ko'rinadi:

    Guruch. 1. Tarmoqlanish tugallanmagan bo'lishi mumkin (bu tuzilma aylanma deb ham ataladi).

    Guruch. 2. Shartli gap sintaksisning ikki shakliga ega: satr va blok.

    Kichik harf shakli

    Agar holat Keyin [ operatorlar_agar_haqiqat]

    Shaklda keltirilgan algoritm. 1, kichik harflar bilan yoziladi

    Agar holat Keyin operatorlar_agar_haqiqat Boshqa operators_if_false

    2-rasm kirishga mos keladi

    Agar holat Keyin operatorlar_agar_haqiqat

    3-rasm kirishga mos keladi

    Agar holat Keyin Boshqa operators_if_false

    Blok shakli

    Agar shart-1 Keyin

    [operatorlar_agar shart – 1_true]

    [operatorlar_agar_barcha_shartlar_noto'g'ri]]

    If va ElseIf qismlarida keltirilgan shartlar relyatsion ifodalar yoki mantiqiy ifodalardir. Shartlardan biri bajarilganda, unga mos keladigan Then kalit so'zidan keyingi gaplar bajariladi, qolgan operatorlar e'tiborga olinmaydi (ya'ni, boshqa hech qanday test o'tkazilmaydi va nazorat End If dan keyingi operatorga o'tkaziladi). Agar mantiqiy shartlarning hech biri to'g'ri bo'lmasa, unda operatorlar_agar_barcha_oldingi_shartlar_noto'g'ri, yoki agar bu qism o'tkazib yuborilsa, boshqaruv shartli bayonotdan keyin dastur qatoriga o'tkaziladi.

    If iborasining blok shakli afzalroq, agar:

    Shart bajarilganda yoki bajarilmasa, bir nechta buyruqlar bajariladi (bu holda chiziq shaklidan ham foydalanish mumkin, lekin chiziq juda uzun va dastur kamroq tushunarli bo'ladi);

    Bir nechta shartlar ketma-ket tekshiriladi va keyingi shart bajarilganda keyingi shartlarni tekshirish o'rinli emas (shuning uchun ElseIf kalit so'zi ishlatiladi).

    Misol

    Kompaniya ulgurji xaridorlarga chegirmalar beradi.

    Buyurtmaning ma'lum hajmiga asoslanib, uning narxini aniqlash kerak.

    Buyurtma narxini hisoblash uchun biz funktsiyadan foydalanamiz:

    Ommaviy funktsiya Buyurtma_narxi(Miqdori) ikki barobar

    Miqdor bo'lsa<= 999 Then

    Buyurtma_narxi = Miqdor * 5

    ElseIf miqdori<= 1999 Then

    Buyurtma_narxi = Miqdor * 4.8

    Buyurtma_narxi = Miqdor * 4,75

    Bunday holda, IF operatorining kichik harf shaklidan foydalanish mumkin edi:

    Ommaviy funktsiya Order_Cost1(Miqdori uzunligi) Ikki barobar

    Miqdor bo'lsa<= 999 Then Стоимость_заказа1 = Количество * 5

    Miqdor >= 1000 va miqdori bo'lsa<= 1999 Then Стоимость_­ заказа1 = Количество * 4.8

    Miqdor >= 2000 bo'lsa, Buyurtma_narxi1 = Miqdor * 4,75

    Agar biz chiziqlar uzun bo'lgan kamchiliklarni hisobga olmasak va har qanday buyurtma hajmi uchun barcha tekshiruvlar ketma-ket amalga oshiriladi (birinchi protsedura kichik buyurtma hajmlari uchun tezroq ishlaydi), unda dastur to'g'ri yozilgan va, ehtimol, yanada aniqroq.

    Biroq, misollar keltirish mumkinki, agar shartlardan biri bajarilgan bo'lsa (yoki bajarilmasa), qolganlari oddiygina tekshirilmaydi.

    Masalan, shartlar birgalikda bajarilganda ba'zi operatorlar bajarilishi kerak: http://po-teme.com.ua/images/adIIIin/image014_e652e49476c6f0eb9cf40b68cc090828.gif" alt="" width="56" height="27 src="> Agar tekshirish uchun operatordan foydalaning

    Agar x>0 va y bo'lsa

    u holda x manfiy bo'lsa, sqr funksiyasini chaqirganda xatolik yuzaga keladi (ildiz manfiy son).

    Dizayn yordamida ushbu xatodan qochish mumkin

    Agar x > 0 bo'lsa, y bo'lsa< Sqr(x) Then

    Yozuvning oxirgi shaklida, agar Else kalit so'zi bo'lsa, u oxirgi If iborasiga ishora qiladi.

    Tanlash operatori

    Case-ni tanlang ifoda

    [ko'rsatmalar_boshqa]]

    Ifodaning parametri har qanday sonli yoki qatorli ifodadir. Mantiqiy shartni baholash o'rniga, ifoda qiymati parametr tomonidan ko'rsatilgan qiymatlarning har biri bilan taqqoslanadi. ifoda_roʻyxati-n.

    Taqqoslash uchun qiymatlar kiritilgan ifoda_roʻyxati-n, shaklda ko'rsatilishi mumkin:

    - qiymatlar;

    - shakldagi qiymatlar diapazoni boshlang'ich_qiymat Kimga yakuniy_qiymat;

    – Is ko‘rinishidagi taqqoslash ifodalari taqqoslash_operator qiymati;

    - sanab o'tilgan har qanday ibora turlarining ro'yxati (ajratuvchi - vergul).

    Ko'rsatma ixtiyoriy sonli Case bloklarini o'z ichiga olishi mumkin. Agar shartlarning hech biri to'g'ri bo'lmasa, Case Else blokidagi operatorlar bajariladi.

    Misol uchun, agar shart uchdan yuqori ball bo'lsa, u holda bu shart yozilishi mumkin: 4, 5 yoki Case Is >3 yoki Case Is >= 4 yoki 4 dan 5 gacha.

    Eslatma. Kalit so'z Kiritish shart emas, u avtomatik ravishda qo'shiladi.

    Misol

    Select Case konstruktsiyasidan foydalangan holda chegirmali narx bilan yuqoridagi misolni quyidagicha hal qilish mumkin:

    Ommaviy funktsiya Order_Cost2(Miqdori uzunligi) Ikki barobar

    Koson miqdorini tanlang

    Buyurtma_narxi2 = Miqdor * 5

    1000-dan 1999-yilgacha

    Buyurtma_narxi2 = Miqdor * 4.8

    Vaziyat >= 2000

    Buyurtma_narxi2 = Miqdor * 4,75

    VBA dasturi - bu bayonotlar ketma-ketligi.

    Dasturlarni yozishda bir qator qoidalarga rioya qilish kerak. Shunday qilib, bir qatorga bir nechta bayonotlarni joylashtirish mumkin. Xuddi shu qatordagi gaplar orasiga ikki nuqta qo'yiladi.

    Har qanday qatorni birinchisining oxiriga “Bo‘sh joy” + “Pastki chiziq” (_) belgilarini qo‘yish orqali ikkiga bo‘lish mumkin, bu holda ikkinchi qator birinchisining davomi hisoblanadi.

    Sharhlar dasturni o'qishni osonlashtirish uchun ishlatiladi. VBA-da sharhlarni kiritishning ikki yo'li mavjud: chiziqning istalgan joyiga joylashtirilishi mumkin bo'lgan apostrof (') va apostrof o'rniga zaxiralangan Rem so'zidan foydalanish.

    1. Dim operatori o'zgaruvchilar turlarini e'lon qilish uchun mo'ljallangan.

    1. A butun son sifatida xiralashtiring – A o'zgaruvchisi butun son sifatida e'lon qilinadi, ya'ni. u faqat butun son qiymatlarini saqlaydi .

    2. Xira D sana sifatida - D o'zgaruvchisi sanalarni saqlash uchun e'lon qilinadi.

    3. Xira familiya, satr sifatida ism - o'zgaruvchilar e'lon qilinadi. Matnni saqlash uchun mo'ljallangan familiya va ism.

    4. Dim B(12) butun son sifatida – 12 ta butun sondan iborat bir oʻlchovli massiv (vektor) eʼlon qilinadi va sukut boʻyicha massivning birinchi elementi B(0), oxirgisi esa B(12) boʻladi.

    5. Dim B(3,3) Yakka holda – haqiqiy sonlardan iborat ikki o'lchovli 3x3 massiv (matritsa) e'lon qilinadi.

    Agar o'zgaruvchi turi ko'rsatilmagan bo'lsa, standart turi Variant hisoblanadi. Biroq, o'zgaruvchilarning ma'lum bir turini ko'rsatish dasturni yanada ishonchli qiladi va uning ishlashini tezlashtiradi, chunki VBA har safar kirishda e'lon qilinmagan o'zgaruvchini tanib olish uchun vaqt sarflashi shart emas.

    Agar M massivning o'lchami oldindan ma'lum bo'lmasa va dastur davomida aniqlansa, u holda massivni tavsiflashda elementlar soni ko'rsatilmaydi va massiv quyidagicha aniqlanadi:

    Dim M() butun son sifatida

    Massiv elementlarining sonini aniqlagandan so'ng, masalan, N, operatorni yozish kerak

    2. Tayinlash operatori o'zgaruvchiga qiymat berish uchun mo'ljallangan.

    Sintaksis:

    O'zgaruvchi (yoki ob'ekt xususiyati) = ifoda.

    1. a=5 – A o'zgaruvchisiga 5 qiymatini belgilang ;

    2. b=“Menejer” – o'zgaruvchi b tayinlash"Menejer" degan ma'noni anglatadi;

    · Manzil=Vraqalar("Tashkilotlar").Yacheykalar(2,2) – Joriy ish kitobidagi Tashkilotlar varag'ida joylashgan B2 katak tarkibini Manzil o'zgaruvchisiga belgilang;

    Familiya=UserForm1.TextBox1.Text – o'zgaruvchan Familiya UserForm1 foydalanuvchi shaklining TextBox1 maydonining mazmuniga beriladi.

    o Bilan/Izoh bilan tugaydi dasturchini bir xil ob'ekt nomini ko'p takrorlashdan qutqaradi.

    Sintaksis:

    Ob'ekt bilan

    operator1

    operator2

    operatorN

    Masalan, gaplar ketma-ketligi o'rniga

    UserForm1.TextBox1.Text = Sana

    UserForm1.TextBox2.Text = " "

    UserForm1.ComboBox1.Text = " "

    shunday yozish mumkin

    TextBox1.Text = Sana

    . TextBox2.Text = " "

    . ComboBox1.Text = " "

    REM A ustunidagi Sheet1 varag'ida, ikkinchi qatordan boshlab, "xodimlar tariflari" yoziladi. UserForm1 foydalanuvchi formasida ComboBox1 kombinatsiya oynasini to'ldiring

    ‘Dasturning birinchi qatori – Sheet1 varag‘ida A ustunidagi ‘to‘ldirilgan katakchalar soni hisoblanadi, natija ‘N o‘zgaruvchisiga tayinlanadi.

    N=Application.CountA(Sheets(“Sheet1”).Range(“A:A”)).

    D=”A2:A”&Cint(N)

    Sheets("Sheet1").Range(D).Name="Tariflar"

    TextBox1.Text = Sana

    . TextBox2.Text = " "

    . ComboBox1.Text = " "

    . ComboBox1.Rowsource = "Tariflar"

    1. Shartli gap If/Then/Else– muayyan holatni tekshirish va tekshirish natijalariga qarab u yoki bu harakatni bajarish imkonini beradi

    Sintaksis:

    Agar holat Keyin operatorlar1 [ Boshqa operatorlar2]

    Agar shart rost bo'lsa, u holda ko'rsatmalar1 bajariladi, aks holda operatorlar2 bajariladi.

    Blok sifatida yozilgan murakkab shartli operatordan ham foydalanish mumkin:

    Agar shart 1 Keyin

    operatorlar 1

    ElseIf shart 2 Keyin

    operatorlar2

    operatorlar 3

    Familiya=.TextBox1.Text

    Agar familiya ="" Keyin MsgBox"Siz familiyani kiritmagansiz"

    REM 1-sonli katakcha belgilansa, mijozga 5% chegirma beriladi

    ‘ Summa – mijoz tomonidan to‘langan pul summasi

    ‘ Mahsulot tannarxi Xarajatlar o‘zgaruvchisida saqlanadi

    Agar UserForm1.CheckBox1.Value = rost bo'lsa

    Miqdor=Xarajat-xarajat*0,05

    Boshqa miqdor = Narx

    1) REM Tarif belgilangan tarif, Vaqt esa ishlagan vaqt deb faraz qilaylik. Vaqt va tarif mos ravishda TextBox1 va TextBox2 da kiritish maydonlariga kiritiladi. Ish haqi Tarif*Vaqt formulasi bo'yicha hisoblanadi. Hisoblangan ish haqini shaklda aks ettirish dasturini yozamiz. Label4 - "ish haqi qiymatini ko'rsatish" uchun tayyorlangan yozuv

    If IsNumeric(TextBox1.Text)=True va _

    IsNumeric(TextBox2.Text)=To'g'ri, keyin

    Tarif=TextBox1.Text

    Vaqt=TextBox2.Text

    Label4.Caption=Tarif*Vaqt

    Birinchi misolda biz birinchi raqamli foydalanuvchi formasi bilan ishlaymiz. O'zgaruvchan Familiya birinchi raqamli kirish maydonining mazmuni tayinlanadi. Keyin kiritish maydoniga biror narsa kiritilgan yoki yo'qligini tekshiradi (o'zgaruvchi bo'sh yoki yo'qmi) Familiya). Agar o'zgaruvchi bo'lsa Familiya bo'sh bo'lsa, ekranda xabar oynasi ko'rsatiladi.

    Ikkinchi misolda, REM so'zi bilan boshlangan birinchi qatorlar va apostroflar o'zgaruvchilarning maqsadini tushuntiruvchi izohlardir. Shartli operator mijoz tomonidan to'langan miqdorni belgilaydi.

    Uchinchi misol raqamlar kiritish maydonlariga kiritilganligini tekshiradi. Agar raqamlar ikkita maydonga kiritilgan bo'lsa, u holda o'zgaruvchilarga kirish maydonlarining qiymatlari tayinlanadi va yorliq tarifni vaqtga ko'paytirish natijasining qiymati bilan belgilanadi.

    1) Shartsiz o'tish operatori O'tish dastur ichida belgilangan qatorga o'tishni ko'rsatish uchun mo'ljallangan.

    Sintaksis:

    GoTo String

    Kerakli argument String har qanday satr yorlig'i yoki qator raqami bo'lishi mumkin.

    Agar IsNumeric(TextBox1.Text)=False bo'lsa, o'tish xatosi

    Xato: MsgBox "Raqamlarni kiritishda xato!"

    Yuqoridagi misol birinchi kiritish maydoniga raqam kiritilgan yoki yo'qligini tekshiradi. Agar kiritilgan raqam raqam bo'lmasa, u holda Xato yorlig'i bilan chiziq ko'chiriladi va ekranda xabar paydo bo'ladi.

    2) sikl operatori Uchun/Kimga/Keyingi takrorlanuvchi fragmentlarni dasturlash uchun mo'ljallangan, ya'ni. siklik algoritmlarni tavsiflash.

    Sintaksis:

    Uchun o'zgaruvchi=M1 Kimga M2 [ Qadam M3]

    operatorlar

    M1, M2, M3 – ifodalar. O'zgaruvchi (hisoblagich) M3 ko'rsatilgan qadam bilan M1 boshlang'ich qiymatidan M2 yakuniy qiymatiga o'zgarganda, tsikl bayonoti bir guruh bayonotlarning bajarilishini takrorlaydi. Agar qadam ko'rsatilmagan bo'lsa, u 1 deb qabul qilinadi.

    Familiya = Varaqlar ("Xodimlar"). Hujayralar (I,1)

    UserForm1.ComboBox1.AddItem Familiyasi

    Keltirilgan misolda, "Xodimlar" varag'ining birinchi ustunida birinchi raqamli foydalanuvchi shaklidagi birinchi kombinatsiya ro'yxatiga kiritilishi kerak bo'lgan xodimlarning ismlari mavjud deb taxmin qilinadi. Dasturning ishlash algoritmi:

    1) I o'zgaruvchiga 2 qiymati beriladi.

    2) Familiya o‘zgaruvchisiga “Xodimlar” varag‘ida joylashgan A(I,1) katak qiymati beriladi. (Tsikl birinchi marta bajarilganda, bu A(2,1) katakdir)

    3) ComboBox1 kombinatsiya oynasi ro'yxatiga Familiya o'zgaruvchisidan element qo'shiladi.

    4) I o'zgaruvchining qiymatiga 1 qo'shiladi (agar qadam ko'rsatilmagan bo'lsa, u 1 ga teng deb hisoblanadi). Tekshirish I ning qiymati 10 dan oshib ketganligini tekshirish amalga oshiriladi (I o'zgaruvchining yakuniy qiymati, M3=10 misolida)? Agar I qiymati hatto 10 dan kichik yoki teng bo'lsa, u holda 2-4 bosqichlar bajariladi, aks holda tsikl tugaydi.

    Shunday qilib, yuqoridagi dastur ComboBox1 ro'yxatini ma'lumotlar bilan to'ldirish imkonini beradi.

    Yechishda ishlatiladigan asosiy algoritmlar
    iqtisodiy vazifalar

    Keling, quyidagi misol yordamida asosiy algoritmlarni ko'rib chiqaylik. Shartnoma bo'yicha ishlarni bajarishda turli bo'limlarning xodimlari ishtirok etishdi. "Sheet1" varag'idagi jadvalda har bir xodim ishlagan soatlar soni to'g'risidagi ma'lumotlar keltirilgan (8-rasm).


    8-rasm. Ishlagan soatlar soni bo'yicha ma'lumotlar

    kompaniya xodimlari


    Bepul dasturlar va foydali maslahatlar dunyosi
    2024 whatsappss.ru