Како да пишувате макроа за Excel. Макроа во Excel - Упатства за употреба. Додавање макро копчиња на јазичиња

Тема 2.3. Основи на софтвер за презентација и канцелариско програмирање

Тема 2.4. Системи за управување со бази на податоци и експертски системи

2.4.11. База на податоци за обуки со главното копче образец „Training_students“ - Преземи

VBA програмирање и макроа

2.3. Основи на софтвер за презентација и канцелариско програмирање

2.3.7. Основи на канцелариско програмирање

BASIC визуелен програмски јазик за апликации: Visual Basic за апликации (VBA)

VBA е подмножество на визуелниот програмски јазик Visual Basic (VB) кој ги вклучува речиси сите алатки за креирање VB апликации.

VBA се разликува од програмскиот јазик VB по тоа што VBA е дизајниран да работи директно со објекти на Office и не може да се користи за создавање проект независен од апликациите на Office. Така, во VBA, програмскиот јазик е VB, а програмската средина е имплементирана во форма на VB уредник, кој може да се активира од која било апликација MS Office.

На пример, за да го отворите уредникот VBA од PowerPoint, треба да ја извршите командата Tools / Macro / VBA Editor. Може да се вратите од уредувачот во апликацијата со избирање на командата Microsoft PowerPoint во менито View или со притискање на комбинацијата на копчиња Alt + F11.

Користејќи го вградениот сет на VBA уредувач на контроли и уредувач на форми, корисникот може да креира кориснички интерфејсза проектот што се развива со форма на екран. Контролите се објекти и секој објект има дефиниран сет на можни настани (на пример, кликнување или двоен клик на глувчето, притискање на копче, влечење објект итн.).

Секој настан се манифестира во одредени програмски акции (одговори, реакции). Корисничкиот образец ви овозможува да креирате дијалози за апликации. Програмскиот јазик VBA се користи за пишување програмски код, како што е создавање на кориснички функции во Excel.

Фактот дека програмскиот систем VBA е дизајниран да работи со објекти на Office овозможува ефективно да се користи за автоматизирање на развојните активности разни видовидокументи.

Ајде да го погледнеме алгоритмот за креирање кориснички функции во VBA:

1. Отворете го прозорецот за уредувач на код VBA со извршување на командата Tools / Macro / Visual Basic Editor или притискање на Alt+F11.

2. Изберете ја ставката од менито за уредувач Вметни / Модул.

3. Следно, извршете Вметнување / Постапка. Во полето за дијалог Add Procedure што се отвора, внесете го името на функцијата (на пример, SUM5) и поставете ги прекинувачите: Type – во позиција Function; Опсег (Опсег) - на позицијата Јавно (Општо) и кликнете OK.


Ориз. 1.

4. Во прозорецот на уредувачот за програмирање VBA ќе се појави шаблон за функција: наслов - Јавна функција SUM5() и крај - Крајна функција, меѓу кои треба да го поставите кодот на телото на функцијата.


Ориз. 2.

5. Следно, внесуваме листа на параметри на функцијата, на пример, во загради означуваме (x, y, z, i, j), типот на податоци (за точни пресметки) и типот на вредноста што ја враќа функцијата (ние нема да го внесе во овој пример). Дополнително, го воведуваме телото на функцијата, на пример, SUM5 = x + y + z + i + j. Како резултат, го добиваме следниов текст на програмата:

Јавна функција SUM5(x, y, z, i, j)
SUM5 = x + y + z + i + j
Крајна функција

6. Враќање на прозорецот Excel апликации, во која, на пример, треба да сумираме пет вредности.

7. Извршете „Вметни/Функција“ и во прозорецот на волшебникот за функции што се отвора, изберете ја категоријата „Определен од корисникот“, а во прозорецот „Изберете функција“ изберете SUM5 и кликнете OK.



Ориз. 3.



Ориз. 4.

Макроа

Создавање макро

Ајде да создадеме макро за автоматски да сумира два броја во ќелиите A1, B1 и да го ставиме резултатот во ќелијата C1, како и да ја пополниме ќелијата C1 со тиркизна боја.

Алгоритам за креирање макро за задачата:

1. Изберете Алатки/Макро, Започнете со снимање.

2. Во полето Име на макро, внесете име за макрото. Првиот знак на името на макрото мора да биде буква. Празни места не се дозволени во името на макрото; Можете да користите долни црти како разделувачи на зборови.

3. За да извршите макро користејќи кратенка на тастатура, внесете буква во полето за кратенка на тастатурата. Можете да ги користите комбинациите CTRL+ буква (за мали букви) или CTRL+SHIFT+ буква (за големи букви), каде буквата е секое копче за буква на тастатурата. Не избирајте стандардна кратенка на тастатура бидејќи избраната кратенка на тастатурата ги надминува стандардните кратенки на тастатурата Microsoft Excelво тоа време со оваа книга.

4. Во полето „Зачувај“, изберете ја работната книга во која сакате да го зачувате макрото. Зачувајте го макрото во „Оваа работна книга“. За создавање Краток описмакро, внесете го бараниот текст во полето Опис. Сликата од екранот покажува пример за пополнување на полето за дијалог „Снимање макро“.


