КампутарыПраграмнае забеспячэнне

VBA Excel: прыклады праграм. Макрасы ў Excel

Мала хто ведае, што першая версія папулярнага прадукту Microsoft Excel з'явілася ў 1985 годзе. З тых часоў ён перажыў некалькі мадыфікацый і запатрабаваны ў мільёнаў карыстальнікаў па ўсім свеце. Пры гэтым многія працуюць толькі з малой доляй магчымасцяў гэтага таблічнага працэсара і нават не здагадваюцца, як ім магло б палегчыць жыццё ўменне праграмавання ў Excel.

Што такое VBA

Праграмаванне ў Excel ажыццяўляецца з дапамогай мовы праграмавання Visual Basic for Application, які першапачаткова ўбудаваны ў самы вядомы таблічны працэсар ад Microsoft.

Да яго добрых якасцяў спецыялісты адносяць параўнальную лёгкасць асваення. Як паказвае практыка, асновамі VBA могуць авалодаць нават карыстальнікі, якія не маюць навыкаў прафесійнага праграмавання. Да асаблівасцяў VBA ставіцца выкананне скрыпту ў асяроддзі офісных прыкладанняў.

Недахопам праграмы з'яўляюцца праблемы, звязаныя з сумяшчальнасцю розных версій. Яны абумоўлены тым, што код праграмы VBA звяртаецца да функцыянальных магчымасцях, якія прысутнічаюць у новай версіі прадукта, але адсутнічаюць у старой. Таксама да мінусаў адносяць і празмерна высокую адкрытасць кода для змены староннім тварам. Тым не менш Microsoft Office, а таксама IBM Lotus Symphony дазваляюць карыстальніку ўжываць шыфраванне пачатковага кода і ўстаноўку пароля для яго прагляду.

Аб'екты, калекцыі, ўласцівасці і метады

Менавіта з гэтымі паняццямі трэба разабрацца тым, хто збіраецца працаваць у асяроддзі VBA. Перш за ўсё неабходна зразумець, што такое аб'ект. У Excel ў гэтай якасці выступаюць ліст, кніга, вочка і дыяпазон. Дадзеныя аб'екты валодаюць спецыяльнай іерархіяй, г.зн. падпарадкоўваюцца адно аднаму.

Галоўным з іх з'яўляецца Application, адпаведны самой праграме Excel. Затым ідуць Workbooks, Worksheets, а таксама Range. Напрыклад, для звароту да вочка A1 на канкрэтным аркушы варта паказаць шлях з улікам іерархіі.

Што тычыцца паняцця "калекцыя", то гэта група аб'ектаў таго ж класа, якая ў запісе мае выгляд ChartObjects. Яе асобныя элементы таксама з'яўляюцца аб'ектамі.

Наступнае паняцце - ўласцівасці. Яны з'яўляюцца неабходнай характарыстыкай любога аб'екта. Напрыклад, для Range - гэта Value або Formula.

Метады - гэта каманды, якія паказваюць, што патрабуецца зрабіць. Пры напісанні кода ў VBA іх неабходна аддзяляць ад аб'екта кропкай. Напрыклад, як будзе паказана ў далейшым, вельмі часта пры праграмаванні ў "Эксэля" выкарыстоўваюць каманду Cells (1,1) .Select. Яна азначае, што неабходна выбраць вочка з каардынатамі (1,1) т.е. A1.

Разам з ёй нярэдка выкарыстоўваецца Selection.ClearContents. Яе выкананне азначае ачыстку змесціва абранай вочка.

як пачаць

Перш за ўсё патрабуецца стварыць файл і захаваць яго, прысвоіўшы імя і выбраўшы тып «Кніга Excel з падтрымкай макрасаў».

