Редактор на Visual Basic - Как да го отворите и използвате в Excel

Първата стъпка към работата с VBA в Excel е да се запознаете с редактора на Visual Basic (наричан още VBA Editor или VB Editor).

В този урок ще разгледам всичко, което трябва да знаете за VBA Editor и някои полезни опции, които трябва да знаете, когато кодирате в Excel VBA.

Какво е редактор на Visual Basic в Excel?

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

VB Editor е мястото, където съхранявате VB кода.

Има няколко начина да получите кода в редактора на VB:

  1. Когато записвате макрос, той автоматично създава нов модул във VB Editor и вмъква кода в този модул.
  2. Можете ръчно да въведете VB код в VB редактора.
  3. Можете да копирате код от друга работна книга или от интернет и да го поставите във VB Editor.

Отваряне на VB Editor

Има различни начини да отворите редактора на Visual Basic в Excel:

  1. Използване на клавишна комбинация (най -лесният и бърз)
  2. Използване на раздела „Разработчик“.
  3. Използване на разделите на работния лист.

Нека преминем бързо през всяко от тях.

Клавишна комбинация за отваряне на редактора на Visual Basic

Най -лесният начин да отворите редактора на Visual Basic е да използвате клавишната комбинация - ALT + F11 (задръжте клавиша ALT и натиснете клавиша F11).

Веднага щом направите това, той ще отвори отделен прозорец за редактора на Visual Basic.

Този пряк път работи като превключвател, така че когато го използвате отново, той ще ви отведе обратно в приложението Excel (без да затваряте VB Editor).

Пряк път за версията за Mac е Opt + F11 или Fn + Opt + F11

Използване на раздела за програмисти

За да отворите редактора на Visual Basic от лентата:

  1. Щракнете върху раздела Разработчик (ако не виждате раздел Разработчик, прочетете това как да го получите).
  2. В групата Код щракнете върху Visual Basic.

Използване на раздела Работен лист

Това е по -малко използван метод за отваряне на Vb Editor.

Отидете на някой от разделите на работния лист, щракнете с десния бутон и изберете „Преглед на кода“.

Този метод не само ще отвори VB Editor, той също ще ви отведе до прозореца на кода за този обект на работен лист.

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

Анатомия на редактора на Visual Basic в Excel

Когато отворите VB Editor за първи път, това може да изглежда малко преобладаващо.

Има различни опции и раздели, които на пръв поглед може да изглеждат напълно нови.

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

В този раздел ще ви преведа през различните части на приложението Visual Basic Editor.

Забележка: Когато започнах да използвам VBA преди години, бях доста затрупан от всички тези нови опции и прозорци. Но когато свикнете да работите с VBA, ще се чувствате комфортно с повечето от тях. И през повечето време няма да се изисква да използвате всички опции, а само пълна ръка.

По -долу е изображение на различните компоненти на VB Editor. След това те са описани подробно в долните раздели на този урок.

Сега нека бързо преминем през всеки от тези компоненти и да разберем какво прави:

Лента с меню

Тук имате всички опции, които можете да използвате в VB Editor. Подобно е на лентата на Excel, където имате раздели и опции за всеки раздел.

Можете да разгледате наличните опции, като щракнете върху всеки елемент от менюто.

Ще забележите, че повечето опции във VB Editor имат клавишни комбинации, споменати до него. След като свикнете с няколко клавишни комбинации, работата с VB Editor става наистина лесна.

Лента с инструменти

По подразбиране в редактора на VB има лента с инструменти, която има някои полезни опции, които вероятно ще ви трябват най -често. Това е точно като лентата с инструменти за бърз достъп в Excel. Той ви дава бърз достъп до някои от полезните опции.

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

В повечето случаи лентата с инструменти по подразбиране е всичко, от което се нуждаете, когато работите с VB Editor.

Можете да преместите лентата с инструменти над лентата с менюта, като щракнете върху трите сиви точки (в началото на лентата с инструменти) и я плъзнете над лентата с менюта.

Забележка: В редактора на VB има четири ленти с инструменти - стандартна, отстраняване на грешки, редактиране и потребителска форма. Това, което виждате на изображението по -горе (което също е по подразбиране) е стандартната лента с инструменти. Можете да получите достъп до други ленти с инструменти, като отидете на опцията Изглед и задръжте курсора на мишката върху опцията Ленти с инструменти. Можете да добавите една или повече ленти с инструменти към VB Editor, ако желаете.