Ориз. 5.

5. Кликнете OK.

6. Извршете ги макро командите што сакате да ги снимите.


Ориз. 6.

7. Кликнете на копчето Стоп за снимање на пловечката лента со алатки на ОС (Стоп за снимање) или Алатки / Макро / Стоп макро.

Кога макрото ќе заврши со снимање, се појавува во списокот со макроа под неговото име.

Уредникот VBA автоматски снимал низа макро команди или програма базирана на извршените дејства (сл. 7.).



Ориз. 7.

За да повикате макро, мора да ја извршите командата Алатки / Макро / Макроа. После тоа, во полето за дијалог со листа на макроа, можете да го најдете по име и да кликнете на копчето Изврши.

Доделување копче на лентата со алатки за извршување на макро

Макрото може да се активира со помош на копчето на вградената лента со алатки; за да го направите ова, треба да направите:

  1. Изберете Поставки од менито Алатки.
  2. Во полето за дијалог Поставки, изберете го табот Команди и изберете ја опцијата Макроа во списокот со категории и изберете „Прилагодено копче“ во списокот со команди.
  3. Од списокот со команди, користете го глувчето за да го повлечете приспособеното копче на лентата со алатки.
  4. Десен-клик на ова копче и изберете Додели макро на контекстното мени.
  5. Внесете име за макрото во полето Име на макро.

Доделување област на графички објект за извршување на макро:

  1. Направете графички објект.
  2. Применете го контекстното мени на избраниот графички објект.
  3. Изберете ја командата Додели макро од контекстното мени.
  4. Во полето за дијалог Доделување макро на објект што се појавува, внесете го името на макрото во полето Име на макро, потоа кликнете OK.

Уредувањето на макрото се врши со помош на уредникот VBA; за да го направите ова, мора да го направите следново:

  1. Изберете ја командата Алатки / Макроа / Макроа.
  2. Изберете го името на макрото што сакате да го промените од списокот Име.
  3. Кликнете на копчето Уреди, ќе се отвори прозорец на Visual Basic, во кој можете да ги уредувате командите на избраното макро напишано во Visual Basic.


Отстранување макро:

  1. Од менито Алатки, изберете Макроа, а потоа изберете Макроа.
  2. Во списокот со макроа во тековната работна книга, мора да го изберете макрото што сакате да го избришете и да кликнете на копчето Избриши.

Преименување на макро

За да преименувате макро, мора да влезете во режим на макро уредување и да го промените насловот во текстот на програмата. Новото име автоматски ќе го замени старото во макро листите, а копчињата за кратенки ќе го повикаат макрото со новото име.

Прво, малку за терминологијата.

Макро- ова е код напишан на вградениот јазик на Excel VBA(Visual Basic за апликација). Макроата може да се креираат рачно или автоматски да се снимаат со помош на таканаречен макро рекордер.

Макро рекордере алатка во Excel што снима сè што правите во Excel чекор по чекор и го претвора во VBA код. Макро рекордерот произведува многу детален код (како што ќе видиме подоцна) што можете да го уредите подоцна доколку е потребно.

Снименото макро може да се изврши неограничен број пати и Excel ќе ги повтори сите снимени чекори. Ова значи дека дури и ако не знаете ништо за VBA, можете да автоматизирате некои задачи со едноставно снимање на вашите чекори и потоа повторно да ги користите подоцна.

Сега ајде да се нурнеме и да видиме како да снимаме макро во Excel.

Прикажи го табот Програмер во лентата со менито

Пред да снимате макро, треба да додадете таб Програмери на лентата од менито на Excel. За да го направите ова, следете ги овие чекори:

Како резултат на тоа, табулаторот „Програмер“ ќе се појави на лентата од менито.

Снимање макро во Excel

Сега да напишеме многу едноставно макро кое избира ќелија и внесува текст во неа, како што е „Excel“.

Еве ги чекорите за снимање на такво макро:

Секоја чест! Штотуку го снимивте вашето прво макро во Excel. Иако макрото не прави ништо корисно, ќе ни помогне да разбереме како работи макро рекордерот во Excel.

Сега да го погледнеме кодот што го снимил макро рекордерот. Следете ги овие чекори за да го отворите уредувачот на кодови:


Ќе видите дека откако ќе кликнете на копчето Стартувај, текстот „Excel“ ќе биде вметнат во ќелијата А2 и ќе биде избрана ќелијата А3. Ова се случува во милисекунди. Но, всушност, макрото ги извршуваше снимените дејства последователно.

Забелешка. Можете исто така да извршите макро користејќи ја кратенката на тастатурата Ctrl + Shift + N (држете ги копчињата Ctrl и Shift и потоа притиснете го копчето N). Ова е истата ознака што му ја доделивме на макрото кога го снимавме.

Што снима макро?

Сега да одиме до уредувачот на кодови и да видиме што добивме.

Еве ги чекорите за отворање VB уредник во Excel:

  1. Во групата Code, кликнете на копчето Visual Basic.

