Аппараттық және бағдарламалық қамтамасыз етуді орнату

VBA мәлімдемелері. VBA салыстыру операторлары Vba теріске шығару

Қысқаша теориялық ақпарат

1. VBA программалау тілінің синтаксисі мен семантикасы

Бағдарламалау тілінің синтаксисі - бұл жақсы құрылымдалған бағдарлама (құжат) немесе оның фрагменті деп саналатын алфавиттік таңбалардың комбинацияларын сипаттайтын ережелер жиынтығы.

Бұл тілдің негізгі синтаксистік принциптері мыналар:

  • VBA регистрді ескермейді;
  • жолдың соңына дейін кодқа түсініктеме беру үшін бір тырнақшаны (") немесе REM пәрменін пайдаланыңыз;
  • таңба мәндері қос тырнақшаға алынуы керек («»);
  • VBA-дағы кез келген атаудың (айнымалылар, тұрақтылар, процедуралар) максималды ұзындығы - 255 таңба;
  • жаңа оператордың басталуы - аударма жаңа жол(С, Java, JavaScript сияқты нүктелі үтір бұл үшін пайдаланылмайды);
  • Максималды жол ұзындығына шектеулер жоқ (бірақ редактор әр жолға тек 308 таңбаға рұқсат береді). Бір жолдағы бірнеше мәлімдемелер қос нүктемен бөлінеді:
    "1-тексеру" MsgBox: "2-тексеру" MsgBox
  • оқуға ыңғайлы болу үшін бос орын және одан кейінгі астын сызу арқылы бірнеше физикалық жолдарды бір логикалық жолға біріктіруге болады:
    "Пайдаланушыға хабарлама" MsgBox _
    &vUserName

Тілдің семантикасы – сөздердің семантикалық мағынасы. Программалауда операторлардың бастапқы семантикалық мағынасы, негізгі тіл конструкциялары және т.б.

Операторіске қосуға болатын VBA кодының ең кіші бірлігі. Мәлімдеме айнымалыны жариялай немесе анықтай алады, VBA компилятор опциясын орната алады немесе бағдарламада кейбір әрекетті орындай алады.

Арифметика VBA-да бар болғаны 7 оператор бар.

Төрт стандартты: қосу (+), алу (-), көбейту (*), бөлу (/) және тағы үшеу:

  • дәрежеге шығару (^). Мысалы, 2^3 = 8;
  • бүтін бөлу (\). Бірінші санды екінші санға бөледі, тастайды (дөңгелектеу емес) бөлшек бөлігі. Мысалы, 5\2 = 2;
  • модульдік бөлім (Mod). Бірінші санды екіншісіне бөледі, бөлімнің қалған бөлігін ғана қайтарады. Мысалы, 5 Mod 2 = 1.

VBA-дағы тағайындау операторы теңдік белгісі болып табылады. Оны былай жазуға болады:

nVar = 10 болсын
немесе одан да қарапайым:
nvar = 10

Мұнда теңдік белгісін теңдік операторымен шатастырмаңыз. Соңғы өрнек «nVar айнымалысын 10-ға орнату» дегенді білдіреді, ал егер жол келесідей көрінсе: Егер (nVar = 10) , онда «nVar айнымалысының мәні 10 болса» дегенді білдіреді.

Салыстыру операторлары VBA-да тек 8 бар:

  • теңдік (=). Мысалы, If (nVar = 10);
  • (>) артық және (10) аз;
  • үлкен немесе тең (>=) және кіші немесе тең (= 10);
  • тең емес (). Мысалы, If(nVar10);
  • объектілерді салыстыру (Is). Нысан айнымалылары бір нысанға немесе басқаларға сілтеме жасайтынын анықтайды. Мысалы, If (obj1 - obj2);
  • ұқсастық (Ұнату). Жол нысанын үлгімен салыстырады және үлгі сәйкес келетінін анықтайды.

Салыстыру операторлары әрқашан қайтарады Рас(егер мәлімдеме шын болса) немесе Жалған(егер мәлімдеме жалған болса).

Біз бірнеше шарттарды тексергенде жиі қолданамыз логикалық операторлар:

  • Және - логикалық ЖӘНЕ.Екі шарт та ақиқат болуы керек;
  • Немесе - логикалық НЕМЕСЕ. Шарттардың кем дегенде біреуі дұрыс болуы керек;
  • Емес - логикалық терістеу. Шарт жалған болса, True мәнін қайтарады;
  • Xor - логикалық ерекшелік. E1 Xor өрнекте E2 тек E1 = True немесе тек E2 = True, әйтпесе False болса, True мәнін қайтарады;
  • Eqv – екі өрнектің эквиваленттілігі, егер олардың мәні бірдей болса, True мәнін қайтарады;
  • Имп - импликация, E1 Imp E2, егер E1 = True және E2 = False, әйтпесе True болса, False мәнін қайтарады.

туралы есте сақтау керек Және, Немесе, Жоқ, басқа логикалық операторлар сирек қолданылады.

Айнымалыларөзгермелі деректерді сақтауға арналған контейнерлер болып табылады. Оларсыз ешбір бағдарлама дерлік істей алмайды. Қарапайымдылық үшін айнымалыны гардеробтағы санмен салыстыруға болады - сіз кейбір деректерді гардеробқа тапсырасыз, жауап ретінде сізге нөмір беріледі. Сізге бұл деректер қайтадан қажет болғанда, сіз «нөмірді көрсетесіз» және оны аласыз.

Әрбір айнымалының аты бар. Айнымалы өз атымен аталады. VBA-да атауларды таңдау ережелері көптеген элементтер үшін бірдей (айнымалылар, тұрақтылар, функциялар, процедуралар және т.б.):

  • аты әріптен басталуы керек;
  • бос орындар мен тыныс белгілері болмауы керек (ерекшелік - астын сызу таңбасы);
  • максималды ұзындық - 255 таңба;
  • ағымдағы ауқымда бірегей болуы керек
  • резервтелген сөздерді (код өңдегішінің терезесінде көк түспен бөлектелгендер) пайдалану мүмкін емес.

VBA бағдарламаларын құру кезінде объектілерге атаулар тағайындалатын ережелерді - атау конвенциясын шешу ұсынылады. Ең жиі қолданылатыны венгр конвенциясы деп аталады (Microsoft бағдарламашыларының бірі, этникалық венгр Чарльз Симонидің құрметіне):

  • Айнымалы атауы кіші әріптермен жазылған префикстен басталуы керек. Префикс осы айнымалыда нақты не сақталатынын көрсетеді:
    str (немесе s) - Жол, таңба мәні;
    fn (немесе f) - функция;
    қосалқы процедура;
    c (немесе атаудың барлық әріптері бас әріптер) - тұрақты(айнымалылардан айырмашылығы, VBA бағдарламасын орындау кезінде өзгермейтін деректерді сақтауға арналған контейнер);
    b - логикалық, логикалық мән (True немесе False);
    d - күні;
    obj (немесе o) - объект сілтемесі;
    n – сандық мән;
  • функциялардың, әдістердің атаулары және күрделі сөздегі әрбір сөз бас әріптен басталуы керек:
    MsgBox objMyDocument.Name
    Sub CheckDateSub()

Деректер түрікез келген бағдарламалау тілінің ең негізгі ұғымдарының бірі болып табылады. Деректер түрі мән (айнымалы немесе тұрақты) қабылдай алатын жарамды мәндер жиынын және осы мәнмен орындауға болатын әрекеттер жинағын анықтайды.

2. Негізгі VBA деректер түрлері

VBA келесі деректер түрлерін қамтамасыз етеді:

  • сандық:
    байт- 0-ден 255-ке дейінгі бүтін сан, сақтау үшін қажет 1 байтжады;
    бүтін сан- −32 768-ден 32 767-ге дейінгі бүтін сан, 2 байт ;
    Ұзақ- −2 147 483 648-ден 2 147 483 647-ге дейінгі үлкен бүтін сан, 4 байт ;
    Валюта(валюта) – 19 позициясы бар үлкен ондық сан, оның ішінде 4 ондық таңба
    (-922337203685477.5808-ден 922337203685477.5807 дейін), 4 байт,
    валюталық есептеулердегідей дәлдік маңызды болған кезде сандарды сақтау үшін пайдаланылады;
    Ондық- 29 позициясы бар одан да үлкен ондық сан (ондық бөлшектен кейін 0-ден 28 орынға дейін пайдалануға болады), 8 байт;
    Бойдақжәне Қосарлы- өзгермелі нүкте мәндері ( 4 және 8 байт)
    (теріс мәндер үшін -3,402823 10 38-ден -1,401298 10 -45 дейін және
    Single үшін оң мәндер үшін 1,401298 10 -45-тен 3,402823 10 38-ге дейін, және
    -1,79769313486232 10 308 -4,94065645841247 10 -324 теріс мәндер үшін және
    Double үшін оң мәндер үшін 4,94065645841247 10 -324-тен 1,79769313486232 10 308 дейін);
  • жол ( Жолайнымалы ұзындық (шамамен 2 миллиард таңбаға дейін) және тұрақты ұзындық (шамамен 65 400 таңбаға дейін));
  • күні мен уақыты ( Күн- 01.01.100 бастап 31.9999 ж. дейін), 8 байт;
  • логикалық ( логикалық- тек сақтай алады Нағыз құндылықтаржәне жалған), 2 байт;
  • нысан ( Нысан- жадта кез келген объектіге сілтемені сақтайды);
  • Нұсқа- деректердің кез келген түрін сақтай алатын арнайы деректер түрі, 16 байт +1
Деректер түрінің белгісі болып табылады кілт сөздертілі (және VBA редакторында тергеннен кейін бөлектелген). Жоғарыда әртүрлі түрлерідеректер, әртүрлі операцияларға рұқсат етіледі. VBA-да операциялардың үш негізгі түрі бар:
  • математикалық, сандар бойынша орындалады, олардың нәтижесі сандар;
  • реляциялық амалдарды тек сандарға ғана емес қолдануға болады, олардың нәтижесі логикалық типтің мәні болып табылады;
  • логикалық, қолданылады логикалық өрнектержәне олардың нәтижесі логикалық мәндер болып табылады.

3. Операциялардың басымдықтары

Басымдық Операция
1
2
3
4
5
6
7
8
9
10
11
12
Функция шақыруы және жақшалар
^
- (белгіні өзгерту)
*, /
\
Мод
+, –
>, <, >=, <=, <>, =
Жоқ
Және
Немесе
Хор

4. Математикалық функциялар

Функция Қайтарылатын мән
abs (<число>) Санның модулі (абсолюттік мәні).
atn(<число>) Арктангенс
Cos (<число>) Косинус
Exp(<число>) Көрсеткіш, яғни натурал логарифм негізін көрсетілген дәрежеге көтеру нәтижесі
журнал(<число>) табиғи логарифм
Rnd(<число>) Кездейсоқ сан аралықтан [, Тақырып]

Аргументтер:

Хабар - терезеде көрсетілетін ақпараттық хабарламаны көрсететін міндетті аргумент. Белгімен біріктірілген бірнеше мәтін жолдарынан тұруы мүмкін & . Бұл аргументте қолдану Chr(13)ақпаратты шығару кезінде жол үзілімін тудырады.

Түймешіктер - бұл аргументтің мәні терезеде пайда болатын түймелердің санаттарын анықтайды. Түймешік аргументінің мәні терезеде белгішенің пайда болуын да анықтайды. Хабарлама жолағында қандай түймелерді көрсету керектігін көрсетпесеңіз, OK түймешігіне сәйкес әдепкі мән пайдаланылады. Кестеде. 3.1 хабарлама терезесіндегі түймелер мен белгішелердің мүмкін комбинацияларын көрсетеді.

тақырыбы - терезенің тақырыбын белгілейді.

Функция MsgBoxдиалогтық терезеде қай түймешік басылғанын көрсететін бүтін санды қайтарады.

3.1-кесте. Жарамды түйме айнымалы мәндері

Дисплей

Аргумент

OK түймесі

OK және Cancel түймелері

Иә және Жоқ түймелері

Иә, Жоқ және Болдырмау түймелері

Тоқтату, Қайталау және Елемеу түймелері

VbAbortRetryIgnore

Қайталау және Болдырмау түймелері.

ақпарат белгісі

Сұрақ белгісі

Леп белгісі

мысалы. Ағымдағы күн туралы хабарды көрсетіңіз.

"Бүгін күнтізбедегі" MsgBox және Күн, "Назар аударыңыз"

Нәтижесінде келесі терезе шығады (Cурет 3.1).

OK түймешігін басқан кезде хабарлама терезесі жабылады және MsgBox шақыруынан кейінгі мәлімдемеден бағдарламаның орындалуы бірден жалғасады.

3.3.2. Функция InputBox

Функция InputBoxенгізу терезесінің көмегімен айнымалы мәндерді енгізуді жүзеге асырады және келесі синтаксиске ие:

Айнымалы_атауы = InputBox(Хабар[, Тақырып] )

Аргументтер:

Хабар талап етілетін аргумент болып табылады. Терезедегі ақпараттық хабарламаны анықтайды, әдетте кіріс мәнінің мағынасын түсіндіреді

тақырыбы - терезенің тақырыбын белгілейді.

мысалы, 10 әдепкі мәнін бере отырып, пернетақтадан N айнымалысының мәнін енгізіңіз.

Ол үшін келесі операторды пайдалануға болады:

N = InputBox("N Enter", "Енгізу деректері",10)

Нәтижесінде N айнымалысының мәнін енгізу үшін келесі терезе шығады (сурет 3.2).

Егер әдепкі мән қолданушыға қолайлы болса, онда OK түймешігін басқаннан кейін енгізу терезесі жабылады, N айнымалысына 10 мәні тағайындалады және бағдарламаның орындалуы шақырудан кейінгі оператордан бірден басталады. InputBox.

Егер әдепкі мән пайдаланушыға сәйкес келмесе, онда OK түймесін басқанға дейін N айнымалысы үшін қажетті мәнді енгізу керек.

3 .4. Шартты IF операторы

VBA-да тармақталған есептеу процесін жүзеге асыру үшін оператор пайдаланылады Егер…Сосын…Әйтпесе,бұл жағдайды тексерудің ең қарапайым түрі. Оның келесі синтаксисі бар:

ЕгерШАРТСодан кейінOPERATOR_1ЕlseOPERATOR_2

OPERATOR_1орындалады, егер ШАРТшын, әйтпесе орындалады OPERATOR_2. Бұл жағдайда If…Then…Else операторы бір жолда жазылады.

ШАРТбульдік өрнек болып табылады. Өрнектің нәтижесі әрқашан логикалық типте болады. Өрнек қарапайым немесе күрделі болуы мүмкін. Қарапайым шарттарды жазу кезінде 1-кестеде көрсетілген барлық мүмкін болатын реляциялық операцияларды қолдануға болады. 3.2.

кесте3 .2. Логикалық қатынастар

Операция

Аты

Өрнек

Нәтиже

Дұрыс, егер А В-ға тең болса

Дұрыс, егер А В-ге тең болмаса

Дұрыс, егер А В-дан үлкен болса

Дұрыс, егер А В-дан кіші болса

Көп немесе тең

Рас, егер А В-дан үлкен немесе оған тең болса

Аз немесе тең

Дұрыс, егер А В-дан кіші немесе оған тең болса

Күрделі шарттар қарапайымнан логикалық амалдар мен жақшаларды қолдану арқылы жасалады. Логикалық операциялар тізімі Кестеде берілген. 3.3.

кесте3 .3. Логикалық операциялар

Аты

Өрнек

Нәтиже

логикалық
теріске шығару

логикалық ЖӘНЕ

Логикалық НЕМЕСЕ

Шартты операторда операторлардың кез келгенінің орнына операторлар блогын пайдалануға болады. Бұл жағдайда шартты оператор келесідей болады:

ЕгерШАРТСодан кейін

OPERATOR_BLOCK_1

OPERATOR_BLOCK_2

Соңы If

Шартты мәлімдемеде бірнеше шарттарды тексеруге болады. Бұл жағдайда шартты оператор келесідей болады:

ЕгерCONDITION_1Содан кейін

OPERATOR_BLOCK_1

ElseIfCONDITION_2Содан кейін

OPERATOR_BLOCK_2

Басқа

СоңыЕгер

1-мысал. Суреттегі алгоритмге арналған бағдарламаның бөлігін жазыңыз. 3.3.

2-мысалСуреттегі алгоритмге арналған бағдарламаның бөлігін жазыңыз. 3.4.

3.5. Іс мәлімдемесін таңдаңыз

Select Case операторы жарамды мәндердің соңғы жиыны бар кейбір өрнектің мәніне байланысты әртүрлі әрекеттерді орындау қажет болғанда қолдануға ыңғайлы. Ол шартты мәлімдемелерге де қолданылады, бірақ басқа нысаны бар:

Case таңдаңызEXPRESSION_CHECKED

ісVALUES_1

Операторлар_1

ісҚҰНДЫЛЫҚТАР_ 2

ОПЕРАТОРЛАР_ 2

. . .

ісVALUES_N

ОПЕРАТОРЛАР

[ ісБасқа

Әйтпесе_ Операторлар]

Таңдауды аяқтау

EXPRESSION_CHECKEDнақтыдан басқа кез келген скаляр типті болуы мүмкін. ҚҰНДЫЛЫҚТАРбір-бірінен үтірмен бөлінген мәндердің немесе ауқымдардың ерікті санынан тұрады.

А түрі ҚҰНДЫЛЫҚТАРтүріне сәйкес келуі керек EXPRESSION_CHECKED.

Алдымен есептелген EXPRESSION_CHECKED. Егер оның мәні мәндердің біріне сәйкес келсе VALUES_I, содан кейін Операторлар_I Таңдауды аяқтау. Егер оның мәні мәндердің ешқайсысына сәйкес келмесе VALUES_I, содан кейін ELSE_OPERATORSжәне басқару кейін тұрған операторға беріледі Таңдауды аяқтау

Мысалы.Суреттегі алгоритмге арналған бағдарламаның бөлігін жазыңыз. n айнымалысының мәніне байланысты S айнымалысының мәнін анықтайтын 3.5.

3.6. Цикл операторлары

Циклдік есептеу процесін, яғни бір немесе бірнеше операторлардың бірнеше рет орындалуын жүзеге асыру үшін цикл операторы қолданылады. Үшін... Келесі, оның келесі синтаксисі бар:

ҮшінCOUNTER=INIT_VALUEТоEND_VALUEқадамҚАДАМ

OPERATOR_BLOCK

OPERATOR_BLOCK

КелесіCOUNTER

For ... Келесі цикл айнымалы мәндер арқылы қайталанады COUNTER, бұл цикл параметрі, басынан аяғына дейін көрсетілген өзгерту қадамымен. Бұл есептегіштің әрбір жаңа мәнімен цикл денесінің операторларының блогының орындалуын қамтамасыз етеді. Егер қадамҚАДАМқұрылыста жоқ болса, онда әдепкі бойынша қадам 1-ге тең деп есептеледі. Оператордың айтуы бойынша Шығу үшінбұрын цикл мәлімдемесінен шығуға болады COUNTERсоңғы мәнге жетеді.*

Ұқсас нысандар тобынан объектілерді қайталау үшін, мысалы, ауқымдағы ұяшықтар немесе массив элементтері, цикл операторын пайдалану ыңғайлы Үшін…Әр… Келесі.

Әрқайсысы үшінЭлементжылыТоп

БЛОКТАУ_ ОПЕРАТОРЛАР

OPERATOR_BLOCK

КелесіЭлемент

VBA-да алдын ала белгісіз қайталану саны бар циклдарды ұйымдастыру үшін басқа цикл операторлары пайдаланылады:

алғы шарты бар циклдар - ЖасаңызӘзіргецикл,

ЖасаңызДейінцикл;

постшарттары бар циклдар - ЖасаңызциклӘзірге,

ЖасаңызциклДейін.

Төменде осы цикл мәлімдемелерінің синтаксисі берілген:

"Алдын ала шарты бар циклЖасаңыз Әзірге цикл

Әзірге жасаңызШАРТ

OPERATOR_BLOCK

OPERATOR_BLOCK

"Алдын ала шарты бар циклЖасаңыз Дейін цикл

ЖасаңызДейінШАРТ

OPERATOR_BLOCK

OPERATOR_BLOCK

« Постшартпен циклЖасаңыз цикл while

БЛОКТАУ_ ОПЕРАТОРЛАР

OPERATOR_BLOCK

цикл whileШАРТ

« Постшартпен циклЖасаңыз дейін цикл

БЛОКТАУ_ ОПЕРАТОРЛАР

OPERATOR_BLOCK

дейін циклШАРТ

Оператор ЖасаңызВhile… циклдейін операторлар блогының бірнеше рет қайталануын қамтамасыз етеді ШАРТбайқалады, және оператор



Басқа жаңалықтар

VBA бағдарламасы — мәлімдемелер тізбегі.

Бағдарламалауда ұстанатын бірқатар конвенциялар бар. Сонымен, бір жолға бірнеше мәлімдемелерді орналастыруға болады. Бір жолдағы сөйлемдердің арасына қос нүкте қойылады.

Кез келген жолды біріншінің соңына «Бос орын» + «Төменгі сызу» (_) таңбаларын қою арқылы екіге бөлуге болады, бұл жағдайда екінші жол біріншінің жалғасы болып саналады.

Түсініктемелер бағдарламаны оқуды жеңілдету үшін пайдаланылады. VBA-да түсініктемелерді енгізудің екі жолы бар: жолдың кез келген жеріне орналастыруға болатын апострофты (‘) пайдалану және апострофтың орнына сақталған Rem сөзін пайдалану.

1. Күңгірт мәлімдемеайнымалы типтерді жариялауға арналған.

A бүтін сан ретінде күңгірттеу - А айнымалысы бүтін сан ретінде жарияланады, яғни. ол тек бүтін мәндерді сақтайды .

D күні ретінде күңгірттеу - D айнымалысы күндерді сақтау үшін жарияланған.

· Күңгірт тегі, аты-жөні – айнымалылар жарияланады. Тегі және аты, мәтінді сақтауға арналған.

Dim B(12) бүтін сан ретінде - 12 бүтін саннан тұратын бір өлшемді массив (вектор) жарияланады және әдепкі бойынша массивтің бірінші элементі B(0), ал соңғы В(12) болады.

Dim B(3,3) Жалғыз – нақты сандардан тұратын екі өлшемді 3х3 массив (матрица) жарияланады.

Егер айнымалы тип көрсетілмесе, әдепкі бойынша Variant түрі пайдаланылады. Дегенмен, нақты айнымалы типті көрсету бағдарламаны сенімдірек етеді және оның жұмысын тездетеді, өйткені VBA хабарланбаған айнымалы мәнді оған қол жеткізген сайын тану үшін уақыт жұмсаудың қажеті жоқ.

Егер М массивінің өлшемі алдын ала белгілі болмаса және программа барысында анықталса, онда массивті сипаттау кезінде элементтер саны көрсетілмейді, ал массив келесідей анықталады:

Dim M() бүтін сан ретінде

Массив элементтерінің санын анықтағаннан кейін, мысалы, N, операторды жазу керек

2. тағайындау операторыайнымалыға мән тағайындау үшін қолданылады.

Синтаксис:

Айнымалы (немесе нысан қасиеті) = өрнек.

a=5 - 5 мәнін тағайындау үшін A айнымалысы ;

b="Менеджер" - айнымалы b тағайындау«Менеджер» дегенді білдіреді;

Мекенжай=Парақтар("Ұйымдар").Ұяшықтар(2,2) – ағымдағы жұмыс кітабындағы Ұйым парағында орналасқан В2 ұяшығының мазмұнын Мекенжай айнымалысына тағайындаңыз;

Фамилия=UserForm1.TextBox1.Text - айнымалы UserForm1 пайдаланушы пішінінің TextBox1 өрісінің мазмұнын тағайындау үшін тегі.

3. With/End with операторбағдарламалаушыны бір объект атауының көп қайталануынан сақтайды.

Синтаксис:

Объектімен

оператор1

оператор2



операторN

Мысалы, мәлімдемелер тізбегінің орнына

UserForm1.TextBox1.Text = Күн

UserForm1.TextBox2.Text = " "

UserForm1.ComboBox1.Text = " "

осылай жазуға болады

TextBox1.Text = Күн

. TextBox2.Text = " "

. ComboBox1.Text = " "

REM Парақ 1-парағында А бағанында екінші жолдан бастап «қызметкерлердің тарифтері» жазылады. UserForm1 ішіндегі ComboBox1 құрама жолағын толтырыңыз

‘Бағдарламаның бірінші жолы Sheet1 парағында A бағанында ‘толтырылған ұяшықтар саны есептеледі, нәтиже N айнымалысына тағайындалады

N=Application.CountA(Sheets("Sheet1").Dange("A:A")).

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

Sheets("Sheet1").Range(D).Name="Бағалар"

TextBox1.Text = Күн

. TextBox2.Text = " "

. ComboBox1.Text = " "

. ComboBox1.Rowsource = "Бағалар"

4. Шартты If/Then/Else операторы- белгілі бір жағдайды тексеруге және тексеру нәтижелеріне қарай сол немесе басқа әрекетті орындауға мүмкіндік береді

Синтаксис:

Егержағдай Содан кейіноператорлар1 [ Басқаоператорлар2]

Егер шарт ақиқат болса, онда операторлар1 орындалады, әйтпесе операторлар2 орындалады.

Сондай-ақ блок түрінде жазылған күрделі шартты операторды пайдалануға рұқсат етіледі:

Егершарт 1 Содан кейін

операторлар1

ElseIfшарт 2 Содан кейін

VBA операторлары: арифметикалық, логикалық, салыстырулар, тапсырмалар

Операторіске қосуға болатын VBA кодының ең кіші бірлігі. Мәлімдеме айнымалыны жариялай немесе анықтай алады, VBA компилятор опциясын орната алады немесе бағдарламада кейбір әрекетті орындай алады.

VBA-да тек 7 арифметикалық оператор бар.Төрт стандартты: қосу (+), алу (-), көбейту (*), бөлу (/) және тағы үшеу:

  • көрсеткіш (^), мысалы 2^3 = 8 ;
  • бүтін бөлу (\). Бірінші санды екінші санға бөледі, бөлшек бөлігін тастайды (дөңгелектеу емес). Мысалы, 5\2 = 2 ;
  • модульдік бөлім (Mod). Бірінші санды екіншісіне бөледі, бөлімнің қалған бөлігін ғана қайтарады. Мысалы, 5 Мод 2 = 1.

VBA-дағы тағайындау операторы теңдік белгісі болып табылады. Оны былай жазуға болады:

nVar = 10 болсын

немесе одан да қарапайым:

nvar = 10

Екінші жағдайда, теңдік белгісін теңдік операторымен шатастырмаңыз.

Өрнек

nvar = 10

«nVar айнымалысын 10-ға орнату» дегенді білдіреді және егер жол келесідей көрінсе:

Егер (nVar = 10)

ол «nVar айнымалысының мәні 10-ға тең болса» дегенді білдіреді.

Айнымалыға нысанды тағайындау қажет болса, онда бұл басқа тәсілдермен орындалады.

VBA-да тек 8 салыстыру операторы бар:

  • теңдік (=), мысалы, Егер (nVar = 10);
  • үлкен және кіші (> және<), например, Егер (nVar > 10);
  • үлкен немесе тең және одан кіші немесе тең (>= және<=), например, Егер (nVar >= 10);
  • тең емес (<>), Мысалға, Егер(nVar<>10) ;
  • объектілерді салыстыру (Is). Нысан айнымалылары бір нысанға немесе басқаларға сілтеме жасайтынын анықтайды, мысалы, Егер(obj1 - obj2);
  • ұқсастық (Ұнату). Жол нысанын үлгімен салыстырады және үлгі сәйкес келетінін анықтайды.

Салыстыру операторлары әрқашан ақиқат немесе жалған мәнін қайтарады - егер бекіту ақиқат болса, true және жалған болса, жалған.

Жол мәндерін салыстыру туралы аздап:

  • жол мәндерін салыстыру кезінде регистр сезімтал болады;
  • жол мәндеріндегі бос орындар да ескеріледі;
  • мәтін жолдарын көп/кем салыстыру кезінде әдепкі бойынша жай екілік таңба кодтары салыстырылады - бұл көп немесе аз. Алфавиттегі ретті пайдалану қажет болса, пәрменді пайдалануға болады

Мәтінді салыстыру опциясы

Like операторы туралы аздап. Оның жалпы синтаксисі ұқсайды

Өрнек1 Өрнек2 сияқты

Бұл жағдайда Өрнек1 кез келген VBA мәтін өрнегі, ал Өрнек2 - Ұқсату операторына берілетін үлгі. Бұл үлгіде арнайы қойылмалы таңбаларды пайдалануға болады (3.1 кестені қараңыз)

қойындысы. 3.1 LIKE операторына арналған қойылмалы таңбалар

Көбінесе бірнеше шарттарды тестілеу кезінде логикалық операторлар қолданылады:

  • ЖӘНЕ – логикалық ЖӘНЕ, екі шарт та ақиқат болуы керек;
  • НЕМЕСЕ – логикалық НЕМЕСЕ, ең болмағанда шарттардың біреуі ақиқат болуы керек;
  • ЕМЕС – логикалық терістеу, егер шарт жалған болса, TRUE мәнін қайтарады;
  • XOR логикалық ерекшелік болып табылады. E1 XOR өрнегінде, E2 тек E1 = TRUE немесе тек E2 = ШЫН, әйтпесе ЖАЛҒАН болса, RUE қайтарады;
  • EQV – екі өрнектің эквиваленттілігі, егер олардың мәні бірдей болса, TRUE мәнін қайтарады;
  • IMP - импликация, егер E1 = АҚИҚАТ және E2 = ЖАЛҒАН болса, ЖАЛҒАН мәнін қайтарады, әйтпесе ШЫН.

ЖӘНЕ, НЕМЕСЕ, ЕМЕС туралы есте сақтау керек, басқа логикалық операторлар сирек қолданылады.

Әрбір дерлік VBA бағдарламасы біріктіру операторларын пайдаланады. VBA-да олардың екеуі бар - + немесе &. Әрқашан пайдалану ұсынылады & себебі:

  • & пайдалану кезінде сандық мәндерді жолдарға автоматты түрлендіру орындалады - қателесу қаупі жоқ;
  • + операторын пайдаланған кезде жол мәнін Null түріндегі мәнге қосу Null мәнін береді.

MsgBox "Пайдаланушыға хабарлама" & vUserName

Операторларды қолдану ретін жақша арқылы басқаруға болады.

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!