Project Explorer

Project Explorer е прозорец вляво, който показва всички обекти, отворени в момента в Excel.

Когато работите с Excel, всяка отворена работна книга или добавка е проект. И всеки от тези проекти може да има колекция от обекти в него.

Например в изображението по -долу Project Explorer показва двете отворени работни книги (Book1 и Book2) и обектите във всяка работна книга (работни листове, ThisWorkbook и Module в Book1).

Вляво от обектите има икона плюс, която можете да използвате, за да свиете списъка с обекти или да разгънете и да видите пълния списък с обекти.

Следните обекти могат да бъдат част от Project Explorer:

  1. Всички отворени работни книги - във всяка работна книга (която също се нарича проект) можете да имате следните обекти:
    • Обект на работен лист за всеки работен лист в работната книга
    • Обект на тази работна книга който представлява самата работна книга
    • Диаграма обект за всеки лист с диаграми (те не са толкова често срещани като работни листове)
    • Модули - Тук отива кодът, генериран с макрорекордер. Можете също да напишете или копирате-поставите VBA код тук.
  2. Всички отворени добавки

Помислете за Project Explorer като място, което очертава всички обекти, отворени в Excel в дадения момент.

Клавишната комбинация за отваряне на Project Explorer е Control + R. (задръжте клавиша за управление и след това натиснете R). За да го затворите, просто щракнете върху иконата за затваряне в горния десен ъгъл на прозореца на Project Explorer.

Забележка: За всеки обект в Project Explorer има прозорец с код, в който можете да напишете кода (или да го копирате и поставите от някъде). Кодният прозорец се появява, когато щракнете двукратно върху обекта.

Прозорец за свойства

Прозорецът със свойства е мястото, където можете да видите свойствата на избрания обект. Ако още нямате прозорец Свойства, можете да го получите, като използвате клавишната комбинация F4 (или отидете в раздела Изглед и щракнете върху прозореца Свойства).

Прозорецът със свойства е плаващ прозорец, който можете да поставите във VB Editor. В примера по -долу съм го закачил точно под Project Explorer.

Прозорецът Свойства ни позволява да променим свойствата на избран обект. Например, ако искам да направя работен лист скрит (или много скрит), мога да направя това, като променя видимото свойство на избрания обект на работен лист.

Свързани: Скриване на работен лист в Excel (това не може да бъде скрито лесно)

Прозорец за код

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

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

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

Свързани: Как да стартирате макрос (VBA код) в Excel.

Незабавен прозорец

Непосредственият прозорец се използва най -вече при отстраняване на грешки в кода. Един от начините да използвам непосредствения прозорец е да използвам инструкция Print.Debug в кода и след това да стартирам кода.

Помага ми да отстраня грешките в кода и да определя къде кодът ми се забива. Ако получа резултата от Print.Debug в непосредствения прозорец, знам, че кодът работи поне до този ред.

Ако сте нов във VBA кодирането, може да ви отнеме известно време, за да можете да използвате непосредствения прозорец за отстраняване на грешки.

По подразбиране непосредственият прозорец не се вижда в VB Editor. Можете да го получите, като използвате клавишната комбинация Control + G (или можете да отидете в раздела Изглед и да кликнете върху „Незабавен прозорец“).

Къде да добавите код в редактора на VB

Надявам се, че вече имате основно разбиране за това какво е VB Editor и какви всички части има.

В този раздел на този урок ще ви покажа къде да добавите VBA код в редактора на Visual Basic.

Има две места, където можете да добавите VBA кода в Excel:

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

Прозорец за код на модул Прозорец за код на обект

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

Когато добавяте код към някой от обектите, това зависи от някакво действие на този обект, което ще задейства този код. Например, ако искате да покажете всички работни листове в работна книга веднага щом отворите тази работна книга, тогава кодът ще отиде в обекта ThisWorkbook (който представлява работната книга).

В този случай спусъкът отваря работната книга.

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

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

Свързани: Научете повече за Събития във VBA.

Напротив, кодът в модула трябва да се изпълнява или ръчно (или може да бъде извикан и от други подпрограми).

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

Добавяне на VBA код в модул

Докато записването на макрос автоматично създава модул и вмъква кода в него, има някои ограничения при използването на макрорекордер. Например, той не може да използва цикли или условия If Then Else.