Можете исто така да ја користите комбинацијата на копчиња Alt + F11 и да отидете во уредувачот на код VBA.

  • Лента со мени: Содржи команди што можете да ги користите додека работите со VB уредникот.
  • Лента со алатки- изгледа како панел брз пристапво Excel. Можете да додадете дополнителни алатки кои често ги користите.
  • Project Explorer- Овде Excel ги наведува сите работни книги и сите објекти во секоја работна книга. На пример, ако имаме работна книга со 3 работни листови, таа ќе се појави во Project Explorer. Овде има неколку дополнителни објекти, како што се модули, кориснички форми и класни модули.
  • Прозорец со код- самиот VBA код се наоѓа во овој прозорец. За секој објект наведен во истражувачот на проектот, има прозорец со код, како што се работни листови, работни книги, модули итн. Во ова упатство, ќе видиме дека снименото макро е во прозорецот за код на модулот.
  • Прозорец со својства- можете да ги видите својствата на секој објект во овој прозорец. Често го користам овој прозорец за означување на објекти или менување на нивните својства.
  • Непосреден прозорец(прозорец за преглед) - Во почетната фаза нема да ви треба. Корисно е кога сакате да тестирате чекори или за време на дебагирање. Стандардно не се прикажува и можете да го прикажете со кликнување на јазичето View и избирање на опцијата Непосредно прозорец.

Кога го снимивме макрото „EnterText“, во уредникот VB се случија следниве работи:

  • Додаден е нов модул.
  • Макрото беше снимено со името што го наведовме - „InputText“
  • Додадена е нова процедура во прозорецот за код.

Значи, ако кликнете двапати на модул (во нашиот случај модул 1), ќе се појави прозорец со код како што е прикажано подолу.

Еве го кодот снимен од макро рекордерот:

SubTextEnter() " "TextEnter Macro " " Range("A2").Изберете ActiveCell.FormulaR1C1 = Опсег "Excel" ("A3").Изберете Крај под

Во VBA, секоја линија што следи " (апострофот) не се извршува. Ова е коментар кој е само за информативни цели. Ако ги отстраните првите пет линии од овој код, макрото сепак ќе работи.

Сега ајде да одиме низ секоја линија на код и да опишеме што и зошто.

Кодот започнува со Подпроследено со името на макрото и празни загради. Под е кратенка за потпрограма. Секоја потпрограма (исто така наречена процедура) во VBA започнува со Поди завршува Крај на под.

  • Опсег ("A2").Избери - Оваа линија ја избира ќелијата A2.
  • ActiveCell.FormulaR1C1 = „Excel“ - Оваа линија го внесува текстот „Excel“ во активната ќелија. Бидејќи ја избравме ќелијата А2 како прв чекор, таа станува наша активна ќелија.
  • Опсег ("A3").Изберете - изберете ја ќелијата A3. Ова се случува кога ќе го притиснеме копчето Enter откако ќе внесеме текст што резултира со избор на ќелија A3.

Се надеваме дека имате основно разбирање за тоа како да снимате макро во Excel.

Имајте предвид дека кодот снимен преку макро рекордер генерално не е ефикасен или оптимизиран код. Макро рекордерот често додава дополнителни непотребни чекори. Но, тоа не значи дека не треба да користите макро рекордер. За оние кои штотуку учат VBA, макро рекордерот може да биде одличен начин да се анализира и разбере како функционира сè во VBA.

Апсолутно и релативно макро снимање

Дали веќе знаете за апсолутни и релативни врски во Excel? Ако користите апсолутна референца за снимање макро, кодот VBA секогаш ќе ги реферира истите ќелии што сте ги користеле. На пример, ако ја изберете ќелијата A2 и го внесете текстот „Excel“, тогаш секој пат - без разлика каде сте во работниот лист и без разлика која ќелија е избрана, вашиот код ќе го внесе текстот „Excel“ во ќелијата A2.

Ако ја користите релативната референтна опција за снимање макро, VBA нема да се поврзе со одредена адреса на ќелија. Во овој случај, програмата ќе се „помести“ во однос на активната ќелија. На пример, да речеме дека веќе сте ја избрале ќелијата A1 и почнувате да го снимате вашето макро во режим на релативна врска. Сега ја избирате ќелијата А2, внесете Текст на Excelи притиснете Enter. Сега, ако го извршите ова макро, нема да се врати во ќелијата A2, наместо тоа ќе се движи во однос на активната ќелија. На пример, ако е избрана ќелијата B3, таа ќе се пресели во B4, ќе го напише текстот „Excel“ и потоа ќе се пресели во ќелијата K5.

Сега да го снимиме макрото во режим на релативна врска:

Макрото во режим на релативна врска ќе се зачува.

Сега направете го следново.

  1. Изберете која било ќелија (освен A1).
  2. Одете во табулаторот "Програмер".
  3. Во групата Код, кликнете на копчето Макроа.
  4. Во полето за дијалог Macro, кликнете на зачуваното макро Relative References.
  5. Кликнете на копчето "Стартувај".