Затым неабходна перайсці ў дадатак VB, для чаго дастаткова скарыстацца камбінацыяй клавіш «Alt» і «F11». далей:

  • у радку меню, размешчаным у верхняй частцы акна, націскаюць на абразок побач з абразком Excel;
  • выбіраюць каманду Mudule;
  • захоўваюць, націснуўшы на абразок з выявай floppy disk;
  • пішуць, скажам так, накід кода.

Ён выглядае наступным чынам:

Sub program ()

'Наш код

End Sub

Звярніце ўвагу, што радок « 'Наш код» будзе выдзелена іншым колерам (зялёным). Прычына ў апострафе, пастаўленым у пачатку радка, які пазначае, што далей варта каментар.

Цяпер вы можаце напісаць любы код і стварыць для сябе новы інструмент у VBA Excel (прыклады праграм гл. Далей). Вядома, тым, хто знаёмы з асновамі Visual Basic, будзе нашмат прасцей. Аднак нават тыя, хто іх не мае, пры жаданні змогуць асвоіцца досыць хутка.

Макрасы ў Excel

За такой назвай хаваюцца праграмы, напісаныя на мове Visual Basic for Application. Такім чынам, праграмаванне ў Excel - гэта стварэнне макрасаў з патрэбным кодам. Дзякуючы гэтай магчымасці таблічны працэсар Microsoft самаразвіваецца, падладжваючыся пад патрабаванні канкрэтнага карыстальніка. Разабраўшыся з тым, як ствараць модулі для напісання макрасаў, можна прыступаць да разгляду канкрэтных прыкладаў праграм VBA Excel. Лепш за ўсё пачаць з самых элементарных кодаў.

прыклад 1

Задача: напісаць праграму, якая будзе капіяваць значэнне змесціва аднаго вочка і затым запісваць у іншую.

Для гэтага:

  • адкрываюць ўкладку «Выгляд»;
  • пераходзяць на піктаграму «Макрасы»;
  • ціснуць на «Запіс макраса»;
  • запаўняюць якая адкрылася форму.

Для прастаты ў полі «Імя макраса» пакідаюць «Макрос1», а ў полі «Спалучэнне клавіш» ўстаўляюць, напрыклад, hh (гэта значыць, што запусціць праграмку можна будзе бліц-камандай «Ctrl + h»). Націскаюць Enter.

Цяпер, калі ўжо запушчана запіс макраса, вырабляюць капіяванне змесціва якой-небудзь вочка ў іншую. Вяртаюцца на зыходную піктаграму. Націскаюць на «Запіс макраса». Гэта дзеянне азначае завяршэнне праграмы.

далей:

  • зноў пераходзяць на радок «Макрасы»;
  • у спісе выбіраюць «Макрас 1»;
  • націскаюць "Выканаць" (гэта ж дзеянне запускаецца пачатыя спалучэння клавіш «Ctrl + hh»).

У выніку адбываецца дзеянне, якое было здзейснена ў працэсе запісу макраса.

Мае сэнс ўбачыць, як выглядае код. Для гэтага зноў пераходзяць на радок «Макрасы» і націскаюць "Змяніць" або "Увайсці". У выніку аказваюцца ў асяроддзі VBA. Уласна, сам код макраса знаходзіцца паміж радкамі Sub Макрос1 () і End Sub.

Калі капіяванне было выканана, напрыклад, з вочка А1 ў вочка C1, то адна з радкоў кода будзе выглядаць, як Range ( "C1"). Select. У перакладзе гэта выглядае, як «Дыяпазон (" C1 "). Вылучыць», іншымі словамі ажыццяўляе пераход у VBA Excel, у вочка С1.

Актыўную частку кода завяршае каманда ActiveSheet.Paste. Яна азначае запіс ўтрымання выдзеленай ячэйкі (у дадзеным выпадку А1) у выдзеленую вочка С1.

прыклад 2

Цыклы VBA дапамагаюць ствараць розныя макрасы ў Excel.

