Как да създадете VBA макрос или скрипт в Excel

Microsoft Excel позволява на потребителите да автоматизират функции и команди с помощта на макроси и скриптове на Visual Basic за приложения(Applications) ( VBA ). VBA е езикът за програмиране, който Excel(VBA is the programming language Excel) използва за създаване на макроси. Той също така ще изпълнява автоматизирани команди въз основа на специфични условия.

Макросите са поредица от предварително записани команди. Те се изпълняват автоматично, когато се даде конкретна команда. Ако имате задачи в Microsoft Excel , които изпълнявате многократно, като счетоводство, управление на проекти или заплати, автоматизирането на тези процеси може да спести много време.

В раздела „ Разработчик(Developer) “ на лентата(Ribbon) в Excel потребителите могат да записват щраквания с мишката и натискания на клавиши (макроси). Някои функции обаче изискват по-задълбочени скриптове, отколкото могат да осигурят макросите. Това е мястото, където VBA скриптовете се превръщат в огромно предимство. Позволява на потребителите да създават по-сложни скриптове.

В тази статия ще обясним следното:

  • Активиране на скриптове и макроси
  • Как да създадете макрос в Excel
  • Конкретен пример за макрос
  • Научете повече за VBA
  • Създайте бутон(Button) , за да започнете с VBA
  • Добавете код(Add Code) , за да придадете функционалност на бутона(Button Functionality)
  • Проработи ли?

Активиране на скриптове и макроси(Enabling Scripts & Macros)

Преди да можете да създавате макроси или VBA скриптове в Excel , трябва да активирате раздела Разработчик(Developer ) в менюто на лентата(Ribbon) . Разделът за програмисти(Developer) не е активиран по подразбиране. За да го активирате:

  • Отворете работен лист на Excel.
  • Щракнете върху Файл(File ) > Опции( Options ) > Персонализиране на лентата.( Customize Ribbon.)

  • Поставете отметка в квадратчето до Разработчик(Developer) .

  • Щракнете върху раздела Разработчик(Developer) от менюто на лентата(Ribbon) .

  • След това щракнете върху Защита на макроси(Macro Security) и поставете отметка в квадратчето до Активиране на всички макроси (не се препоръчва; може да се изпълнява потенциално опасен код). (Enable all macros (not recommended; potentially dangerous code can run). )
  • След това щракнете върху OK.

Причината, поради която макросите не са включени по подразбиране и идват с предупреждение, е, че те са компютърен код, който може да съдържа зловреден софтуер.

Уверете(Make) се, че документът е от доверен източник, ако работите по споделен проект в Excel и други програми на Microsoft .

Когато приключите с използването на вашите скриптове и макроси, деактивирайте всички макроси, за да предотвратите заразяване на други документи от потенциално злонамерен код.

Създайте макрос в Excel(Create a Macro in Excel)

Към него се добавят всички действия, които предприемате в Excel , докато записвате макрос. 

  • От раздела Разработчик щракнете върху Запис на макрос(Record Macro) .

  • Въведете име на макрос(Macro name) , клавиш(Shortcut key) за бърз достъп и описание. (Description. )Имената на макроси(Macro) трябва да започват с буква и не могат да имат интервали. Клавишът за бърз достъп трябва да е буква.

Решете къде искате да съхранявате макроса от следните опции:

  • Лична работна книга за макроси(Personal Macro Workbook) : Това ще създаде скрит документ на Excel със съхранени макроси, който да се използва с всякакви документи на Excel .
  • Нова работна книга(New Workbook) : ще създаде нов документ на Excel за съхраняване на създадените макроси.
  • Тази работна книга(This Workbook) : Това ще бъде приложено само към документа, който редактирате в момента.

Когато сте готови, щракнете върху OK

  • Изпълнете(Run) действията, които искате да автоматизирате. Когато приключите, щракнете върху Спиране на записа(Stop Recording)
  • Когато искате да получите достъп до вашия макрос, използвайте клавишната комбинация, която сте му дали.

Конкретен пример за макрос(Specific Example Of a Macro)

Нека започнем с проста електронна таблица за клиентите и колко дължат. Ще започнем със създаване на макрос за форматиране на работния лист.

Да предположим, че сте решили, че всички електронни таблици трябва да използват различен формат, като например поставяне на име и фамилия в отделни колони. 

Можете ръчно да промените това. Или можете да създадете програма с помощта на макрос, за да я форматирате автоматично правилно за вас.

Запишете макроса(Record The Macro)

  • Щракнете върху Запис на макрос(Record Macro) . Нека го наречем Format_Customer_Data и щракнете върху OK
  • За да получим желаното от нас форматиране, ще променим името на първата колона на First Name
  • След това поставете колона до А и я наречете Фамилия(Last Name)
  • Маркирайте(Highlight) всички имена в първата колона (които все още включват име и фамилия) и щракнете върху Данни(Data) от лентата за навигация.
  • Щракнете върху Текст в колони(Text to Columns) .

  • Поставете отметка Разграничен(Delimited) > Следващ(Next ) > Разделете с интервал(Separate by Space) > Следващ(Next ) > Край(Finish) . Вижте екранната снимка по-долу и как името и фамилията са разделени от процеса по-горе.

  • За да форматирате полето Дължим баланс(Balance Due) , маркирайте сумите. Щракнете(Click) върху Начало(Home ) > Условно форматиране(Conditional Formatting) > Правила за подчертаване на клетки(Highlight Cell Rules) > По-голямо от(Greater Than ) > 0 .

Това ще подчертае клетките, които имат дължим баланс. Добавихме няколко клиенти без баланс, за да илюстрираме допълнително форматирането.  

  • Върнете се към Developer и щракнете върху Спиране на записа(Stop Recording) .

Приложете макроса(Apply The Macro)

Нека започнем с оригиналната електронна таблица, преди да запишем макроса, за да го форматираме правилно. Щракнете(Click) върху Макроси(Macros) , изберете и Стартирайте(Run) макроса, който току-що създадохте.

Когато стартирате макрос, цялото форматиране се извършва вместо вас. Този макрос, който току-що създадохме, се съхранява в редактора на Visual Basic(Visual Basic Editor) .

Потребителите могат да изпълняват макроси по няколко различни начина. Прочетете Изпълнение на макрос(Run a macro) , за да научите повече.  

Научете повече за VBA(Learn More About VBA)

За да научите за VBA, щракнете върху Макрос(Macro) от раздела Разработчик(Developer) . Намерете този, който сте създали, и щракнете върху Редактиране.(Edit.)

Кодът, който виждате в полето по-горе, е този, който е създаден, когато сте записали своя макрос. 

Това е и това, което ще стартирате, когато искате да форматирате други електронни таблици за плащане на клиенти по същия начин.

Създайте бутон, за да започнете с VBA(Create a Button To Get Started With VBA)

Използвайки същата електронна таблица по-горе с клиентите и колко дължат, нека създадем валутен конвертор.

  • За да вмъкнете елемент от бутон, отворете раздела Разработчик(Developer )
  • Изберете ActiveX Command Button от падащото меню до Вмъкване(Insert) в секцията Контроли (Controls).

  • Плъзнете(Drag) бутона навсякъде в електронната таблица, за да имате лесен достъп до него и да го промените по-късно, ако желаете.

  • За да прикачите кода, щракнете с десния бутон върху бутона и изберете Свойства(Properties) . Ще запазим името(Name) като CommandButton и надписа(Caption ) за преобразуване( Convert ) (това е текстът на бутона).

Добавете код, за да придадете функционалност на бутона(Add Code To Give The Button Functionality)

VBA кодирането не се извършва в интерфейса на Excel . Прави се в отделна среда.  

  • Отидете в раздела Разработчик(Developer) и се уверете, че режимът на проектиране(Design Mode) е активен.

  • За достъп до кода на бутона, който току-що създадохме, щракнете с десния бутон върху него и изберете Преглед на кода(View Code) .

  • Разглеждайки кода на екранната снимка по-долу, забележете, че началото ( Private Sub ) и краят ( End Sub ) на кода вече е там.

  • Кодът по-долу ще управлява процедурата за конвертиране на валута.

ActiveCell.Value = (ActiveCell * 1.28)

Нашата цел в този раздел е да конвертираме валутата в нашата електронна таблица. Скриптът по-горе отразява обменния курс от GBP към USD . Новата стойност на клетка ще бъде това, което е в момента там, умножено по 1,28.

Екранната снимка по-долу ви показва как изглежда кодът в прозореца на VBA , след като го поставите.

  • Отидете на Файл(File ) в горната навигация и щракнете върху Затвори и се върнете към Microsoft Excel(click on Close and Return to Microsoft Excel) , за да се върнете към основния интерфейс на Excel .

Проработи ли?(Did It Work?)

Преди да можете да тествате кода си, първо трябва да деактивирате Design Mode (щракнете върху него), за да избегнете допълнителни модификации и да дадете функционалност на бутона.

  • Въведете(Type) произволно число във вашата електронна таблица и след това щракнете върху бутона Преобразуване(Convert) . Ако стойността на вашия номер се увеличи с приблизително една четвърт, това работи.

За този пример поставих числото 4 в клетка. След като щракнете върху Конвертиране(Convert) , номерът се промени на 5.12. Тъй като 4 пъти 1.28 е 5.12, кодът е изпълнен правилно.

След като вече разбирате как да създадете макрос или скрипт в Excel , можете да ги използвате за автоматизиране на множество действия в Excel .



About the author

Аз съм компютърен професионалист с над 10 години опит. В свободното си време обичам да помагам на бюрото в офиса и да уча децата как да използват интернет. Моите умения включват много неща, но най-важното е, че знам как да помагам на хората да решават проблеми. Ако имате нужда от някой, който може да ви помогне с нещо спешно или просто искате някои основни съвети, моля, свържете се с мен!



Related posts