Како што ќе забележите, макрото не го напиша текстот „Excel“ во ќелиите А2. Ова се случи затоа што го снимивте макрото во релативен референтен режим. Така, курсорот се движи во однос на активната ќелија. На пример, ако го направите ова додека е избрана ќелијата B3, таа ќе влезе во текстот на Excel - ќелијата B4 и ќе заврши со избирање на ќелијата B5.

Еве го кодот што го снимил макро рекордерот:

Забележете дека кодот не упатува на ќелиите B3 или B4. Макрото користи Activecell за упатување на тековната ќелија и поместувањето во однос на таа ќелија.

Игнорирајте го делот Range ("A1") од кодот. Ова е еден од оние случаи кога макро рекордерот додава непотребен код кој нема никаква цел и може да се отстрани. Без него кодот ќе работи добро.

Што не можете да направите со макро рекордер?

Макро рекордерот е одличен за вас во Excel и ги снима вашите точни чекори, но можеби не е вистинскиот избор за вас кога треба да направите повеќе од тоа.

  • Не можете да извршите код без да изберете објект. На пример, ако сакате макрото да оди на следниот работен лист и да ги означи сите пополнети ќелии во колоната А без да го напушти тековниот работен лист, макро рекордерот нема да може да го направи тоа. Во такви случаи, треба рачно да го уредите кодот.
  • Не можете да креирате сопствена функција користејќи макро рекордер. Со VBA, можете да креирате сопствени функции кои може да се користат во работниот лист како нормални функции.
  • Не можете да креирате јамки со помош на макро рекордерот. Но, можете да снимате едно дејство и да додадете јамка рачно во уредувачот на кодови.
  • Не можете да ги анализирате условите: можете да ги проверите условите во код користејќи макро рекордер. Ако пишувате VBA-код рачно, можете да ги користите изјавите IF Then Else за да ја оцените состојбата и да го извршите кодот ако е точно (или друг код ако е неточен).

Проширување на датотеки на Excel кои содржат макроа

Кога снимате макро или рачно пишувате VBA-код во Excel, треба да ја зачувате датотеката со наставка на датотека овозможена за макро (.xlsm).

Пред Excel 2007 година, доволен беше еден формат на датотека - .xls. Но, од 2007 година, .xlsx е воведен како стандардна екстензија на датотеки. Датотеките зачувани како .xlsx не можат да содржат макро. Значи, ако имате датотека со екстензија .xlsx и напишете/снимите макро и ја зачувате, таа ќе ве предупреди за зачувување во формат со овозможен макро и ќе ви го покаже следниот дијалог:

Ако изберете Не, Excel ја зачувува датотеката во макро-овозможен формат. Но, ако кликнете Да, Excel автоматски ќе го отстрани целиот код од вашата работна книга и ќе ја зачува датотеката како работна книга во формат .xlsx. Значи, ако имате макро во вашата работна книга, треба да го зачувате во формат .xlsm за да го зачувате тоа макро.

Што е макро? Макрое зачувана низа од дејства или програма креирана во VBA (Visual Basic for Application). Често поставувано прашањекако да напишете макро во Excel? Само.

Оние. ако треба да ги извршиме истите дејства неколку пати, можеме да ги запомниме овие дејства и да ги извршиме со едно копче. Нема да ве принудам да научите VBA или дури да предложите многу стандардни макроа во оваа статија. Во реалноста, секој може да креира/напише макро во Excel. За таа цел, постои најинтересната и најнеобичната карактеристика на Excel - Макро рекордер(запишување на вашите дејства во форма на код). Оние. можете да ги снимате вашите дејства, како на видео, и да ги преведете во код (секвенца).

Накратко, ако ги извршувате истите дејства секој ден, вреди да откриете како да го автоматизирате овој процес. Прочитајте за да научите како да напишете макро во Excel?

1.Дозволи макроа

Мени (тркалезно копче горе лево) - Опции за Excel— Trust Center — Trust Center Settings — Macro Settings. Проверете го полето за избор „Овозможи ги сите макроа“.

Или направете го истото на картичката Програмери

2. Овозможете го менито за програмери за брза работасо макроа

Мени (тркалезно копче горе лево) - Опции на Excel - Општо - Прикажи ја картичката за програмери.

За да може креираното макро да се зачува во работната книга, мора да ја зачувате датотеката во .xlsm или .xlsb.Кликнете Зачувај како - Работна книга на Excel со овозможено макро или Бинарна работна книга.

Значи, како да напишете макро во Excel?

Едноставно е. Ајде да одиме во Excel. На дното на страницата, под етикетите на листовите, има копче „Снимај макро“.

Кликнете на копчето и се отвора прозорецот „Снимање макро“. Го именуваме макрото како што сакаме во полето Macro name:. Ја поставивме комбинацијата на копчиња што ќе ја користиме подоцна за да ја наречеме (опционално).

Кликнете на ОК. Макро рекордерот започна со снимање.

