ВБА - Отварање и коришћење уређивача Висуал Басиц (ВБЕ) у програму Екцел

Овај водич ће вам показати како да отворите и програмирате у Висуал Басиц Едитор -у у ВБА.

Отварање уређивача Висуал Басиц

Постоји неколико начина за приступ уређивачу Висуал Басиц (ВБЕ) у програму Екцел.

Притисните Алт + Ф11 на тастатури.

ИЛИ

Кликните Поглед> Макрои> Прикажи макрое. Одавде можете Уредити постојећи макро или Креирај Нова. Обе опције отварају ВБ Едитор.

ИЛИ

Програмер> Висуал Басиц

Напомена: Ако не видите траку за програмере, мораћете да је омогућите.

Да бисте омогућили траку за програмере

Кликните на Датотека картицу на траци и спустите се на Опције. У Прилагодите траку опције, означите Девелопер поље за потврду. Ово је подразумевано искључено, па ћете морати да га укључите да бисте видели картицу на траци.

Кликните У реду.

Картица Девелопер ће се појавити на главној траци. Кликните на Висуал Басиц на почетку врпце да бисте приступили уређивачу Висуал Басиц.

Разумевање ВБЕ екрана

ВБЕ екран је приказан на доњој слици.

Пројецт Екплорер

Пројецт Екплорер вам омогућава да видите како је организован пројекат у којем радите. Можете видети колико је модула и образаца ускладиштено у пројекту и можете се кретати између ових модула и образаца. Модул је место где се чува код у вашој радној свесци, када снимите макро, биће ускладиштен у стандардном модулу - који ће се подразумевано звати „Модул 1 '.

Сваки од радних листова у Екцел датотеци такође има модул иза себе, као и сама радна свеска. Када уметнете нови лист у радну свеску преко главног екрана програма Екцел, видећете да се у модулу Пројецт Екплорер појављује додатни модул листа.

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

Такође можете кликнути на мени Виндов на траци са алаткама и изабрати тамошњи модул да бисте прешли на код за тај модул.

Врста модула

Модули су организовани у 5 различитих типова.

  1. Стандардни модули - већина вашег кода ће ићи у ову врсту модула. Када снимите макро, он се ставља у стандардни модул. Када напишете општу процедуру која ће се користити у целој радној свесци, она такође обично улази у стандардни модул.
  2. Модули радне свеске - овај модул садржи код који је јединствен за ту појединачну радну свеску. Већина кода у овој врсти модула је позната као ДОГАЂАЈИ. Догађај се може догодити када се радна свеска отвори или затвори, на пример. Модул такође може садржати код који сте сами написали и користили догађаји.
  3. Модули листова - овај модул садржи код који је јединствен за тај појединачни лист. До њих може доћи ако на пример кликнете на лист ( Кликните на Догађај) или када промените податке у ћелији. Овај модул такође може да садржи код који сте сами написали и позвали догађаји.
  4. Модули образаца - ово је модул иза прилагођеног обрасца који можете да креирате. На пример, можете да креирате образац за држање детаља за фактуру, са дугметом ОК, код иза дугмета (догађај клика) садржи код који ће се покренути када се кликне на дугме.
  5. Модули класе - овај модул се користи за креирање објеката током извођења. Модул класе користе напредни ВБА програмери и биће обрађен касније.

Уметање модула или обрасца у ваш код

Да бисте уметнули нови модул у свој код, кликните на Инсерт опцију на траци менија и кликните Модул.

Или кликните на Уметните модул дугме које ћете пронаћи на стандардној траци.

Да бисте у свој код уметнули нови кориснички образац, изаберите УсерФорм опција.

Нови кориснички образац ће се појавити у Пројецт Екплорер и биће приказано у прозору кода са десне стране.

Такође можете уметнути а Модул класе

Модул класе се користи за уметање објеката у ваш ВБА пројекат.

Уклањање модула или обрасца из програма Екплорер

Кликните десним тастером миша на модул или образац који желите да уклоните да бисте приказали мени са пречицама десног клика.

Кликните Уклони (у овом случају УсерФорм1… )

ИЛИ

Кликните на Датотека мени, а затим кликните на Уклони (УсерФорм1).