Цыклы VBA дапамагаюць ствараць розныя макрасы. Выкажам здагадку, што маецца функцыя y = x + x 2 + 3x 3 - cos (x). Патрабуецца стварыць макрас для атрымання яе графіка. Зрабіць гэта можна толькі, выкарыстоўваючы цыклы VBA.

За пачатковае і канчатковае значэнне аргументу функцыі бяруць x1 = 0 і x2 = 10. Акрамя таго, неабходна ўвесці канстанту - значэнне для кроку змены аргументу і пачатковае значэнне для лічыльніка.

Усе прыклады макрасаў VBA Excel ствараюцца па той жа працэдуры, якая прадстаўлена вышэй. У дадзеным канкрэтным выпадку код выглядае, як:

Sub programm ()

x1 = 1

x2 = 10

shag = 0.1

i = 1

Do While x1

y = x1 + x1 ^ 2 + 3 * x1 ^ 3 - Cos (x1)

Cells (i, 1) .Value = x1 (значэнне x1 запісваецца ў вочка з каардынатамі (i, 1))

Cells (i, 2) .Value = y (значэнне y запісваецца ў вочка з каардынатамі (i, 2))

i = i + 1 (дзейнічае лічыльнік);

x1 = x1 + shag (аргумент змяняецца на велічыню кроку);

Loop

End Sub.

У выніку запуску дадзенага макраса ў "Эксэля" атрымліваем два слупка, у першым з якіх запісаны значэння для x, а ў другім - для y.

Затым па іх будуецца графік спосабам, стандартным для "Эксэля".

прыклад 3

Для рэалізацыі цыклаў ў VBA Excel 2010 г., як і ў іншых версіях, разам з ужо прыведзенай канструкцыяй Do While выкарыстоўваецца For.

Разгледзім праграму, якая створыць слупок. У кожнай яго вочку будуць запісаныя квадраты нумары адпаведнай радка. Выкарыстанне канструкцыі For дазволіць запісаць яе вельмі коратка, без выкарыстання лічыльніка.

Спачатку трэба стварыць макрас, як апісана вышэй. Далей запісваем сам код. Лічым, што нас цікавяць значэння для 10 вочак. Код выглядае наступным чынам.

For i = 1 to 10 Next

Каманда перакладаецца на «чалавечы» мова, як «Паўтараць ад 1 да 10 з крокам адзін».

Калі ставіцца задача атрымаць слупок з квадратамі, напрыклад, усіх няцотных лікаў з дыяпазону ад 1 да 11, то пішам:

For i = 1 to 10 step 1 Next.

Тут step - крок. У дадзеным выпадку ён роўны двум. Па змаўчанні адсутнасць гэтага слова ў цыкле азначае, што крок адзінкавы.

Атрыманыя вынікі трэба захоўваць у вочкі з нумарам (i, 1). Тады пры кожным запуску цыкла з павелічэннем i на велічыню кроку аўтаматычна будзе расці і нумар у радка. Такім чынам, адбудзецца аптымізацыя кода.

У цэлым код будзе выглядаць, як:

Sub program ()

For i = 1 To 10 Step 1 (можна запісаць проста For i = 1 To 10)

Cells (i, 1) .Value = i ^ 2 (г.зн. ў вочка (i, 1) запісваецца значэнне квадрата i)

Next (у пэўным сэнсе мае ролю лічыльніка і азначае яшчэ адзін запуск цыклу)

End Sub.

Калі ўсё зроблена правільна, у тым ліку запіс і запуск макраса (гл. Інструкцыю вышэй), то пры яго выкліку кожны раз будзе атрымлівацца слупок зададзенага памеру (у дадзеным выпадку складаецца з 10 вочак).

прыклад 4

У паўсядзённым жыцці запар і побач ўзнікае неабходнасць прыняць тое ці іншае рашэнне ў залежнасці ад якога-то ўмовы. Не абысціся без іх і ў VBA Excel. Прыклады праграм, дзе далейшы ход выканання алгарытму выбіраецца, а не наканаваны першапачаткова, часцей за ўсё выкарыстоўваюць канструкцыю If ... Then (для складаных выпадкаў) If ... Then ... END If.