Сите. Сега ги правиме дејствата што треба да ги запомниме како макро. На пример, треба да избришеме еден ред и да ја обоиме ќелијата А1 во жолта боја.

За време на овие манипулации, наместо копчето „Снимај макро“ под листовите, ќе светне квадрат, кликнување на кое ќе го запре извршувањето на макрото.

Како да започнете што се случило? Кликнете на копчето, ќе се појави прозорецот Select Macro, изберете го макрото што го сакате, а потоа кликнете на копчето Run.

Како можам да видам што се случило? Кликнете на копчето. Изберете го макрото што го сакате и кликнете Уреди. Ќе се отвори прозорецот за снимање макро (прозорец VBA).

Макро кодот треба да изгледа вака.

Под Пример1() " Пример1 Макро Редови("2:2").Изберете Избор.Избриши Shift:=xlUp опсег("A1").Изберете со селекција.Внатрешна .Шама = xlСолид .PatternColorIndex = xlАвтоматски.Боја = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 Крај со крај Под

‘ е симбол за коментар, т.е. оваа линија не е вклучена во кодот. Макрото мора да има име (Sub Example1()) и крај (End Sub).

Можете да прочитате како да креирате копче за макро.

Значи, можете да снимате која било ваша акција за да можете да ги повторувате онолку пати колку што сакате!

Можете да прочитате како да зачувате макро за сите книги на вашиот компјутер.

За да го направите ова, користете го Personal.

Можете да прочитате како да извршите макро по услов

Среќно, сигурен сум дека ова ќе ви биде многу корисно!

Споделете ја нашата статија на вашите социјални мрежи:

Со табели или други објекти на Office, често се појавуваат ситуации кога треба да ги направите истите дејства. Ова не само што одзема дополнително време, туку е и многу досадно. За среќа, постојат макроа за да се реши овој проблем.

Околината VBA е дизајнирана за креирање макроа, но не мора да сте програмер или да студирате Visual Basic for Application за да научите како да ги пишувате. За таа цел, постојат специјално развиени алатки кои креираат VBA код по ваша команда, без да бараат дополнително знаење од вас. Сепак, совладувањето на овој јазик не е толку тешко.

Макроата се креираат во апликациите со помош на алатки за снимање. Во овој случај, на одредена комбинација на копчиња и е доделена саканата низа на дејства. Отворете апликација Office. Изберете го фрагментот што ќе го форматирате.

Изберете ја ставката од менито „Tools“ -> „Macro“ -> „Start Recording“ (во Office 2007 – „View“ -> „Macros“ -> „Record Macro“). Во прозорецот „Снимање макро“ што се појавува, поставете го името на новото макро; стандардно е „Macro1“, но подобро е да му дадете име, особено ако ќе има неколку макроа. Максимална големинаполиња за име – 255 знаци, знаците со точки и празно место не се дозволени.

Одлучете за изборот на копче или комбинација на копчиња што вашето макро ќе ги користи во иднина. Обидете се да ја изберете најзгодната опција, особено ако е наменета за честа употреба. Изберете ја соодветната ставка во полето „Назначи макро“: „копче“ или „клучеви“.

Ако изберете „копче“, ќе се отвори прозорецот „Брзи поставки“. Кога ќе изберете „копчиња“, само треба да ја внесете комбинацијата на тастатурата. Прегледајте ги „Тековни комбинации“ за да избегнете повторување. Кликнете на "Назначи".

Макрото создадено во Word и PowerPoint ќе важи за сите документи во иднина. За да направите макро Excel достапно за сите документи, зачувајте го во датотеката personal.xls, која работи автоматски кога ќе ја отворите апликацијата. Извршете ја командата „Window“ -> „Display“ и изберете ја линијата со името на датотеката personal.xls во прозорецот што се појавува.

Внесете опис на макрото во полето Опис. Кликнете ОК и ќе се вратите во вашиот документ, но сега можете да видите икона за снимање на курсорот на глувчето. Форматирајте го текстот со низата дејства што сакате да ги автоматизирате. Бидете внимателни и не правете непотребни дејства, бидејќи макрото ќе ги снима сите, а тоа ќе влијае на времето на неговото извршување во иднина.

Извршете ја командата „Tools“ -> „Macro“ -> „Stop recording“. Создадовте VBA објект без сами да напишете ниту една линија код. Меѓутоа, ако сè уште треба да направите промени рачно, внесете го објектот преку делот „Макроа“, командата „Промени“ или користејќи ја комбинацијата на копчиња Alt+F8.

Малкумина знаат дека првата верзија на популарниот производ на Microsoft Excel се појави во 1985 година. Оттогаш, тој помина низ неколку модификации и е баран меѓу милиони корисници ширум светот. Во исто време, многу луѓе работат само со мал дел од можностите на овој процесор за табели и не ни сфаќаат како можноста за програмирање во Excel може да им го олесни животот.

Што е VBA

Програмирањето во Excel се врши со користење на програмскиот јазик Visual Basic за апликација, кој првично беше вграден во најпознатиот процесор за табели од Microsoft.