В такива случаи е по -добре да копирате и поставите кода ръчно или да го напишете сами.

Модул може да се използва за съхраняване на следните типове VBA кодове:

  1. Декларации: Можете да декларирате променливи в модул. Декларирането на променливи ви позволява да посочите какъв тип данни може да съдържа променлива. Можете да декларирате променлива само за подпрограма или за всички подпрограми в модула (или всички модули)
  2. Подпрограми (процедури): Това е кодът, който има стъпките, които искате да изпълни VBA.
  3. Функционални процедури: Това е код, който връща единична стойност и можете да го използвате за създаване на персонализирани функции (наричани също потребителски функции или UDF във VBA)

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

Добавяне на модул във VB Editor

По -долу са стъпките за добавяне на модул:

  1. Щракнете с десния бутон върху всеки обект от работната книга (в който искате модула).
  2. Задръжте курсора на мишката върху опцията Вмъкване.
  3. Кликнете върху Модул.

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

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

Сега можете да копирате-поставите кода или да го напишете сами.

Премахване на модула

По -долу са стъпките за премахване на модул в Excel VBA:

  1. Щракнете с десния бутон върху модула, който искате да премахнете.
  2. Кликнете върху опцията Премахване на модул.
  3. В диалоговия прозорец, който се отваря, щракнете върху Не.

Забележка: Можете да експортирате модул, преди да го премахнете. Той се записва като .bas файл и можете да го импортирате в някой друг проект. За да експортирате модул, щракнете с десния бутон върху модула и кликнете върху „Експортиране на файл“.

Добавяне на код към прозореца на обектния код

За да отворите прозореца с код за обект, просто щракнете двукратно върху него.

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

Имайте предвид, че някои от обектите ви позволяват да изберете събитието, за което искате да напишете кода.

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

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

Персонализиране на VB Editor

Въпреки че настройките по подразбиране на Visual Basic Editor са достатъчно добри за повечето потребители, това ви позволява да персонализирате допълнително интерфейса и няколко функционалности.

В този раздел на урока ще ви покажа всички опции, които имате при персонализирането на VB Editor.

За да персонализирате средата на VB Editor, щракнете върху Инструменти в лентата с менюта и след това върху Опции.

Това ще отвори диалоговия прозорец Опции, който ще ви даде всички опции за персонализиране във VB Editor. Диалоговият прозорец „Опции“ има четири раздела (както е показано по -долу), които имат различни опции за персонализиране за редактора на Visual Basic.

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

Раздел Редактор

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

Тъй като ставате по -опитни в работата с VBA в Excel, може да искате да персонализирате VB Editor, като използвате някои от тези опции.

Автоматична проверка на синтаксиса

Когато работите с VBA в Excel, веднага щом допуснете синтаксична грешка, ще бъдете посрещнати от изскачащ диалогов прозорец (с малко описание на грешката). Нещо, както е показано по -долу:

Ако деактивирате тази опция, това изскачащо поле няма да се появи дори когато направите грешка в синтаксиса. Въпреки това, ще има промяна в цвета в текста на кода, за да се посочи, че има грешка.

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

Изискване на променлива декларация

Това е една от опциите, които препоръчвам да активирате.

Когато работите с VBA, ще използвате променливи за съхраняване на различни типове данни и обекти.

Когато активирате тази опция, тя автоматично вмъква израза „Option Explicit“ в горната част на прозореца на кода. Това ви принуждава да декларирате всички променливи, които използвате в кода си. Ако не декларирате променлива и се опитате да изпълните кода, тя ще покаже грешка (както е показано по -долу).

В горния случай използвах променливата Var, но не я декларирах. Така че, когато се опитам да стартирам кода, той показва грешка.

Тази опция е доста полезна, когато имате много променливи. Често ми помага да намеря имена на променливи с неправилно изписване, тъй като те се считат за недекларирани и се показва грешка.

Забележка: Когато активирате тази опция, тя не засяга съществуващите модули.

Член на автоматичния списък

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

Например, ако искам да изтрия работен лист (Sheet1), трябва да използвам реда Sheet1.Delete.

Докато въвеждам кода, веднага щом напиша точката, тя ще ми покаже всички методи и свойства, свързани с обекта Worksheet (както е показано по -долу).