Појавиће се оквир са упозорењем са питањем да ли желите да извезете образац или модул пре него што га уклоните. Извоз обрасца или модула омогућава вам да га сачувате као засебну датотеку за употребу у неком другом Екцел пројекту у неко друго време.

Чешће него не када уклањате модул или образац, то је зато што вам није потребан, па кликните Не.

Прозор Својства

Видећете прозор са својствима испод Пројецт Екплорер. Можда ћете морати да укључите ово.

Притисните Ф4 или кликните Поглед, Прозор својстава.

Прозор својстава вам омогућава да видите својства за одређени модул или образац који је изабран у Пројецт Екплорер. Када радите у модулима, можете користити прозор својстава да бисте променили име модула. Ово је једино својство доступно модулу. Међутим, када радите с обрасцима, бит ће доступно много више својстава, а прозор Својства се тада опсежно користи за контролу понашања образаца и контрола садржаних у обрасцу.

Када снимите макро, он се аутоматски ставља у стандардни модул. Модул ће се звати „Модул 1 ' и било који код који се налази у том модулу је доступан за употребу током целог пројекта. Требали бисте преименовати свој модул у нешто значајно, што би олакшало проналажење вашег кода ако бисте пројекту додали више модула.

Такође можете преименовати своје обрасце.

Ако сте преименовали свој лист у Екцелу, назив листа ће се појавити као назив листа у заградама после Схеет1.

Ако желите да промените име модула иза листа, можете га променити на исти начин на који мењате име модула и корисничког обрасца - променом својства Наме у прозору Својства.

Уморни сте од тражења примера ВБА кода? Испробајте АутоМацро!

Прозор кода

Прозор кода приказује подпроцедуре и функције које се налазе у вашим модулима - приказује вам стварни код. Када снимите макро, за вас ће бити креирана подпоступка. Ако макроу додате тастер за пречицу, он ће се појавити као коментар у макроу да би вас обавестио који је тастер за пречицу додељен макроу.

На врху прозора кода налазе се два комбинована оквира. Они вам омогућавају да видите на ком објекту (ако га има) у оквиру модула на којем радите и на којој процедури радите.

У горњем примеру не радимо ни на једном објекту - стога је ово постављено на опште, али радимо у оквиру процедуре Гридлинес.

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

Разумевање Кодекса

Постоје 2 врсте процедура - Подпоступци и Поступци функција.

Подпоступци

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

Подпоступак почиње са а Суб изјава и завршава се са Енд Суб изјава. Уз назив процедуре увек следе заграде.

123 Под ХидеГридЛинес ()АцтивеВиндов.ДисплаиГридлинес = НетачноЕнд Суб

Поступци функције

Поступак функције враћа вредност. Ова вредност може бити једна вредност, низ, низ ћелија или објекат. Функције обично изводе неку врсту прорачуна. Функције у Екцелу се могу користити са чаробњаком за функције или их се може позвати из потпроцедура.

123 Функција Килос (фунте као двоструко)Килограми = (фунти/2,2)Завршна функција

Ова функција се може користити у дијалогу Уметање функције у Екцелу за претварање фунти у килограме.

Креирање нове процедуре

Пре него што креирате нову процедуру, проверите да ли сте у модулу у који желите да сачувате процедуру. Можете креирати нову процедуру кликом на мени Инсерт, Процедуре;

или можете да кликнете на икону на траци са алаткама

Појавиће се следећи дијалог

  1. Унесите назив ваше нове процедуре у поље за име - ово мора почети словом абецеде и може садржати слова и број и бити максимално 64 знака.
  2. Можете имати а Подпоступак, а Поступак функције или а Својство процедура. (Својства се користе у модулима класе и постављају својства за АцтивеКс контроле које сте можда креирали).
  3. Можете одредити и обим поступка Јавно или Приватно. Ако је процедура јавна (задана), тада је могу користити сви модули у пројекту, док ако је процедура приватна, моћи ће је користити само овај модул.
  4. Локалне променљиве у овој процедури можете прогласити као статику (ово се односи на Опсег променљиве и чини променљиву на нивоу локалне процедуре јавном за цео модул). Нећемо користити ову опцију.

Када попуните све релевантне детаље, кликните на У реду.

Затим уписујете код између наредби Суб и Енд Суб.