Експертите ја припишуваат неговата релативна леснотија на учење на неговите предности. Како што покажува практиката, дури и корисниците кои немаат професионални програмски вештини можат да ги совладаат основите на VBA. Карактеристиките на VBA вклучуваат извршување на скрипта во околина за канцелариска апликација.

Недостаток на програмата е проблеми поврзани со компатибилноста на различни верзии. Тие се предизвикани од фактот дека програмскиот код на VBA пристапува функционалност, кои се присутни во нова верзијапроизвод, но недостасува во стариот. Исто така, недостатоците вклучуваат претерано висока отвореност на кодот за промени од странец. Сепак Microsoft Office, како и IBM Lotus Symphony, му дозволуваат на корисникот да го шифрира почетниот код и да постави лозинка за да го види.

Објекти, збирки, својства и методи

Ова се концептите што треба да ги разберат оние кои ќе работат во VBA околина. Пред сè, треба да разберете што е предмет. Во Excel, овие функции се лист, работна книга, ќелија и опсег. Овие објекти имаат посебна хиерархија, т.е. послушајте се еден со друг.

Главната е апликација, која одговара на Excel програма. Потоа доаѓаат работни книги, работни листови и опсег. На пример, за да пристапите до ќелијата А1 на одреден работен лист, мора да наведете патека што ја зема предвид хиерархијата.

Што се однесува до концептот „колекција“, ова е група на објекти од иста класа, кои во записот ја имаат формата ChartObjects. Неговите поединечни елементи се исто така предмети.

Следниот концепт е својства. Тие се неопходна карактеристика на секој предмет. На пример, за опсег е Вредност или Формула.

Методите се команди кои покажуваат што треба да се направи. Кога пишувате код во VBA, тие мора да бидат одделени од објектот со точка. На пример, како што ќе биде прикажано подоцна, многу често при програмирање во Excel се користи командата Cells(1,1).Select. Тоа значи дека треба да изберете ќелија со координати

Избор.ClearContents често се користи заедно со него. Извршувањето на ова значи чистење на содржината на избраната ќелија.

Како да започнете

Потоа треба да отидете во апликацијата VB, за која само треба да ја користите комбинацијата на копчиња „Alt“ и „F11“. Понатаму:

  • во лентата со мени лоцирана на горниот дел од прозорецот, кликнете на иконата веднаш до иконата Excel;
  • изберете ја командата Mudule;
  • зачувајте со кликнување на иконата со сликата;
  • пишуваат, да речеме, нацрт на кодексот.

Изгледа вака:

Подпрограма()

„Нашиот код

Имајте предвид дека линијата „Нашиот код“ ќе биде означена во друга боја (зелена). Причината е апострофот поставен на почетокот на редот, што укажува дека следи коментар.

Сега можете да напишете кој било код и да креирате нова алатка за себе VBA Excel(видете примери на програми подолу). Се разбира, ќе биде многу полесно за оние кои се запознаени со основите на Visual Basic. Сепак, дури и оние кои ги немаат, ако сакаат, можат доволно брзо да се навикнат на тоа.

Макроа во Excel

Ова име ги крие програмите напишани во Visual Basic за апликација. Така, програмирањето во Excel создава макроа со потребната шифра. Благодарение на оваа функција, процесорот за табеларни пресметки на Microsoft се развива сам по себе, прилагодувајќи се на барањата на одреден корисник. Откако сфативте како да креирате модули за пишување макроа, можете да почнете да размислувате конкретни примери VBA Excel програми. Најдобро е да започнете со најосновните кодови.

Пример 1

Задача: напишете програма која ќе ја копира вредноста на содржината на една ќелија и потоа ќе ја запише во друга.

За ова:

  • отворете го табулаторот „Преглед“;
  • одете на иконата „Макроа“;
  • кликнете на „Снимање макро“;
  • пополнете го формуларот што се отвора.

За едноставност, оставете го „Macro1“ во полето „Име на макро“ и вметнете, на пример, hh во полето „Кратенка на тастатура“ (ова значи дека можете да ја стартувате програмата со брзата команда „Ctrl+h“). Притиснете Enter.

Сега кога макро снимањето веќе започна, содржината на ќелијата се копира во друга. Врати се на оригиналната икона. Кликнете на „Снимање макро“. Оваа акција значи крај на програмата.

  • вратете се на линијата „Макроа“;
  • изберете „Макро 1“ од списокот;
  • кликнете на „Стартувај“ (истото дејство се активира со стартување на комбинацијата на копчиња „Ctrl+hh“).

Како резултат на тоа, се случува дејството што беше извршено при снимањето на макрото.

Има смисла да се види како изгледа кодот. За да го направите ова, вратете се на линијата „Макроа“ и кликнете „Промени“ или „Најави се“. Како резултат на тоа, тие се наоѓаат во VBA околината. Всушност, самиот макро код се наоѓа помеѓу линиите Sub Macro1() и End Sub.

Ако е направено копирање, на пример, од ќелијата A1 до ќелијата C1, тогаш една од линиите на кодот ќе изгледа како Опсег („C1“). Изберете. Преведено, изгледа како „Опсег („C1“). Изберете“, со други зборови, оди во VBA Excel, во ќелијата C1.