Функцията за автоматичен списък е страхотна, тъй като ви позволява да:

  • Бързо изберете свойството и метода от списъка и спестявате време
  • Показва всички свойства и методи, които може да не знаете
  • Избягвайте правописни грешки

Тази опция е активирана по подразбиране и препоръчвам да я запазите така.

Автоматични опции за бърза информация

Когато въвеждате функция в работен лист на Excel, тя ви показва известна информация за функцията - като аргументите, които тя приема.

По същия начин, когато въвеждате функция във VBA, тя ви показва известна информация (както е показано по -долу). Но за да се случи това, трябва да се уверите, че опцията Автоматична бърза информация е активирана (която е по подразбиране).

Опции за съвети за автоматични данни

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

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

В горния пример, веднага щом поставя курсора върху променливата (var), тя показва стойността, която държи.

Тази опция е активирана по подразбиране и препоръчвам да я запазите така.

Автоматичен отстъп

Тъй като VBA кодовете могат да станат дълги и объркани, използването на отстъп увеличава четимостта на кода.

Когато пишете код, можете да направите отстъп с помощта на клавиша табулация.

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

В горния пример, след като напиша реда Debug.Print и натисна enter, той ще започне точно под него (със същото ниво на отстъп).

Намирам тази опция за полезна и изключването на това би означавало ръчно отстъпване на всеки ред в блок код, който искам да има отстъп.

Можете да промените стойността на отстъпа, ако искате. Поддържам го на стойността по подразбиране.

Редактиране на текст с плъзгане и пускане

Когато тази опция е активирана, тя ви позволява да изберете блок код и да го плъзнете и пуснете.

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

Тази опция е активирана по подразбиране и препоръчвам да я запазите така.

По подразбиране за пълен изглед на модул

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

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

Тази опция е активирана по подразбиране и препоръчвам да я запазите така.

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

Процедурен разделител

Когато тази опция е активирана, ще видите линия (вид разделител) между две процедури.

Намирам това за полезно, тъй като визуално показва кога една процедура приключва, а другата започва.

Активирано е по подразбиране и препоръчвам да го оставите така.

Раздел Формат на редактора

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

Лично аз запазвам всички опции по подразбиране, тъй като съм добре с тях. Ако искате, можете да промените това според вашите предпочитания.

За да направите промяна, първо трябва да изберете опция в полето Цветове на кода. След като изберете опция, можете да промените цвета на предния план, фона и индикатора за нея.

Видът на шрифта и размерът на шрифта също могат да бъдат зададени в този раздел. Препоръчително е да използвате шрифт с фиксирана ширина, като Courier New, тъй като прави кода по-четим.

Обърнете внимание, че настройката за типа и размера на шрифта ще остане същата за всички типове кодове (т.е. всички типове кодове, показани в полето за цвят на кода).

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

Забележка: Опцията Margin Indicator Bar, когато е активирана, показва малка лента за марж вляво от кода. Това е полезно, тъй като показва полезни индикатори при изпълнение на кода. В горния пример, когато зададете точка на прекъсване, тя автоматично ще покаже червена точка вляво от реда в лентата на полето. Като алтернатива, за да зададете точка на прекъсване, можете просто да кликнете върху лентата на полето вляво от кодовия ред, който искате като точка на прекъсване.

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

Един от студентите ми по курс VBA намери тези опции за персонализиране за полезни и тя беше далтонист. Използвайки опциите тук, тя успя да зададе цвета и форматите, които я улесниха да работи с VBA.

Общ раздел

Разделът Общи има много опции, но не е нужно да променяте нито една от тях.

Препоръчвам ви да запазите всички опции такива, каквито са.

Една важна опция, която трябва да знаете в този раздел, е обработката на грешки.

По подразбиране е избрано „Прекъсване при необработени грешки“ и препоръчвам да го оставите така.

Тази опция означава, че ако кодът ви срещне грешка и вие вече не сте обработили тази грешка в кода си, тя ще се счупи и ще спре. Но ако сте адресирали грешката (например като използвате опциите On Error Resume Next или On Error Goto), тя няма да се счупи (тъй като грешките не се обработват).

Докинг таб

В този раздел можете да посочите кои прозорци искате да бъдат закачени.

Докинг означава, че можете да фиксирате позицията на прозорец (като например изследовател на проекти или прозорец Свойства), така че той да не се носи и можете да видите всички различни прозорци едновременно.

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

Препоръчвам да запазите настройките по подразбиране.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave