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

Пайдаланушы функциясын жасау. Теңшелетін функция мысалдары

Барлығы дерлік бағдарламалау коды VBA модульдері екі түрдегі Sub (ішкі бағдарламалар) және Функция (функциялар) процедураларында қамтылған. Function процедурасының негізгі міндеті – қандай да бір мәнді есептеу және оны функция процедурасы шақырылған нүктеге қайтару.

Функция процедурасы-функция синтаксисі:

Функция ФункцияАты(аргументтер As) Басқаша

Функция_атауы = Қайтару_мәні

аяқтау функциясы

Функция процедуралары әртүрлі өрнектерде қолданылуы мүмкін.

1-мысал

Мысалы, ең қарапайым процедура Функция функциясы болып табылады:

Функция F1(x ретінде валюта) Валюта ретінде

F1(x) функциясын әрі қарай есептеулерде қолдануға болады (модульдің программалық коды). Function түріндегі процедураны оны басқа процедурадан шақыру арқылы ғана орындауға болады. Ол үшін шақыру процедурасында кейбір айнымалыға осы F1 (x) атын тағайындау қажет.

2-мысал

Мысалы, F1(x) функциясын MySub() процедурасында "y" айнымалысына F1(x) атын беру арқылы пайдалануға болады.

Dim y As Single ‘Айнымалы декларациясы y

y = F1 (9) ‘x=9 мәні үшін F1 (x) мәнін анықтаңыз

Debug.Print y 'Immediate терезесінде мәндерді басып шығару

F1 функциясы (x жалғыз) жалғыз

F1 = x^10 ‘x-тің 10-ның дәрежесіне қайтарылатын мәні

Мұнда $ x=9$ мәні үшін F1(x)=$x^(10)$ функциясы шақырылатын MySub() процедурасына $3.486785E+09$ мәнін қайтарады. Егер функцияның қайтаратын мәні немесе VBA процедурасында пайдаланылатын айнымалы мәнде жарияланған деректер түрі болмаса, деректер түрі әдепкі бойынша Variant болады.

VBA Функция процедураларын да, кірістірілген функцияларды да пайдаланады.

Кірістірілген функциялар екі бөліктен тұрады: атау (идентификатор) және аргументтер. Кірістірілген функциялар өрнектерде белгілі әрекеттерді орындайтын және шақыру нүктесінде кейбір мәнді қайтаратын дайын VBA формулалары болып табылады.

Функциялар атының орнына нәтиже мәнін қайтарады, ол әрі қарай есептеулерде пайдаланылады. Әдетте, функциялар үтірмен бөлінген жақшада жазылатын аргументтердің болуын талап етеді. Бірақ кейбір функциялар аргументтерді қажет етпейді. Мысалы, аргументтерді қабылдамайтын Now() функциясы ағымдағы жүйе күні мен уақытын қайтарады. Функцияларды жаңа өрнектер немесе функциялар жасау үшін пайдалануға болады.

Программа мәтініне функция қалай кірістіріледі? Функцияны өрнектерде пайдалану үшін оның атын VBA мәлімдемесіне енгізу керек. Аргументтерді қажет етпейтін кірістірілген функцияны шақыру үшін модуль бағдарламасының кодына оның атын (мысалы, Now) енгізіңіз:

SubMyDate()

Dim TD ‘TD айнымалы декларациясы

TD = Енді 'Жүйенің ағымдағы күні мен уақытын алыңыз

Debug.Print TD ‘Мәндерді дереу терезеде басып шығару

Бір немесе бірнеше аргументтерді енгізуді қажет ететін функцияны шақыру үшін оның атын жақшаға алынған параметрлермен (аргумент мәндері) тағайындау операторының оң жағында енгізу керек. Мысалы, Sub типті процедурада бір N айнымалысы бар кірістірілген Функция журналын (N) шақыру үшін Log_N айнымалысына 50 аргумент мәнімен Log (50) функция атауы тағайындалады.

Ішкі натураллогарифм()

Dim LogN ‘ LogN айнымалысын жариялау

Debug.Print LogN ‘Мәндерді дереу терезеде басып шығару

Ескерту 1

Мұнда 50 аргумент мәні үшін кіріктірілген Log(N) функциясы "Sub Natural_Logarifm()" шақыру процедурасының Log(50) шақыру нүктесіне 3.91202300542815 мәнін қайтарады. Функцияны бөлек шақыруға болады VBA мәлімдемесі, және оның атауын VBA бағдарламасындағы формуладағы немесе өрнектегі аргументтердің (параметрлердің) мәндерінің тізімімен орналастыру. VBA стенографиясы бір функцияға шақыруды басқа функцияға аргумент ретінде көрсетуге мүмкіндік беретін функцияларды енгізуді пайдаланады. Бұл жағдайда бірінші функцияның қайтару мәні келесі функция үшін аргумент ретінде пайдаланылады.

VBA-да бағдарламалауды жеңілдететін кіріктірілген функциялар мен процедуралардың үлкен жиынтығы бар, оларды келесі санаттарға бөлуге болады:

  • математикалық;
  • типті тексеру функциялары;
  • жолды өңдеу функциялары;
  • пішімдеу функциясы;
  • пішімді түрлендіру функциялары;
  • күн және уақыт функциялары.

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

Математикалық функцияларға мыналар жатады:

  • Abs (x) - $x$ аргументінің модулі;
  • Cos(x) - $x$ аргументінің косинусы;
  • Exp(x) – натурал логарифм негізін $x$ дәрежесіне көтеру;
  • Log(x) - $x$ аргументінің натурал логарифмі;
  • Rnd - интервалдан кездейсоқ сан ;
  • Sin(x) - аргументтің синусы $x$;
  • Sqr(x) - $x$ квадрат түбірі;
  • Atn(x) - $x$ доғасының тангенсі;
  • Tan(x) – $x$ тангенсі;
  • Sgn(x) $x$ белгісі.

Fix(x) және Int(x) функцияларының екеуі де шығарылады бөлшек бөлігісандар және бүтін мәнді қайтарады. Бұл функциялар арасындағы айырмашылық теріс аргумент мәндеріне арналған. Int(x) x-тен кіші немесе оған тең ең жақын теріс бүтін санды береді, ал Fix(x) x-тен үлкен немесе оған тең ең жақын теріс бүтін санды береді.

Түрді тексеру функциялары

Міне, айнымалының қандай түрін анықтайтын функциялар:

  • IsArray(x) – функция айнымалының массив екенін тексереді;
  • IsDate(x) айнымалының күн екенін анықтайды;
  • IsError(x) айнымалының қате коды екенін анықтайды;
  • IsNull(x) айнымалының нөл екенін анықтайды;
  • IsNumeric(x) айнымалының сандық мән екенін анықтайды;
  • IsObject(x) айнымалының нысан екенін анықтайды.

Формат функциясы

Пішімдеу функциясы функция синтаксисіне сәйкес пішімделген өрнекті қамтитын Вариант (жол) мәнін қайтарады:

Пішім(Өрнек[,Формат [,Аптаның бірінші күні[,Жылдың бірінші аптасы]]]), мұндағы:

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

Егер функция атына $ белгісі қосылса, функция String түрінің мәнін қайтарады.Функция String түрінің мәнін қайтарады.

Жеке сан пішімін жасау кезінде келесі таңбаларды пайдалануға болады:

  • 0 - сандық биттің орнын сақтайды. Санды немесе нөлді көрсетеді. Егер пішімделетін санның пішім жолында 0 болатын бит орнында қандай да бір цифры болса, функция сол санды көрсетеді, егер жоқ болса, сол позицияда нөл көрсетіледі;
  • «#» - бұл таңбаның әрекеті 0 әрекетіне ұқсас, жалғыз айырмашылығы елеусіз нөлдер көрсетілмейді;
  • . – ондық бөлгіштің орнын сақтайды, ондық бөлшектің сол және оң жағында қанша цифр шығару керектігін анықтайды;
  • % - санның пайыздық дисплейін сақтайды;
  • . жүзді мыңнан ажыратады.

Пішімді түрлендіру функциялары

Оларға мыналар жатады:

  • Val(жол) Жолдағы сандарды сәйкес түрдегі сандық мән ретінде қайтарады.
  • Str(сан) - Нұсқа (жол) мәнін қайтарады, ол санның жолдық көрінісі болып табылады.

Val және Str функцияларына қосымша өрнек түрлерін түрлендіруге арналған бірқатар функциялар бар.

Жолды өңдеу функциялары

Көптеген функциялардың арасында келесілер бар:

  • Chr(code) - ASCII кодын жолға түрлендіреді. Мысалы, Chr(10) секіреді жаңа жол, Chr(13) – каретканы қайтару;
  • Mid(string, pos[,length]) - белгіленген таңбалар санын қамтитын жолдың ішкі жолын қайтарады, мұндағы Жол ішкі жол шығарылатын жол өрнегі;
  • Pos - қажетті ішкі жол басталатын String жолындағы символдың орны;
  • Ұзындық - қайтарылатын ішкі жол таңбаларының саны;
  • Len(жол) Жолдағы таңбалар санын қайтарады.

Уақыт пен күн функциялары

Жүйе күнін, ағымдағы уақытын және т.б. қамтитын Вариант мәнін қайтарыңыз. Мысалы, Күн функциясы жүйе күнін қамтитын мәнді қайтарады.

Функция-процедуранәтижені қайтаратын VBA процедурасының ерекше түрі болып табылады. VBA ендірілген функциялары сияқты пайдаланушы анықтайтын процедура функцияларында қосымша және аталған аргументтер болуы мүмкін. Диктофон жазып алған макросты өңдеуге және оны функция процедурасына айналдыруға болады, дегенмен функция процедурасын жазу үшін макро жазғышты пайдалана алмайсыз.

Функция-процедураның басқа процедуралардан басты айырмашылығы, функциялар мәнді қайтарады, ал процедуралар қайтармайды, сонымен қатар функция-процедурада кілт сөздерді қолдануы болып табылады. функциясыжәне аяқтау функциясы.

Синтаксис:

Функция атауы()
«VBA мәлімдемелері
аяқтау функциясы

Функция – функцияның басталуын жариялайтын түйінді сөз.

Name - функцияның аты. Функция атаулары басқа VBA идентификатор атаулары сияқты бірдей ережелерді сақтайды.

Arglist – осы функцияның аргументтер тізімі, қосымша элемент.

Түр – функция қайтаратын мәннің кез келген түрі. Егер тип анықталмаса, процедура функциясы қайтаратын нәтиже Variant түріне жатады.

Атау = өрнек - VBA-ға функцияның қандай мәнді қайтару керектігін айтатын функция тағайындауы, міндетті емес. Дегенмен, әрқашан процедура функциясына тағайындау мәлімдемесін қосу керек.

End Function – функцияны аяқтайтын түйінді сөздер.


Функцияның аргументтері болмаса да (мысалы, Қазір, Күн), функция мәлімдемесінде жақшалар қолданылуы керек.

Әдетте, функция есептеуді орындауға және нәтижені қайтаруға арналған. Функция процедурасын жариялау кезінде функцияға берілген әрбір аргументтің аты көрсетіледі. Тізімдегі аргумент атаулары үтірмен бөлінген және кез келген VBA идентификаторына қолданылатын ережелерді сақтауы керек.


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



Функцияны пайдаланбай, тізім келесідей болады:



Осыдан қарапайым мысал, Менің ойымша, функциялар-процедураларды пайдаланудың негізгі идеясы түсінікті - бағдарлама кодының оқылуын жақсарту және оны азайту (басқаша айтқанда, функция процедурасы кодтың бірдей «бөлігі» 2-ден көп болған кезде жазылады. бағдарлама кодында 3 рет). Шынында да, егер біздің функция-процедурамыз бір жолдан емес, айталық, 10 жолдан тұрса; және бағдарлама коды осы функция-процедураны 5 рет қолданады, сонда бағдарламаның жалпы тізімі 38 жолдан аз болады.


Жоғарыда айтылғандай, VBA барлық аргументтерді Вариант түрлері ретінде процедура функциясына жібереді. Аргументтер тізіміндегі әрбір аргумент үшін арнайы деректер түрлерін жариялауға болады.

VBA тілінде жазылған функция - есептеулерді орындайтын және мәнді (немесе мәндер жиымын) қайтаратын код. Функцияны жасағаннан кейін оны үш жолмен пайдалануға болады:

  1. Аргументтерді қабылдай алатын және мәндерді қайтаратын жұмыс парағындағы формула ретінде.
  2. VBA тәртібінің бөлігі ретінде. Ішкі процедурада немесе басқа функциялар ішінде.
  3. Шартты пішімдеу ережелерінде.

Excel бағдарламасында 450-ден астам кірістірілген функциялар болса да, олар да мезгіл-мезгіл жетіспейді. Кейде кірістірілген функциялар сіз қалаған нәрсені жасай алмайды. Кейде нәтижеге жету үшін үлкен және құру қажет күрделі формулаоны басқалар түсінбейді. Бұл жағдайда оқуға және пайдалануға оңай теңшелетін функцияны жасауға болады.

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

Кірістірілген функцияларды сіз ғана емес, сонымен қатар әріптестеріңіз де пайдалана алады. Сіз жазған функциялар басқалармен бірге Функция шебері тілқатысу терезесінде пайда болады. Функцияларды жасау процесі сізді қорқытуы мүмкін, бірақ мен бұл өте қарапайым екеніне сендіремін.

Процедура (Қосымша) мен функцияның (Функция) айырмашылығы неде?

Негізгі айырмашылығы - процедура (қосалқы) командалар жиынын орындау үшін пайдаланылады және функциядан (функциядан) айырмашылығы мәнді (немесе мәндер массивін) қайтару үшін шақырылмайды.

Көрсету үшін мысал келтірейік. Мысалы, 1-ден 100-ге дейінгі сандар қатары бар және жұпты тақтан ажырату керек.

(қосалқы) процедураның көмегімен, мысалы, ұяшықтарды аралап, тақтарды толтыру арқылы ерекшелеуге болады. Функцияны іргелес бағанда пайдалануға болады және ол мәннің жұп немесе жұп болуына байланысты ШЫН немесе ЖАЛҒАН қайтарады. Анау. жұмыс парағындағы функцияны пайдаланып толтыру түсін өзгерте алмайсыз.

VBA-да қарапайым теңшелетін функцияны жасау

VBA-да қарапайым пайдаланушы анықтайтын функцияны жасап, оның барлығы қалай жұмыс істейтінін көрейік.

Төменде алфавиттік мәндерді алып тастап, мәтіннен тек сандарды қалдыратын функцияның коды берілген.

Функция сандары(мәтінді жол ретінде) Ұзындығы Dim i сияқты Ұзын күңгірттенген нәтиже Жол ретінде i = 1 үшін Len(Мәтін) If IsNumeric(Mid(Text, i, 1))), онда нәтиже = нәтиже & Mid(Мәтін, i, 1) ) Келесі сандар = CLng(нәтиже) Аяқтау функциясы

Барлығы сіз үшін жұмыс істеуі үшін бұл кодты кітап модуліне енгізу керек. Мұны қалай жасау керектігін білмесеңіз, Excel бағдарламасында макросты қалай жазу керек деген мақаладан бастаңыз.

Енді функцияның қалай жұмыс істейтінін көрейік, оны парақта қолдануға тырысайық:

Функцияның өзін бөлшектемес бұрын, біз жасағаннан кейін пайда болған 2 жағымды сәтті атап өтеміз:

  • Ол кез келген басқа кірістірілген функция сияқты қол жетімді болды (жасырын функцияны қалай жасау керек, біз бұдан әрі айтып береміз).
  • «=" белгісін енгізіп, функция атын тере бастағанда, Excel барлық сәйкестіктерді көрсетеді және тек кірістірілген функцияларды ғана емес, сонымен қатар пайдаланушы анықтағандарын да көрсетеді.

Функцияны қадам бойынша талдау

Енді тереңірек үңіліп, бұл функцияның қалай жасалғанын көрейік. Функция жолдан басталады

Функция сандары (мәтін жол ретінде).

Сөз функциясыфункцияның басталуы туралы, одан кейін оның аты туралы айтады, біздің жағдайда Сандар.

  • Функция атауында бос орындар болмауы керек. Сондай-ақ, егер ол ұяшық сілтеме атауымен соқтығысса, функцияны шақыра алмайсыз. Мысалы, ABC123 функциясын атай алмайсыз, себебі бұл атау Excel жұмыс парағындағы ұяшыққа да қатысты.
  • Сіз өзіңіздің функцияңызға бұрыннан бар функциямен бірдей атау бермеуіңіз керек. Мұны жасасаңыз, Excel кірістірілген функцияға артықшылық береді.
  • Сөздерді ажыратқыңыз келсе, астын сызу таңбасын пайдалануға болады. Мысалы, Сума курсивтіжарамды атау болып табылады.

Атаудан кейін функцияның аргументтері жақша ішінде сипатталады. Кірістірілгенге ұқсас Excel функциялары. Біздің жағдайда бір аргумент қолданылады Мәтін. Аргументтің атауынан кейін біз нақтыладык Жол ретінде, бұл біздің аргумент мәтіндік мән немесе мәтін мәні бар ұяшыққа сілтеме екенін білдіреді. Деректер түрін көрсетпесеңіз, VBA оны ретінде қарастырады Нұсқа(бұл кез келген деректер түрін пайдалануға болатындығын білдіреді, VBA оны өздігінен анықтайды).

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

Функцияның екінші және үшінші жолдары біз қолданатын қосымша ішкі айнымалыларды жариялайды.

Dim i As Long Dim нәтиже Жол ретінде

айнымалы менбіз таңбаларды қайталау үшін қолданамыз. Және айнымалы нәтижефункцияның аралық нәтижесін сақтау үшін.

Функцияның міндеті - Text айнымалысының барлық таңбалары арқылы өту және тек цифр болып табылатындарды сақтау. Ендеше 1-ден соңғы таңбаға дейінгі циклды бастайық.

i = 1 үшін Len (Мәтін)

Len - таңбалар санын анықтайтын функция.

Функцияның негізгі жолы - мәтіннің келесі таңбасының цифр екенін тексеру және егер солай болса, оны нәтиже айнымалысында сақтау

Егер IsNumeric(Орта(Мәтін, i, 1)) болса, нәтиже = нәтиже және Орта (Мәтін, i, 1)

Ол үшін бізге функция қажет IsNumeric-ол қайтып келеді Расегер мәтін сан болса және Жалғанәйтпесе.

Функция ОртасыМәтін аргументінен алады мен--ші таңба (мән 1 , функция екенін көрсетеді Ортасытек 1 таңбаны қабылдайды)/

Функция Келесі- циклды жабады Үшінмұнда бәрі түсінікті.

Цифрлар = CLng(нәтиже)

Бұл жолдың көмегімен біз мәтіндік айнымалыны түрлендіреміз нәтиже, онда аргументтің барлық сандары бар Мәтін, сандық мәнге. Және біз функциямыз қандай нәтиже көрсету керек екенін айтамыз Сандар.

Кодтың соңғы жолы - аяқтау функциясы. Бұл VBA-ға функция коды осы жерде аяқталатынын айтатын талап етілетін код жолы.

Жоғарыдағы код VBA жүйесінде жасалған әдеттегі теңшелетін функцияның әртүрлі бөліктерін сипаттайды. Болашақ мақалаларда біз осы элементтерді толығырақ қарастырамыз, сонымен қатар әртүрлі жолдар Excel бағдарламасында VBA функциясын орындау.

Функция - бұл бағдарламаның кез келген жерінде шақыруға болатын қайта пайдалануға болатын кодтар тобы. Бұл бірдей кодты қайта жазу қажеттілігін жояды. Бұл бағдарламашыларға үлкен бағдарламаны көптеген кішігірім, басқарылатын функцияларға бөлуге мүмкіндік береді.

Кірістірілген функциялардан басқа, VBA сонымен қатар пайдаланушы анықтайтын функцияларды жазуға мүмкіндік береді. Бұл мақалада сіз VBA-да өзіңіздің функцияларыңызды жазуды үйренесіз.

Функция анықтамасы

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

Мысалы, функцияға екі санды беруге болады, содан кейін функция оның көбейтіндісін шақырушыға қайтарады деп күтуге болады.

Ескерту. Функция бірнеше үтірмен бөлінген мәндерді функция атауына тағайындалған массив ретінде қайтара алады.

Функцияны қолданбас бұрын, біз нақты функцияны анықтауымыз керек. VBA жүйесінде функцияны анықтаудың ең көп тараған жолы - Function кілт сөзін, одан кейін бірегей функция атауын пайдалану және бұл параметрлер тізімі мен мәлімдемені қамтуы немесе болмауы мүмкін. кілт сөзФункцияның аяқталуын көрсететін End Function . Төменде негізгі синтаксис берілген.

Синтаксис

Қосу түймесі және қосыңыз келесі функция.

Функция Функция аты(параметр тізімі) оператор 1 оператор 2 оператор 3 ....... оператор n Функция соңы

Мысал

Аймақты қайтаратын келесі функцияны қосыңыз. Мән/мәндерді функцияның атымен қайтаруға болатынын ескеріңіз.

find_area функциясы (ұзындығы екі еселенген, қосымша ені нұсқа ретінде) Егер жоқ болса(ені) Онда find_area = ұзындық * ұзындық басқа табу_ареа = ұзындық * ені соңы, егер соңы функция

Функция шақыру

Функцияны шақыру үшін келесі скриншотта көрсетілгендей функция атауын пайдаланып функцияны шақырыңыз.

Төменде көрсетілгендей аймақ шығысы пайдаланушыға көрсетіледі.

6.1-кесте. Кірістірілген математикалық функциялар
Функция Сипаттама
abs Абсолютті мән
Атн Арктангенс
Cos Санның косинусы
Exp Функция аргументінің дәрежесіне көтерілген e (2,718282) санын қайтарады.
Түзету Санның бөлшек бөлігін алып тастап, бүтін санды қайтарады. Оң сандар үшін нәтиже кірістен кіші сан (Fix(2.5) 2 қайтарады), теріс сандар үшін - көп (Fix(-2.5) -2 қайтарады)
int Санның бөлшек бөлігін алып тастап, бүтін санды қайтарады. Оң үшін нәтиже енгізілгеннен кіші сан болады (Int(2.5) 2 қайтарады), теріс үшін де аз (Int(-2.5) -3 қайтарады).
Журнал қайтарады табиғи логарифмсандар
Rnd Single түріндегі кездейсоқ санды қайтарады, сонымен қатар бұл сан 0 мен 1 арасында. Кездейсоқ сандар генераторын инициализациялау үшін Randomize директивасын пайдаланыңыз - оны шақыру алдында шақыру керек. Rnd.
Сгн Функция санның таңбасын анықтауға арналған. Егер сан оң болса, ол 1 қайтарады. Нөл үшін функция 0, теріс сан үшін -1 қайтарады.
Күнә Синус
шаршы Шаршы түбір
Сары Тангенс

Бір мысалды қарастырайық. Құжатқа қосу Microsoft Wordтүймешігін басыңыз, оны cmd_Calc деп атаймыз, оны Есептеулер деп белгілейік және қарастырылатын функциялардың жұмысын суреттейтін келесі кодты (6.1 тізімі) қосамыз.

Dim dblNumber Қосарлы "Айнымалы мән Dim varResult есептеулерде пайдаланылады" түрдегі айнымалы Variant dblNumber = Val(InputBox("Сан енгізіңіз")) "Енгізілген санның абсолютті мәнін есептеңіз "Алдымен нәтижені varResult айнымалысына тағайындаңыз "Келесі - "хабарлама" терезесінде қол қойылған нәтижені көрсетіңіз, " +" "жолды біріктіру" белгісі, әйтпесе " MsgBox" ішіндегі функцияларды тікелей шақырады. "Сандық мәндерді Str функциясы арқылы жолдарға түрлендіретінімізді ескеріңіз varResult = Abs(dblNumber) MsgBox ("Абсолюттік мән " + _) Str(dblNumber) + " equals " + Str(varResult)) "MsgBox арктангенсі ("Арктангенс" + _ Str(dblNumber) + " тең " + _ Str(Atn(dblNumber))) "MsgBox косинусы ("Косинус" + _ Str(dblNumber) + " тең " + _ Str(Cos(dblNumber))) "e енгізілген санның дәрежесіне MsgBox ("Е саны " + _ Str(dblNumber) + " тең " + _ Str(Exp(dblNumber))) "Function Fix MsgBox ("Нәтиже функциясы Fix for " + _ Str(dblNumber) + " тең " + _ Str(Fix(dblNumber))) "Function Int MsgBox (" + _ Str(dblNumber) + " үшін Int функциясының нәтижесі " + _ Str(Int(dblNumber))) "Табиғи логарифм MsgBox ("Табиғи логарифм " + _ Str(dblNumber) + " тең " + _ Str (Log(dblNumber))) "Кейбір кездейсоқ сандарды алыңыз "бірінші сан - 0-ден 1-ге дейін "екінші - 0-ден 10-ға дейін. "Үшінші - 25-тен 100-ге дейін "Төртінші - 0-ден 34-ке дейінгі бүтін Randomize MsgBox ("Group) кездейсоқ сандар : " + _ Str(Rnd()) + ", " + _ Str(Rnd() * 10) + ", " + _ Str(Rnd() * 75 + 25) + ", " + _ Str (Int( Rnd() * 34))) "Sgn MsgBox функциясы (" + _ Str(dblNumber) + " үшін Sgn нәтижесі " + _ Str(Sgn(dblNumber))) "Sine MsgBox ("Sine " + _ Str( dblNumber) + " тең " + _ Str(Sin(dblNumber))) "Квадрат түбір MsgBox ("Квадрат түбір" + _ Str(dblNumber) + " тең " + _ Str(Sqr(dblNumber))) " MsgBox тангенсі (" Тангенс " + _ Str(dblNumber) + " тең " + _ Str(Tan(dblNumber))) Листинг 6.1. Өңдеуші Оқиғаларды басыңыз cmd_calc түймелері

Функцияның көмегімен белгілі бір диапазондағы кездейсоқ санды алу алгоритміне назар аударыңыз Rnd. 15-тен 40-қа дейінгі кездейсоқ санды алуымыз керек делік. Бастауыш үшін 0-ден 40-қа дейінгі санды алайық. Әлбетте, бұл үшін бізге келесідей қоңырау қажет: Rnd()*40.

Өрнек арқылы қайтарылған ең кіші кездейсоқ санның деңгейін 15-ке дейін «көтеру» үшін келесі әрекеттерді орындаңыз.

Алдымен 40 пен 15 арасындағы айырмашылықты есептейік - біз 25 аламыз. Сонымен, 0-ден 25-ке дейінгі кездейсоқ санды алу үшін сіз қоңырауды пайдалана аласыз Rnd()*25.

Екіншіден, алынған кездейсоқ санға 15 қосайық. Енді 15-тен 40-қа дейінгі кездейсоқ санды алу өрнегі келесідей болады: Rnd()*25+15.

Осы мәлімдеменің дұрыстығын тексерейік. Функция Rndқайтып келетіні белгілі кездейсоқ сандар 0-ден 1-ге дейін. Егер функция 0 мәнін қайтарса, өрнектің нәтижесі 15 (0*25+15) болады. Егер функция 1 мәнін қайтарса, нәтиже 40 (25*1+15) болады. Аралық мәндер Rnd 15 пен 40 арасындағы қажетті кездейсоқ сандарды береді.

cmd_Len түймешігін басу өңдегіші (6.2 тізімі) келесі тапсырманың шешімін қамтиды: пайдаланушыға енгізілген мәтіннің ұзындығын айтыңыз. Бұл мәселені шешу үшін бізге Len функциясы қажет екені анық.

"Dim str_InpStr кіріс жолын жол ретінде сақтауға арналған айнымалы "Dim lng_StrLen жолының табылған ұзындығын сақтауға арналған айнымалы As Long str_InpStr = InputBox("Input string") "Lng_StrLen = Len(str_InpStr) (MsBox) жолының ұзындығын есептеңіз. Енгізу жолының ұзындығы: _" + _ str_InpStr + "_ тең " + Str(lng_StrLen) + _ " таңбалар") Листинг 6.2. Len функциясын пайдалану мысалы

Суретте. 6.2. жолдың ұзындығын есептеу нәтижесін көруге болады.


Күріш. 6.2.

Енді таңбаларды түрлендірумен айналысайық – LCase және UCase функциялары (Листинг 6. 3.).

"Dim str_InpStr кіріс жолын Жол ретінде сақтауға арналған айнымалы "Өзгертілген жолды сақтауға арналған айнымалы Dim str_NewStr As String str_InpStr = InputBox("Enter text") "str_NewStr ішіндегі "барлық бас әріптер кіші әріптер strtrwS ауыстырылатын" енгізу жолы болады. = LCase(str_InpStr) MsgBox ("Өзгертілген жол: " + str_NewStr) "Қазір str_NewStr "барлық әріптері бас әріптерге өзгертілген бірдей "жолға ие болады str_NewStr = UCase(str_InpStr) MsgBox ("Өзгертілген жол) str_Str " + Листинг 6.3. LCase және UCase функцияларын пайдалану мысалы

Келесі қатарда таңбаларды жою - Mid , LTrim , Rtrim , Left , Right функциялары (6.4 тізімі.) Осы функциялардың ішінде Mid ең қуаттысы болып табылады - оны пайдалану арқылы жолдармен көп нәрсені жасауға болады.

"Кіріс жолын сақтауға арналған айнымалы Dim str_InpStr Жол ретінде "Кесілген таңбаларды сақтауға арналған айнымалы Dim str_NewStr Жол ретінде "Жұмыс істеуге ыңғайлы болатын жолды орнатайық str_InpStr = " Сәлеметсіз бе, Александр " "Бос орындарды жоюға арналған функциялар "Шығару кезінде MsgBox ("Біз келесі жолмен жұмыс істейміз: " + _ "_" + str_InpStr + "_") "бар болуын немесе бос орындардың жоқтығын жақсырақ көру" үшін оның басына "және соңғы таңбаны "_" қойыңыз. "LTrim - жұмыс нәтижелерін айнымалыға тағайындау" және MsgBox str_NewStr = LTrim(str_InpStr) MsgBox ішінде ақпаратты көрсету ("LTrim нәтижесі: " + _ "_" + str_NewStr + "_") "RTrim MsgBox ("RTrim нәтижесі" : " + _ "_" + RTrim(str_InpStr) + " _") "MsgBox-ты кесу ("Трим жұмысының нәтижесі: " + _ "_" + Trim(str_InpStr) + "_") "Сол жақ - кесу 12 str_InpStr жолындағы таңбалар "алдынғы бос орындардан тазартылғаннан кейін str_NewStr = Left(LTrim (str_InpStr), 12) MsgBox ("Сол жақтағы алғашқы 12 таңба: " + _ str_NewStr) "Оң жақ - сол сияқты оң жақтан 9 таңбаны кесіңіз str_NewStr = Right(RTrim(str_InpStr), 9) MsgBox ("Оң жақтағы бірінші 9 таңба: " + _ str_NewStr) "Функция Ортасы - біріншіден, екіншісінен бір таңбаны басып шығарыңыз" және "жолдың он бесінші позициясы" бұрын "басында және соңында қосымша бос орындардан тазартылған" str_NewStr = Mid(Trim(str_InpStr), 2, 1) MsgBox ("Енгізу жолының екінші таңбасы: " + _ str_NewStr) str_NewStr = Mid(Trim(str_InpStr), 15, 1) MsgBox ("Енгізілген жолдың он бесінші таңбасы: " + _ str_NewStr) "15-таңбадан басталатын 5 таңбаны шығару str_NewStr = Mid(Trim(str_InpStr), 15, MsgBox) («15-позициядағы жолдың бес таңбасы:» + _ str_NewStr) Листинг 6.4. Таңбаларды қию үшін функцияларды пайдалану мысалы

Енді функциялардың қалай жұмыс істейтінінің мысалдарын қарастырайық.

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