Активниот дел од кодот се комплетира со командата ActiveSheet.Paste. Тоа значи запишување на содржината на избраната ќелија (во овој случај A1) во избраната ќелија C1.

Пример 2

VBA циклусите ви помагаат да креирате различни макроа во Excel.

VBA јамките ви помагаат да креирате различни макроа. Да претпоставиме дека имаме функција y=x + x 2 + 3x 3 - cos(x). Треба да креирате макро за да го добиете неговиот график. Ова може да се направи само со користење на VBA јамки.

Почетните и крајните вредности на функцискиот аргумент се x1=0 и x2=10. Дополнително, мора да внесете константа - вредноста за чекорот за промена на аргументот и почетната вредност за бројачот.

Сите макро примери на VBA Excel се креирани со истата постапка како што е претставена погоре. Во овој конкретен случај, кодот изгледа вака:

Подпрограма()

чекор = 0,1

Дали додека x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

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

Ќелии(i, 1).Вредност = x1 (вредноста x1 е запишана во ќелијата со координати (i,1))

Ќелии(i, 2).Вредност = y (вредноста на y е запишана во ќелијата со координати (i,2))

i = i + 1 (бројачот е во сила);

x1 = x1 + shag (аргументот се менува според вредноста на чекорот);

Крај на под.

Како резултат на извршувањето на ова макро во Excel, добиваме две колони, од кои првата ги содржи вредностите за x, а втората за y.

Потоа од нив се гради графикон на стандарден начин за Excel.

Пример 3

За да се имплементираат циклуси во VBA Excel 2010, како и во другите верзии, заедно со веќе дадената Do while конструкција, се користи For.

Размислете за програма што ќе создаде колона. Во секоја од неговите ќелии ќе бидат запишани квадратите од соодветниот број на редот. Користењето на конструктот For ќе ви овозможи да го напишете многу кратко, без да користите бројач.

Прво треба да креирате макро како што е опишано погоре. Следно, го запишуваме самиот код. Претпоставуваме дека сме заинтересирани за вредностите за 10 ќелии. Кодот изгледа вака.

За i = 1 до 10 Следно

Наредбата е преведена на „човечки“ јазик како „Повторете од 1 до 10 во чекори од еден“.

Ако задачата е да се добие колона со квадрати, на пример, од сите непарни броеви од опсегот од 1 до 11, тогаш пишуваме:

За i = 1 до 10 чекор 1 Следно.

Еве чекор е чекор. Во овој случај тоа е еднакво на два. Стандардно, отсуството на овој збор во циклусот значи дека чекорот е сингл.

Добиените резултати мора да се зачуваат во ќелиите нумерирани (i,1). Потоа, секогаш кога ќе се стартува циклусот, со зголемување на i за чекор големина, бројот на редот автоматски ќе се зголемува. На овој начин кодот ќе биде оптимизиран.

Генерално, кодот ќе изгледа вака:

Подпрограма()

За i = 1 до 10 Чекор 1 (можете едноставно да напишете За i = 1 до 10)

Ќелии(i, 1).Вредност = i ^ 2 (т.е. вредноста на квадратот i е запишана во ќелијата (i,1)

Следно (во извесна смисла игра улога на бројач и значи уште еден почеток на јамката)

Крај на под.

Ако сè е направено правилно, вклучително и снимање и извршување на макрото (видете ги упатствата погоре), тогаш кога ќе го повикате, секој пат ќе добивате колона со одредената големина (во овој случај, која се состои од 10 ќелии).

Пример 4

ВО Секојдневниот животДоста често се јавува потреба да се донесе една или друга одлука во зависност од некоја состојба. Не можете без нив во VBA Excel. Примери на програми каде што понатамошниот тек на извршување на алгоритмот е избран и не е предодреден првично, најчесто се користи If ...Then конструкција (за сложени случаи) If ...Then ...END If.

Ајде да разгледаме конкретен случај. Да претпоставиме дека треба да креирате макро за Excel, така што следново е напишано во ќелијата со координати (1,1):

1 ако аргументот е позитивен;

0 ако аргументот е нула;

-1 ако аргументот е негативен.

Започнува создавањето на такво макро за Excel на стандарден начин, преку употреба на копчињата Alt и F11. Следно е напишан следниот код:

Подпрограма()

x= Cells(1, 1).Value (оваа команда ја доделува x вредноста на содржината на ќелијата на координатите (1, 1))

Ако x>0 тогаш ќелии(1, 1).Вредност = 1

Ако x=0 тогаш Cells(1, 1).Вредност = 0

Ако x<0 Then Cells(1, 1).Value = -1

Крај на под.

Останува само да се изврши макрото и да се добие потребната вредност за аргументот во Excel.

VBA функции

Како што веќе сте забележале, програмирањето во најпознатиот процесор за табели на Мајкрософт не е толку тешко. Особено ако научите како да користите VBA функции. Севкупно, овој програмски јазик, создаден специјално за пишување апликации во Excel и Word, има околу 160 функции. Тие можат да се поделат во неколку големи групи. Ова:

  • Математички функции. Применувајќи ги на аргументот, ја добиваат вредноста на косинус, природен логаритам, цел број итн.
  • Финансиски функции. Благодарение на нивната достапност и користењето на програмирање на Excel, можете да добиете ефективни алатки за сметководство и финансиски пресметки.
  • Функции за обработка на низи. Тие вклучуваат Array, IsArray; LBound; UBound.
  • Excel VBA функции за стринг. Ова е прилично голема група. Ова ги вклучува, на пример, функциите Space за создавање низа со број на празни места еднаков на аргументот на цел број, или Asc за претворање на знаци во ANSI код. Сите тие се широко користени и ви овозможуваат да работите со редови во Excel, создавајќи апликации кои во голема мера ја олеснуваат работата со овие табели.
  • Функции за конверзија на типови на податоци. На пример, CVar ја враќа вредноста на аргументот Expression со конвертирање во типот на податоци Variant.
  • Функции за работа со датуми. Тие значително ги прошируваат стандардните.Така функцијата WeekdayName го враќа името (целосно или делумно) на денот во неделата по неговиот број. Уште покорисен е Тајмер. Го дава бројот на секунди кои поминале од полноќ до одредена точка во денот.
  • Функции за конвертирање на нумерички аргумент во различни системи на броеви. На пример, Oct дава броеви во октално.
  • Функции за форматирање. Најважен од нив е Формат. Враќа вредност Variant со израз форматиран според инструкциите наведени во декларацијата за формат.
  • итн.

Проучувањето на својствата на овие функции и нивната примена значително ќе го прошири опсегот на Excel.

Пример 5

Ајде да се обидеме да продолжиме кон решавање на посложени проблеми. На пример:

Даден е хартиен документ кој го известува реалното ниво на трошоци на претпријатието. Потребно:

  • развијте го неговиот дел од шаблонот користејќи табела на Excel;
  • креирајте програма VBA која ќе бара првични податоци за да ги пополни, ќе ги изврши потребните пресметки и ќе ги пополни соодветните ќелии на шаблонот со нив.

Ајде да разгледаме една од опциите за решение.

Направете шаблон

Сите дејства се вршат на стандарден лист во Excel. Слободните ќелии се резервирани за внесување податоци за името на компанијата за потрошувачи, висината на трошоците, нивното ниво и прометот. Бидејќи бројот на компании (општества) за кои се составува извештајот не е фиксен, ќелиите за внесување вредности врз основа на резултатите и името на специјалистот не се резервирани однапред. На работниот лист му се дава ново име. На пример, „извештаи“.

Променливи

За да напишете програма за автоматско пополнување шаблон, треба да изберете ознаки. Тие ќе се користат за променливи:

  • NN - број на тековниот ред на табелата;
  • ТП и ТФ - планиран и реален трговски промет;
  • SF и SP - реален и планиран износ на трошоци;
  • IP и IF - планирано и реално ниво на трошоци.

Дозволете ни да ја означиме акумулацијата на збирот за оваа колона користејќи ги истите букви, но со „префиксот“ Itog. На пример, ItogTP - се однесува на колоната на табелата со наслов „планиран промет“.

Решавање на проблем со користење на VBA програмирање

Користејќи ги воведените ознаки, добиваме формули за отстапувања. Ако треба да пресметате во %, имаме (F - P) / P * 100, а вкупно - (F - P).

Резултатите од овие пресметки најдобро може да се внесат директно во соодветните ќелии во табела на Excel.

За вистинските и прогнозните збирови, тие се добиваат со користење на формулите ItogP=ItogP + P и ItogF=ItogF+ F.

За отстапувања користете = (ItogF - ItogP) / ItogP * 100 ако пресметката се врши како процент, а во случај на вкупна вредност - (ItogF - ItogP).

Резултатите повторно веднаш се запишуваат во соодветните ќелии, така што нема потреба да се доделуваат на променливи.

Пред да ја стартувате креираната програма, треба да ја зачувате работната книга, на пример, под името "Report1.xls".

Копчето „Креирај табела за известување“ треба да се притисне само еднаш откако ќе се внесат информациите за заглавието. Постојат и други правила што треба да ги знаете. Особено, копчето „Додај ред“ мора да се кликнува секој пат откако ќе се внесат вредностите за секој вид активност во табелата. Откако ќе ги внесете сите податоци, треба да кликнете на копчето „Заврши“ и потоа да се префрлите на прозорецот на Excel.

Сега знаете како да ги решите проблемите на Excel користејќи макроа. Способноста да се користи vba excel (видете примери на програми погоре) може да биде потребна и за работа во најпопуларниот уредувач на текст во моментот, Word. Конкретно, можете да креирате копчиња од менито со пишување, како што е прикажано на самиот почеток на статијата, или со пишување код, благодарение на што може да се извршат многу операции на текстот со притискање на копчињата за работа или преку табулаторот „Преглед“ и иконата „Макроа“.




Врв