Разгледзім канкрэтны выпадак. Выкажам здагадку, неабходна стварыць макрас для "Эксэля", каб у вочка з каардынатамі (1,1) было запісана:

1, калі аргумент станоўчы;

0, калі аргумент нулявы;

-1, калі аргумент адмоўны.

Стварэнне такога макраса для "Эксэля" пачынаецца стандартным спосабам, праз выкарыстанне «гарачых» клавіш Alt і F11. Далей запісваецца наступны код:

Sub program ()

x = Cells (1, 1) .Value (гэтая каманда прысвойвае x значэнне змесціва вочкі з каардынатамі (1, 1))

If x> 0 Then Cells (1, 1) .Value = 1

If x = 0 Then Cells (1, 1) .Value = 0

If x <0 Then Cells (1, 1) .Value = -1

End Sub.

Застаецца запусціць макрас і атрымаць у "Эксэля" патрэбнае значэнне для аргументу.

функцыі VBA

Як вы ўжо маглі заўважыць, праграмаваць ў самым вядомым таблічным працэсары Microsoft не так ужо складана. Асабліва, калі навучыцца прымяняць функцыi VBA. Усяго ў гэтай мове праграмавання, створаным спецыяльна для напісання прыкладанняў у "Эксэля" і Word, каля 160 функцый. Іх можна падзяліць на некалькі вялікіх груп. гэта:

  • Матэматычныя функцыі. Ужыўшы іх да аргументу, атрымліваюць значэнне косінуса, натуральнага лагарыфма, цэлай часткі і пр.
  • Фінансавыя функцыі. Дзякуючы іх наяўнасці і выкарыстоўваючы праграмаванне ў Excel, можна атрымліваць эфектыўныя прылады для вядзення бухгалтарскага ўліку і ажыццяўлення фінансавых разлікаў.
  • Функцыі апрацоўкі масіваў. Да іх ставяцца Array, IsArray; LBound; UBound.
  • Функцыі VBA Excel для радка. Гэта досыць шматлікая група. У яе ўваходзяць, напрыклад, функцыі Space для стварэння радкі з лікам прабелаў, роўных цэлалікавых аргументу, або Asc для перакладу знакаў у код ANSI. Усе яны маюць шырокае прымяненне і дазваляюць працаваць з радкамі ў "Эксэля", ствараючы прыкладання, значна палягчаюць працу з гэтымі табліцамі.
  • Функцыі пераўтварэння тыпу дадзеных. Напрыклад, CVar вяртае значэнне аргументу Expression, пераўтварыўшы яго ў тып дадзеных Variant.
  • Функцыі працы з датамі. Яны значна пашыраюць стандартныя магчымасці "Эксэля". Так, функцыя WeekdayName вяртае назоў (поўнае ці частковае) дня тыдня па яго нумары. Яшчэ больш карыснай з'яўляецца Timer. Ён выдае лік секунд, якія прайшлі з паўночы да канкрэтнага моманту дня.
  • Функцыі для пераўтварэння лікавага аргументу ў розныя сістэмы злічэння. Напрыклад, Oct выдае ў васьмярковай прадстаўленне чысла.
  • Функцыі фарматавання. Найважнейшай з іх з'яўляецца Format. Яна вяртае значэнне тыпу Variant з выразам, адфарматаваных паводле інструкцый, якія зададзены ў апісанні фармату.
  • і інш.

Вывучэнне уласцівасцяў гэтых функцый і іх прымяненне дасць магчымасць значна пашырыць сферу прымянення "Эксэля".

прыклад 5

Паспрабуем перайсці да вырашэння больш складаных задач. напрыклад:

Дадзены папяровы дакумент справаздачы фактычнага ўзроўню выдаткаў прадпрыемства. патрабуецца:

  • распрацаваць яго шаблён частка з дапамогай таблічнага працэсара "Эксэля";
  • скласці праграму VBA, якая будзе запытваць зыходныя дадзеныя для яе запаўнення, ажыццяўляць неабходныя разлікі і запаўняць імі адпаведныя ячэйкі шаблону.

Разгледзім адзін з варыянтаў рашэння.

стварэнне шаблону

Усе дзеянні ажыццяўляюцца на стандартным аркушы ў Excel. Рэзервуюцца вольныя вочкі для ўнясення даных па месяцу, годзе, назве кампаніі-спажыўца, суме выдаткаў, іх ўзроўню, тавараабароту. Бо колькасць кампаній (таварыстваў), адносна якіх складаецца справаздачу, не зафіксавана, вочкі для ўнясення значэнняў па выніках і Прозвішча, імя спецыяліста загадзя ня рэзервуюць. Рабочаму лісту прысвойваецца новую назву. Напрыклад, "Օ тчет".

зменныя

Для напісання праграмы аўтаматычнага запаўнення шаблону, неабходна выбраць абазначэння. Яны будуць выкарыстоўвацца для зменных:

  • NN- нумар бягучай радкі табліцы;
  • TP і TF - плануемы і фактычны таваразварот;
  • SF і SP - фактычная і планаваная сума выдаткаў;
  • IP і IF - плануемы і фактычна ўзровень выдаткаў.

Абазначым тымі ж літарамі, але з «прыстаўкай» Itog назапашванне выніку па дадзеным слупка. Напрыклад, ItogTP - тычыцца слупка табліцы, пад назвай, як «плануемы таваразварот».

Рашэнне задачы з выкарыстаннем праграмавання на VBA

Выкарыстоўваючы уведзеныя абазначэння, атрымліваем формулы для адхіленняў. Калі патрабуецца ажыццявіць разлік у% маем (F - P) / P * 100, а ў суме - (F - P).

Вынікі гэтых вылічэнняў мага лепш за ўсё адразу ўнесці ў адпаведныя вочка табліцы "Эксэля".

Для вынікаў па факце і прагнозу атрымліваюць па формулах ItogP = ItogP + P і ItogF = ItogF + F.

Для адхіленняў выкарыстоўваюць = (ItogF - ItogP) / ItogP * 100, калі разлік вядзецца ў працэнтах, а ў выпадку сумарнай велічыні - (ItogF - ItogP).

Вынікі зноў жа адразу запісваюцца ў адпаведныя ячэйкі, таму няма неабходнасці іх прысвойвання пераменным.

Перад запускам створанай праграмы, патрабуецца захаваць рабочую кнігу, напрыклад, пад назвай "Отчет1.xls".

Клавішу «Стварыць справаздачную табліцу» патрабуецца націснуць ўсяго 1 раз пасля ўводу загалоўкавыя інфармацыі. Варта ведаць і іншыя правілы. У прыватнасці, кнопка «Дадаць радок» павінна націскайце кожны раз пасля ўводу ў табліцу значэнняў па кожным выглядзе дзейнасці. Пасля ўнясення ўсіх дадзеных патрабуецца націснуць кнопку «Скончыць» і затым пераключыцца ў акно "Эксэля".

Цяпер вы ведаеце, як вырашаць задачы для Excel з дапамогай макрасаў. Уменне прымяняць vba excel (прыклады праграм гл. Вышэй) можа спатрэбіцца і для працы ў асяроддзі самага папулярнага на дадзены момант тэкставага рэдактара "Ворд". У прыватнасці, можна шляхам запісы, як паказана ў самым пачатку артыкула, або праз напісанне кода ствараць кнопкі меню, дзякуючы якім многія аперацыі над тэкстам можна будзе ажыццяўляць націскам дзяжурных клавіш або праз ўкладку "Выгляд" і піктаграму "Макрасы".

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.birmiss.com. Theme powered by WordPress.