АЛТЕРНАТИВНО - можете уписати Суб и Енд Суб наредбе у свој модул тачно онако како је горе приказано. Не морате стављати реч Публиц испред речи суб - ако је ова реч изостављена, аутоматски се претпоставља да су све процедуре у модулу јавне.

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

односно:

1 Под тест ()

Тхе Енд Суб изјава ће се појавити аутоматски.

ВБА програмирање | Генератор кода ради за вас!

Писање кода који је лак за разумевање и навигацију

Додавање коментара

Стекните навику да уносите коментаре у свој код како бисте се касније подсетили на функционалност кода.

Можете да убаците коментар у свој код, али упишите апостроф на тастатури или се можете укључити на траци са алаткама Уређивање и користити дугме за коментар које се појављује на тој траци са алаткама.

Кликните десним тастером миша на траке са алаткама.

Изаберите Уредити.

Кликните на дугме коментара да бисте уметнули коментар у свој код.

БЕЛЕШКА: Обично користите дугме за блокирање коментара само ако имате неколико редова кода које желите да коментаришете (а не да их избришете). Лакше је за један коментар користити апостроф.

Увлачење

Добра навика у коју треба ући је да увучете код како бисте га лако прочитали и видели различите делове кода.

У зависности од логике вашег кода, може бити много нивоа увлачења.

УпперЦасе вс ЛоверЦасе

ВБА прилагођава сав код одговарајућим словима, тако да ако унесете СВЕ У ВЕЛИКИМ СЛОВИМА или све у малим словима, он ће поново подесити ваш код да буде у исправном писму!

ВБА програмирање | Генератор кода ради за вас!

Аутоматско довршавање

Када прилагодите код, приметићете да ВБА покушава да вам помогне предлажући код који можете да откуцате. Ово је познато као аутоматско довршавање.

Грешка при хватању и отклањању грешака

Постоје 4 врсте грешака које се могу појавити при писању ВБА кода - грешке у синтакси, грешке при компајлирању, грешке у току извођења и логичке грешке.

Синтаксичке грешке

То се догађа када криво напишете код. ВБА ово увелико спречава укључивањем опције провере синтаксе. Ово је обично подразумевано укључено, али ако је искључено, укључите га тако што ћете отићи на Алати, Опције и кликните Аутоматска провера синтаксе.

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

Грешке при састављању

То се дешава када у коду недостаје нешто што спречава његово покретање. Грешка се не појављује када пишете код, али се јавља када покушате да покренете код.

ВБА програмирање | Генератор кода ради за вас!

Грешке у току извођења

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

У овом случају Схеет4 не постоји. Ова порука о грешци је кориснија од порука о грешци при превођењу јер вам даје прилику да отклоните грешке у коду и видите зашто не ради.

Кликните Отклањање грешака. Код ће се зауставити на грешци и означити грешку жутом бојом што вам омогућава да исправите грешку.

Измените Лист 4 у Лист 2 (пошто Лист 2 постоји, а Лист 4 не постоји).

Притисните Ф5 или кликните на Настави дугме на траци са алаткама.

Логичке грешке

Ове је најтеже пронаћи. У њиховом случају, код је исправно написан, али стварна логика кода је погрешна, па можда нећете добити резултат који желите од кода. За логичке грешке, хватање грешака је од суштинског значаја.

Постоје 2 врсте замки грешака

Укључено Грешка Иди на

Следећи код је за отварање дијалога Отварање датотеке - грешка ће се појавити ако корисник кликне Поништити, отказати.

Када покренете код, појављује се дијалошки оквир Отварање датотеке.

Када кликнете на дугме откажи, појавиће се грешка.

Следећа замка грешака ће наставити код до функције Излаз кода и вратити поруку.

Ово користи Он Еррор ГоТо за излазак из функције.

Када покренете код и кликнете на откажи, појавиће се оквир за поруку.

На Грешка Настави даље

Ако ставите На Грешка Настави даље Изјава у вашем коду, ред који садржи грешку биће занемарен и код ће се наставити.

На пример, ако корисник кликне на дугме Откажи у доњем коду, код вам неће дати грешку при извођењу, само ће се завршити, а да код не учини ништа даље.

Понекад је ово врло корисно, али у неким околностима може бити и врло опасно јер не враћа поруку зашто сте добили грешку.

wave wave wave wave wave