Компютер, Нармафзор
VBA Excel: барномаҳои намуна. Макросҳои дар Excel
Теъдоди ками одамон медонанд, ки нусхаи якуми машҳур маҳсулоти Microsoft Excel дар соли 1985 пайдо шуд. Аз он вақт инҷониб ба он якчанд Тағйирдиҳии ва талаботи миллионҳо истифодабарандагон дар саросари ҷаҳон дода шуд. Бо вуҷуди ин, бисёр кори танҳо бо як имкониятҳои каме аз ин ведомости ва ҳатто намедонанд, ки чӣ тавр онҳо ҳаёти барои қобилияти барномасозӣ Excel осонтар кунад.
VBA аст
Барномарезӣ дар Excel бо Visual Basic барои дархости забони барноманависӣ, ки дар ибтидо дар ведомости машҳури аз Microsoft сохта шуда буд анҷом дода мешавад.
Барои шоистаи худ коил коршиносон осонии нисбии рушди. Тавре ки таҷриба нишон медиҳад, VBA метавонад асосҳои, ҳатто корбароне, ки малакаи барномасозӣ касбӣ нест, азхуд. Зеро VBA хусусиятҳои дохил иҷрои скрипт дар муҳити дархост намоянд.
Камбудии барнома мушкилиҳои бо ин вобаста ба мутобиқати версияҳои гуногун мебошанд. Онҳо аз тарафи он аст, ки Кодекси VBA барнома ишора ба ин аст, ки вазифаи мазкур дар шакли нави маҳсулот, балки дар яке аз сола нест, боиси. аст, низ амсолони калон ва ошкоро будани зиёдатї баланди рамзи тағйир додани чеҳраи бегона нест. Бо вуҷуди ин, Microsoft Office ва IBM Lotus Symphony ба корбарон имкон медиҳад ба кор бурдани рамзгузорӣ Рамзи вуруд ва гузарвожаи танзимоти, барои дидани он.
Объектҳои, маҷмӯаҳои, хосиятҳои, ва усулњои
Он бо ин консепсияіо ба шумо лозим аст, ки ақл касоне, ки ба зудӣ ба кор дар муҳити VBA аст. Пеш аз ҳама, шумо бояд дарк чӣ объект аст. Дар Excel, ки дар ин амал ҳамчун як варақ, як китоб ва доираи ҳуҷайра. Ин иншооти доранд зинанизоми махсус, i.e. итоат ҳар дигар.
Сармуҳосиб дар миёни онҳо Ариза мувофиқи дар барномаи Excel худ аст. Workbooks паи, варақаҳои корӣ, ва диапазон. Масалан, барои ишора ба чашмаки A1 дар варақаи махсус, бояд роҳи ишора, бо назардошти зинанизоми.
Вобаста ба консепсияи «ҷамъоварӣ," ин гурӯҳи объектҳои синфи ҳамон, ки дар он сабти ChartObjects дода мешавад. элементҳои он низ объекти мебошанд.
чизе Next - молу мулк буд. Онҳо хусусияти зарур ягон объект мебошанд. Барои мисол, барои Диапазони - як арзиши ё Формула аст.
Усулњои - фармон нишон диҳед, ки шумо мехоҳед, ки ба аст. Ҳангоми навиштани коди дар VBA ба онҳо бояд аз нуқтаи назари иншоот ҷудо карда шаванд. Масалан, вақте ки хоҳад дертар, вақте ки бисёр вақт барномањои дар фармони «Excel» Ҳуҷайраҳои истифода (1,1) .Аз нишон дода шудаанд. Ин маънои онро дорад, ки ба он зарур аст, ки ба интихоби ҳуҷайраи бо координатаҳои (1,1), i.e. A1.
Бо вуҷуди ин, он аст, аксар вақт Selection.ClearContents истифода бурда мешавад. татбиќи он аст, тозакунии мазмуни ҳуҷайра интихобшуда.
Чӣ тавр оғоз
Пеш аз ҳама, шумо мехоҳед, ки ба эҷод кардани файл ва онро захира кунед, таъини ном ва намуди «китоби Excel макроиқтисодӣ имкон интихоб кунед."
Он гоҳ, ки ба дархости VB, аст, ки кофӣ барои истифода омезиши «Alt» «F11» асосӣ ва рафта. Next:
- дар пайраҳаи меню дар болои тиреза, дар тасвири навбатӣ ба тасвири Excel ро пахш кунед;
- Mudule фармони интихобшуда;
- нигоҳ ангуштзании дар тасвири бо диски нарми;
- нависед, бигӯед, як мусаввадаи коди.
Ин назар таври зерин аст:
Барномаи Sub (),
'Коди мо
End Sub
Илтимос дар хотир гиред, ки ба хати «коди мо» хоҳад шуд, дар рангҳои гуногун (сабз) таъкид шудаанд. Сабаби ин апостроф, таслим дар ибтидои сатри, ки нишон медиҳад, ки чӣ гуна аз паи як тавзеҳи аст.
Акнун Шумо метавонед ягон рамзи нависед ва эҷод, барои худ асбоби нав дар VBA Excel (барномањои намуна дид. Ғайра). Албатта, онҳое, ки бо асосҳои Visual Basic ошно ҳастанд, онро хоҳад хеле осон. Аммо, ҳатто онҳое, ки надоранд, агар шумо мехоҳед, ки ба қодир ба даст бароҳат хеле зуд.
Макросҳои дар Excel
Дар паси ин ном пинҳон барномаҳои навишта шудааст, дар Visual Basic барои забони Ариза. Ҳамин тариқ, барномањо барои Excel - аст, ки ба сохтани макро ба Кодекси дилхоҳро интихоб кунед. Бо ин имкониятҳои, Microsoft ведомости худидоракунии таҳия, мутобиқ ба талаботи истифодабарандаи махсус. Бо ҳал бо чӣ гуна эҷод модулҳои барои навиштани макросҳои, мумкин аст, ки ба лутфан бо мисолҳои мушаххас барномаи VBA Excel. Беҳтарин бо рамзҳои асосии аксари оғози он аст.
НАМУНАИ 1
Вазифаи: нависед барнома, ки арзиши мазмуни як ҳуҷайра нусха хоҳад кард ва сипас ба дигар нависед.
Барои ин кор:
- кушодани сатри «View»;
- ҳаракат тасвири "макросҳои»;
- чунбонда ба «Macro Нависед»;
- пур шакли кушода мешавад.
Зеро самимияте, ки дар «Номи макро" тарк "Makros1» ва дар «калиди якҷояшудаи» гузошта мешавад, масалан, хоҷагӣ (ин маънои онро дорад, ки шумо метавонед идора барномаи намунаи хоҳад «Ctrl + ч» дастаи blitz). Пахш кунед ворид кунед.
Акнун, ки шумо шурӯъ Сабти макро, ки мӯҳтавои як ҳуҷайра кунад, то ба дигар. Бозгашт ба тасвири аслии. оид ба «Macro нависед" ангушт занед. Ин амал ҷашни хотимаи апплетҳоро.
Next:
- боз ба сатри «макросҳои" ҳаракат;
- аст, ки дар руйхати интихобшуда «макро 1»;
- тугмаи "Иҷроиши" (дар оғоз амал ҳамон шурӯъ калидҳои миёнбурро «Ctrl + хоҷагӣ»).
Дар натиҷа, амали он шудааст, дар давоми сабт макро анҷом дода мешавад.
Ин маъно дорад, то бингарем, ки чӣ рамзи монанди. Барои ин кор, ба сатри «макросҳои» рафта ва ба тугмаи "Таҳрири" ё "нависед". Дар натиҷа, онҳо худ ба худашон дар муҳити VBA ёфт. Дар асл, рамзи худ аст, дар байни хатҳои Makros1 Sub макро () ва End Sub ҷойгир шудааст.
Агар нусхабардорц кардааст, анҷом дода шудааст, барои мисол, аз як ҳуҷайра A1 дар C1 мобилӣ, ки яке аз хатҳои Кодекси мисли диапазон аст ( «C1») назар. Интихоб кунед. Дар тарҷумаи он ба мисли «аз диапазон аст (« C1 ») назар. Интихоб кунед», ба ибораи дигар, месозад гузариш ба VBA Excel, ки дар C1 ҳуҷайра.
Як қисми фаъоли рамзи ActiveSheet.Paste дастаи мерасонад. Ин маънои сабт таркиби ҳуҷайра дар интихобшуда чашмаки C1 интихобшуда (дар ин ҳолат, A1).
НАМУНАИ 2
давраҳои VBA кӯмак эҷод макросҳои гуногун дар Excel.
давраҳои VBA кӯмак эҷод макросҳои гуногун. Гумон аст, ки як вазифаи Y = х + х 3 + 2 3x нест - cos (х). Шумо мехоҳед, ки ба эҷоди як макро барои графика он. Ин метавонад танҳо аз ҷониби бо истифода аз давраҳои VBA анҷом дода мешавад.
Зеро арзиши аввалия ва ниҳоии вазифаҳои далели мегирад x1 = 0 ва x2 = 10. Илова бар ин, зарур аст, ки ба љорї намудани доимӣ - арзиши барои қадами тағйир бурҳони ва арзиши аввалияи барои мубориза.
Ҳамаи мисолҳои макросҳои VBA Excel бо истифода аз ҳамон тартиби чуноне ки дар боло зикр биёфарид. Дар ин маврид, ба рамзи монанди:
барномањо Sub (),
x1 = 1
x2 = 10
shag = 0.1
ман 1
Оё ҳоле, x1
Y = x1 + x1 ^ 2 + 3 * x1 ^ 3 - Cos (x1)
Ҳуҷайраҳои (ман, 1) .Value = x1 (арзиши x1 дар хотираи бо координатаҳои (ман навишта шудааст, 1)),
Ҳуҷайраҳои (ман, 2) .Value = Y (арзиши Y аст, ки дар ячейка бо координатаҳои (навишта ман, 2))
Ман = ман + 1 (ҳисоб амал);
x1 = x1 + shag (далели ба андозаи қадами иваз мешавад);
Доиравӣ
Sub Анҷоми.
Дар натиҷаи ин медаванд макроиқтисодӣ «Excel» ба даст ду сутуни, нахустин, ки арзишҳои барои х сабт шудаанд, ва дуюм - ба Y.
Он гоҳ қодир ба сохтани бар онҳо, ки стандарт барои «Excel» ба наќша.
НАМУНАИ 3
Барои амалӣ намудани давраҳои дар VBA Excel 2010, инчунин дар версияҳои дигар, дар якҷоягӣ бо аллакай кам Оё ҳоле ки тарҳи истифода бурда Барои.
як барнома, ки ба эҷод сутуни дида мебароем. Дар ҳар як ҳуҷайраи он хиёбонҳо дахлдор раrами сатр навишта шавад. Барои истифода аз тарҳи имкон медиҳад, ки дар он сабт хеле мухтасар, бе истифода аз як зиддитеррористӣ.
Аввал он ба эҷод, макро, чунон ки дар боло тавсиф зарур аст. Сипас, нависед, ки рамзи худ. Мо боварӣ дорем, ки ба мо таваҷҷӯҳ ба арзишҳои барои 10 ҳуҷайраҳои мебошанд. Рамзи чунин аст.
Зеро ки ман = 1 то 10 Баъдӣ
Фармони аст, ки ба забони "инсон» гузаронида, чун «дар increments аз як то 10 такрорӣ аз 1».
Агар вазифаи ба даст сутуни бо хиёбонҳо, барои мисол, тамоми integers тоқ байни 1 ва 11, ки мо нависед:
Зеро ки ман = 1 то 10 қадам 1 оянда.
Дар ин ҷо, қадам - қадами. Дар ин ҳолат, аз он ба ду баробар аст. Бо нобаёнӣ, набудани калима дар ҳалқаи маънои онро дорад, ки як қадами ягонаи.
Натиҷаҳои лозим аст, ки дар шумораи чашмаки (ман, 1) нигоҳ дошта мешавад. Он гоҳ ҳар вақт ки шумо шурӯъ давраи бо афзоиши арзиши ман қадам ба таври худкор ба воя ва раrами сатр. Ҳамин тариқ, он ҷо хоҳад беҳсозии коди.
Дар маҷмӯъ, ба рамзи мисли назар:
Барномаи Sub (),
Зеро ки ман = 1 Барои 10 Қадами 1 (мумкин аст танҳо барои ман 1 Барои 10 навишта шудааст =)
Ҳуҷайраҳои (ман, 1) .Value = ман ^ 2 (i.e. арзиши мураббаъ аст, ба ҳуҷайра навишта шудааст (ман, 1) ман)
Next (дар як ҳисси нақши воситаҳои мубориза ва оғози давраи дигар мебозад)
Sub Анҷоми.
Агар дуруст анҷом дода, аз ҷумла, сабт ва давида макросҳои (ниг. Дастурамалҳои боло), пас аз он аст, ҳар як андозаи дода шавад ба даст сутуни (дар ин ҳолат иборат аз 10 ҳуҷайраҳои) номида мешавад.
НАМУНАИ 4
Дар ҳаёти ҳаррӯза, бисёр вақт зарур ба ин ё он ќарор вобаста ба баъзе шароити аст. наметавонад бидуни онҳо дар VBA Excel кор. Намунањои барномањои ки дар рафти минбаъдаи алгоритми аст, ба ҷои интихобшуда аввал муъайян, аз ҳама тарҳрезии васеъ истифодашавандаи агар ... Сипас (барои ҳолатҳои душвор) Агар ... Сипас ... ПОЁНИ Агар.
Дар сурати аз ҷумла, дида мебароем. Фарз мекунем, ки шумо мехоҳед, ки ба эҷоди як макро барои "Excel" ба ячейка бо координатаҳои (1,1) ба қайд гирифта шудааст:
1, агар далели мусбат аст;
0, агар далели ба сифр аст;
1, агар далели манфӣ аст.
Таъсиси чунин як макроиқтисодӣ барои "Excel" дар роҳи стандартӣ сар мешавад, тавассути истифодаи "гарм" Тугмачаҳои Alt ва F11. Баъдан коди зерин навишта шуда:
Барномаи Sub (),
х = Ҳуҷайраҳои (1, 1) .Value (Ин амр вогузор арзиши координатҳо х мазмуни шон (1, 1)),
Агар х> 0 Сипас Ҳуҷайраҳои (1, 1) .Value = 1
Агар х = 0 Сипас Ҳуҷайраҳои (1, 1) .Value = 0
Агар х <0 Сипас Ҳуҷайраҳои (1, 1) .Value = -1
Sub Анҷоми.
Ин боқӣ мемонад барои раномаҳоилокалии макроиқтисодӣ ва даст дар «Excel» арзиши дилхоҳро барои далели.
вазифаҳои VBA
Тавре ки шумо шояд пай бурд, ки дар барномаи Microsoft барномаи густурда машҳури аст, хеле душвор нест. Хусусан, агар шумо чӣ тавр истифода бурдани функсияҳои VBA. Дар маҷмӯъ, дар ин забони барномасозии махсус барои навиштани ариза дар «Excel» ва Калом, дар бораи 160 вазифаҳои биёфарид. Онҳо метавонанд ба якчанд гурўњи калон људо карда. Онҳо аз инњо иборатанд:
- функсияҳои математикӣ. Ба кор бурдани онҳо ба далели арзиши косинус ба даст оварда шуда бошад, логарифмаи натуралии, ва то тамоми қисми.
- Функсияҳои молиявӣ. Дар робита ба мавҷудият ва истифодаи барномањои онњо дар Excel, шумо метавонед воситаҳои муассир барои муҳосибот ва ҳисоббаробаркуниҳои молиявии даст.
- функсияҳои коркарди Array. Инҳо дар бар мегиранд Array, IsArray; LBound; UBound.
- VBA Excel барои хати амал мекунад. Ин як гурӯҳи хеле калон аст. Он дар бар мегирад, масалан, функсияи Фазои барои сохтани як сатри бо як қатор камбудиҳо ба далели бутуни ё интиқоли Asc рамзҳои ба рамзи ANSI баробар. Ҳамаи онҳо ба таври васеъ истифода ва ба шумо имконияти ба кор бо сатр дар «Excel» барои эҷоди барномаҳои хеле осон барои кор бо ин ҷадвалҳо.
- Функсияҳои табдили намуди маълумот. Масалан, CVar бозгаштан далели баён, табдилдиҳии он ба Варианти навъи маълумот.
- Санаи функсияҳо. Ва онҳо хеле ба васеъ намудани хусусиятҳои стандартии «Excel». Пас, функсияи WeekdayName ном (пурра ё қисман), аз он рӯз, ҳафта бо рақами бармегардад. Ҳатто муфид бештар ТАМЕР аст. Ӯ медиҳад, ки шумораи сония, ки аз замони нисфи шаб ба як лаҳзаи махсус рӯз мегардонад.
- Фаъолият табдил далели ададӣ дар системаҳои рақами гуногун. Масалан, Июл ҳосилкунӣ, ба намояндагии octal шумораи.
- Функсияҳои форматонӣ. Муҳимтар аз ҳама ин дар Формат аст. Ин бозгаштан як Варианти бо ифодаи формат мувофиқи дастурҳо дода, дар тавсифи формати.
- ва ғайра.
Дар омӯзиши хосиятҳои ин функсияњо ва татбиқи онҳо ба таври назаррас тавсеа хоҳад доираи «Excel».
НАМУНАИ 5
Биёед кӯшиш ба ҳалли масъалаҳои мураккаб бештар. Барои мисол:
Дон ҳуҷҷати коғазӣ сатҳи воқеии хароҷоти гузориши корхона. талаб:
- рушди қисми намунаи он аз тарафи ведомости "Excel»;
- як барномаи VBA, ки талаб мекунад, барои маълумоти хом ба он пур, ки барои анљом додани ҳисобҳои зарурӣ ва пур кардани шаблон ҳуҷайра дахлдор.
яке аз роҳҳои ҳалли зеринро дида мебароем.
Сохтани як Шаблон
Ҳамаи амал дар варақаи стандартӣ дар Excel анҷом дода мешавад. ҳуҷайраҳои Озод маҳфуз аст ки барои ворид намудани маълумот дар бораи моҳ, сол, ширкатҳои унвони-истеъмолкунанда, ҳаҷми хароҷот, сатҳи муомилоти. Азбаски шумораи ширкатҳои (ширкатҳо), ки нисбат ба он гузориш сабт нашуда, ҳуҷайраҳои бояд дар заминаи арзишҳо ва номи касбӣ аст, ки дар пешакӣ нигоҳ надоштӣ кунад. Варақаи таъин номи нав. Масалан, "Օ Гузориши».
тағйирёбандаҳои
Барои навистани барнома ба таври автоматї дар Шаблон пур аз қайди интихоб кунед. Онҳо барои тағйирёбандаҳои истифода бурда мешавад:
- NN- шумораи сутуни ҷории мизи;
- Т.П. ва TF - нақша ва гардиши воқеии;
- SF ва SP - воқеии ва банақшагирифташуда умумии хароҷот;
- IP ва АГАР - нақша ва сатҳи хароҷоти воқеии.
Мо бо ҳарфҳои ҳамин далолат мекунад, балки бо як "матнеро» Itog умумии љамъшавии, ки сутуни. Масалан, ItogTP - Дар робита ба сутуни ҳуқуқ, чун «Гардиши нақша гирифта шудааст."
Ҳалли масъала бо истифода аз барномасозии VBA
Бо истифода аз ин аломат, мо формулаи барои ихтилоф ба даст меорад. Агар шумо хоҳед, ки барои анљом додани њисоббаробаркунии% мо (F - P) / P * 100, ва дар ҳаҷми - (F - P).
Натиҷаҳои ин ҳисобу метавонад беҳтарин танҳо ба «Excel» густурда дар ҳуҷайраҳои дахлдор.
Зеро ки натиҷаҳои ва дурнамои он дар даст формулаҳо ItogP = ItogP + P ва ItogF = ItogF + Ф.
Зеро инҳироф истифода = (ItogF - ItogP) / ItogP * 100, агар ҳисоб аст, ки бо фоиз сурат мегирад, ва агар арзиши умумии - (ItogF - ItogP).
Натиҷаҳои бори дигар дар ҳуҷайраҳои дахлдор сабт, то ҳеҷ зарурате барояшон вазне қоил ба тағйирёбандаҳои нест.
Пеш аз он ки сар ба сохтани барномаи шумо мехоҳед захира кардани Сапармурат, барои мисол, дар зери номи «Otchet1.xls».
Матбуот »Эҷоди як мизи ҳисоботӣ," Шумо бояд танҳо 1 бор пас аз ворид намудани маълумот дар унвоноти пахш кунед. Шумо бояд донед, ва қоидаҳои дигар. Аз ҷумла, тугмаи "Иловаи хати« бояд ҳар дафъа баъд аз дохил шудан ба мизи арзишҳои барои ҳар як фаъолияти фишор шавад. Баъд аз ворид ҳамаи маълумоти зарурӣ барои пахш кардани тугмаи "Тайёр аст", ва он гоҳ ба «Excel» фаъол дар равзанаи.
Акнун, ки шумо медонед, ки чӣ тавр ба ҳалли ин масъала барои Excel бо макросҳои. Қобилияти истифода VBA бартарӣ (ниг барномаҳои намуна. Пеш) ва шумо лозим аст, ки кор дар муҳити аз маъмултарин дар лаҳзаи, муҳаррири матн «Каломи». Аз ҷумла, аз ҷониби сабт, тавре ки дар аввали ин мақола фаҳмонда шудааст, ё бо навиштани рамзи эҷоди тугмаҳои меню, ки тавассути бисёре аз амалиёт оид ба матн метавонад ба воситаи пахшкунии калиди оид ба боїи ё ба воситаи «View» тасвир ва «макросҳои" -ро анҷом дода мешавад.
Similar articles
Trending Now