Именовање Екцел ВБА подлога и функција

Попут људи, кућних љубимаца и урагана, свака Екцел ВБА под и функција процедура мора имати име. Иако је сасвим прихватљиво да свом псу дате име Хаирбалл Харис, обично није добра идеја користити такав слободан став када именујете Екцл ВБА процедуре. Када именујете Екцел ВБА процедуре, морате се придржавати неколико правила:

  • Можете користити слова, бројеве и неке знакове интерпункције, али први знак мора бити слово.
  • У називу не можете користити размаке или тачке.
  • ВБА не прави разлику између великих и малих слова.
  • Не можете користити ниједан од следећих знакова у имену процедуре: #, $, %, &, @, ^, * или !. Другим речима, име ваше процедуре не може изгледати као псовке у стрипу.
  • Ако напишете функцију функције за употребу у формули, избегавајте коришћење имена које изгледа као адреса ћелије (на пример, А1 или Б52). У ствари, Екцел дозвољава таква имена функција, али зашто ствари учинити збуњујућима него што јесу?
  • Називи процедура не могу бити дужи од 255 карактера. (Наравно, никада не бисте направили оволико име процедуре.)

У идеалном случају, назив процедуре описује сврху рутине. Добра пракса је креирање имена комбиновањем глагола и именице — на пример, ПроцессДата, ПринтРепорт, Сорт_Арраи или ЦхецкФиленаме.

Неки програмери више воле да користе имена налик реченицама која пружају потпун опис процедуре. Неки примери укључују ВритеРепортТоТектФиле и Гет_Принт_Оптионс_анд_Принт_Репорт. Употреба тако дугачких имена има предности и недостатке. С једне стране, такви називи су описни и обично недвосмислени. С друге стране, потребно им је дуже за куцање. Свако развија стил именовања, али ако ваш макро није само брзи и прљави привремени макро, добра је идеја да будете дескриптивни и да избегавате бесмислена имена као што су ДоИт, Упдате, Фик и увек популарни Мацро1.

Извршавање Екцел ВБА потпроцедура

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

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

ВБА Суб можете извршити на много начина; то је један од разлога зашто можете да урадите толико корисних ствари са Суб процедурама. Ево исцрпне листе начина за извршавање подпроцедуре:

  • Изаберите Рун → Рун Суб/УсерФорм (у ВБЕ). Екцел извршава Суб процедуру у којој се налази курсор. Ова команда менија има две алтернативе: тастер Ф5 и дугме Рун Суб/УсерФорм на стандардној траци са алаткама у ВБЕ-у. Ове методе не раде ако процедура захтева један или више аргумената.
  • Користите Екцелов дијалог Макро. Овај оквир отварате тако што ћете изабрати Програмер → Код → Макрои или тако што ћете изабрати Поглед → Макрои → Макрои. Или заобиђите траку и само притисните Алт+Ф8. Када се појави дијалог Макро, изаберите подпроцедуру коју желите и кликните на Покрени. Овај оквир за дијалог наводи само процедуре које не захтевају аргумент.
  • Притисните Цтрл+тастер (или Цтрл+Схифт+тастер) који је додељен подпроцедури (под претпоставком да сте је доделили).
  • Кликните на дугме или облик на радном листу. Дугме или облик мора имати додељену подпроцедуру — што је веома лако урадити.
  • Из друге подпроцедуре коју напишете.
  • Кликните на дугме које сте додали на траку са алаткама за брзи приступ.
  • Из прилагођене ставке коју сте додали на траку.
  • Када дође до неког догађаја. Ови догађаји укључују отварање радне свеске, затварање радне свеске, чување радне свеске, уношење промене у ћелију, активирање листа и друге ствари.
  • Из прозора Иммедиате у ВБЕ. Само унесите назив подпроцедуре и притисните Ентер.

Неке од ових техника су покривене у наставку. Да бисте наставили даље, потребно је да унесете подпроцедуру у ВБА модул:

Почните са новом радном свеском.

Притисните Алт+Ф11 да активирате ВБЕ.

Изаберите радну свеску у прозору пројекта.

Изаберите Убаци → Модул да бисте уметнули нови модул.

Унесите следеће у модул:

Суб СховЦубеРоот()
  Нум = ИнпутБок("Унесите позитиван број")
  МсгБок Нум ^ (1/3) & " је коцкасти корен."
Енд Суб

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

Именовање Екцел ВБА подлога и функција

Коришћење уграђене ВБА ИнпутБок функције за добијање броја.

Такође можете шта се дешава преко МсгБок функције овде.

Именовање Екцел ВБА подлога и функција

Приказивање кубног корена броја преко функције МсгБок.

Иначе, СховЦубеРоот није пример доброг макроа. Не проверава да ли постоје грешке, тако да лако квари. Покушајте да кликнете на дугме Откажи у пољу за унос или да унесете негативан број. Свака радња резултира поруком о грешци.

Директно извршавање Екцел ВБА Суб процедуре

Један од начина да извршите ову процедуру је да то урадите директно из ВБА модула у којем сте га дефинисали. Пратите ове кораке:

Активирајте ВБЕ и изаберите ВБА модул који садржи процедуру.

Померите курсор било где у коду процедуре.

Притисните Ф5 (или изаберите Рун → Рун Суб/УсерФорм).

Одговорите на поље за унос и кликните на ОК.

Процедура приказује кубни корен броја који сте унели.

Не можете користити Рун → Рун Суб/УсерФорм да извршите под процедуру која користи аргументе, јер немате начина да проследите аргументе процедури. Ако процедура садржи један или више аргумената, једини начин да се изврши је да је позовете из друге процедуре — која мора да обезбеди аргумент(е).

Извршавање процедуре из Екцеловог макро дијалога

Већину времена извршавате под процедуре из Екцел-а, а не из ВБЕ-а. Следећи кораци описују како да извршите макро користећи Екцел дијалог макро:

Ако радите у ВБЕ-у, активирајте Екцел.
Притиском на Алт+Ф11 је брза рута.

Изаберите Програмер → Код → Макрои (или притисните Алт+Ф8).
Екцел приказује дијалошки оквир приказан овде.Именовање Екцел ВБА подлога и функција

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

Изаберите макро.

Кликните на Покрени (или двапут кликните на име макроа у оквиру са листом).

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

Извршавање Екцел ВБА макроа помоћу тастера пречице

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

Имате могућност да доделите пречицу у дијалогу Рецорд Мацро када почнете да снимате макро . Ако креирате процедуру без коришћења макро снимача, можете доделити пречицу (или променити постојећу пречицу) користећи следеће кораке:

Изаберите Програмер → Код → Макрои.

Изаберите назив потпроцедуре са листе.

У овом примеру, процедура се зове СховЦубеРоот.

Кликните на дугме Опције.
Екцел приказује дијалог Макро опције приказан овде.Именовање Екцел ВБА подлога и функција

Дијалог „Опције макроа“ вам омогућава да подесите опције за своје макрое.

Кликните на опцију Тастер пречице и унесите слово у поље са ознаком Цтрл.

Слово које унесете одговара комбинацији тастера коју желите да користите за извршавање макроа. На пример, ако унесете мало слово ц, можете да извршите макро притиском на Цтрл+Ц. Ако унесете велико слово, потребно је да комбинацији тастера додате тастер Схифт. На пример, ако унесете Ц, можете да извршите макро притиском на Цтрл+Схифт+Ц.

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

Тастери за пречице које доделите макроима замењују уграђене пречице у Екцел-у. На пример, Цтрл+Ц је стандардна пречица за копирање података. Ако доделите Цтрл+Ц макроу, не можете користити Цтрл+Ц за копирање. Ово обично није велика ствар јер Екцел скоро увек пружа друге начине за извршавање команди.

Извршавање Екцел ВБА процедуре са дугмета или облика

Понекад би вам се можда допала идеја да доделите макро дугмету (или било ком другом облику) на радном листу. Да бисте доделили Екцел макро дугмету, следите ове кораке:

Активирајте радни лист.

Додајте дугме из групе Контроле обрасца.
Да бисте приказали групу Контроле обрасца, изаберите Програмер → Контроле → Убаци.Именовање Екцел ВБА подлога и функција

Трака која приказује контроле доступне када кликнете на Инсерт на картици Девелопер.

Кликните на алатку Дугме у групи Контроле обрасца.

То је прво дугме у првом реду контрола.

Превуците радни лист да бисте креирали дугме.
Након што додате дугме на радни лист, Екцел чита ваше мисли и приказује дијалошки оквир Додели макро приказан у наставку.Именовање Екцел ВБА подлога и функција

Када додате дугме на радни лист, Екцел аутоматски приказује дијалог Додели макро.

Изаберите макро који желите да доделите дугмету.

Кликните на ОК.

Након што извршите задатак, кликом на дугме извршава се макро — баш као магијом.

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

Такође можете доделити макро било ком другом облику или објекту. На пример, претпоставимо да желите да извршите макро када корисник кликне на објекат Рецтангле. Пратите ове кораке:

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

Уметните правоугаоник тако што ћете изабрати Уметање → Илустрације → Облици.

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

Изаберите Додели макро из његовог менија са пречицама.

Изаберите макро у дијалогу Додели макро.

Кликните на ОК.
Након што извршите ове кораке, кликом на правоугаоник извршава се додељени макро.

Извршавање процедуре из друге Екцел ВБА процедуре

Такође можете извршити Екцел ВБА процедуру из друге процедуре. Следите ове кораке ако желите да ово испробате:

Активирајте ВБА модул који садржи СховЦубеРоот рутину.

Унесите ову нову процедуру (било изнад или испод СховЦубеРоот кода — нема разлике):

Суб НевСуб()
  Позовите СховЦубеРоот
Енд Суб

Када завршите, једноставно извршавате НевСуб макро.

Најлакши начин да то урадите је да померите курсор било где унутар НевСуб кода и притиснете Ф5. Приметите да ова НевСуб процедура једноставно извршава СховЦубеРоот процедуру.

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

Извршавање процедура Екцел ВБА функције

Функције, за разлику од подпроцедура, могу се извршити на само два начина:

  • Позивањем функције из друге Суб процедуре или Фунцтион процедуре
  • Коришћењем функције у формули радног листа

Испробајте ову једноставну функцију. Унесите га у ВБА модул:

Функција ЦубеРоот(број)
  ЦубеРоот = број ^ (1/3)
Енд Фунцтион

Ова функција је прилично слаба; он само израчунава кубни корен броја који му је прослеђен као аргумент. То, међутим, пружа полазну тачку за разумевање функција. Такође илуструје важан концепт о функцијама: како вратити вредност. (Сећате се да функција враћа вредност, зар не?)

Приметите да један ред кода који чини ову процедуру функције врши прорачун. Резултат математике (број на степен од 1⁄3) се додељује променљивој ЦубеРоот. Није случајно, ЦубеРоот је такође назив функције. Да бисте рекли функцији коју вредност да врати, доделите ту вредност имену функције.

Позивање Екцел ВБА функције из потпроцедуре

Пошто не можете директно да извршите функцију, морате је позвати из друге процедуре. Унесите следећу једноставну процедуру у исти ВБА модул који садржи функцију ЦубеРоот:

Суб ЦаллерСуб()
  Одговор = ЦубеРоот(125)
  МсгБок Анс
Енд Суб

Када извршите ЦаллерСуб процедуру, Екцел приказује оквир са поруком који садржи вредност променљиве Анс, која је 5.

Ево шта се дешава: функција ЦубеРоот се извршава и добија аргумент од 125. Израчунавање се врши помоћу кода функције (користећи вредност која је прослеђена као аргумент), а враћена вредност функције се додељује променљивој Анс. Функција МсгБок затим приказује вредност променљиве Анс.

Покушајте да промените аргумент који је прослеђен функцији ЦубеРоот и поново покрените макро ЦаллерСуб. Ради баш као што би требало — под претпоставком да дате функцији валидан аргумент (позитиван број).

Иначе, ЦаллерСуб процедура би се могла мало поједноставити. Променљива Анс није заиста потребна осим ако ваш код касније не користи ту променљиву. Можете користити ову једну изјаву да добијете исти резултат:

МсгБок ЦубеРоот(125)

Позивање Екцел ВБА функције из формуле радног листа

Сада је време да позовете ову процедуру ВБА функције из формуле радног листа. Активирајте радни лист у истој радној свесци која садржи дефиницију функције ЦубеРоот. Затим унесите следећу формулу у било коју ћелију:

=ЦубеРоот(1728)

Ћелија приказује 12, што је заиста кубни корен од 1,728.

Као што можете очекивати, можете користити референцу ћелије као аргумент за функцију ЦубеРоот. На пример, ако ћелија А1 садржи вредност, можете да унесете =ЦубеРоот(А1) . У овом случају, функција враћа број добијен израчунавањем кубног корена вредности у А1.

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

Именовање Екцел ВБА подлога и функција

Функција ЦубеРоот се појављује у категорији Усер Дефинед дијалога Инсерт Фунцтион.

Ако желите да дијалошки оквир Уметање функције приказује опис функције, следите ове кораке:

Изаберите Програмер → Код → Макрои.
Екцел приказује дијалог Макро, али се ЦубеРоот не појављује на листи. (ЦубеРоот је функција функције, а ова листа приказује само подпроцедуре.) Не брините.

Откуцајте реч ЦубеРоот у пољу Име макроа.

Кликните на дугме Опције.

Унесите опис функције у поље Опис.

Кликните на ОК да бисте затворили дијалог Макро опције.

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

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

Именовање Екцел ВБА подлога и функција

Коришћење функције ЦубеРоот у формулама.

До сада су вам ствари можда почеле да се слажу.


Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Ако сте користили оловку или маркер за цртање на ПоверПоинт слајдовима током презентације, можете да сачувате цртеже за следећу презентацију или да их избришете тако да ћете следећи пут када их покажете почети са чистим ПоверПоинт слајдовима. Пратите ова упутства да бисте избрисали цртеже оловком и маркером: Брисање линија један на […]

Садржај библиотеке стилова у СхареПоинт 2010

Садржај библиотеке стилова у СхареПоинт 2010

Библиотека стилова садржи ЦСС датотеке, датотеке Ектенсибле Стилесхеет Лангуаге (КССЛ) и слике које користе унапред дефинисане главне странице, изгледе страница и контроле у ​​СхареПоинт 2010. Да бисте лоцирали ЦСС датотеке у библиотеци стилова на локацији за објављивање: Изаберите Радње сајта→Прикажи Сав садржај сајта. Појављује се садржај сајта. Библиотека Стил налази се у […]

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Немојте претрпати своју публику огромним бројевима. У Мицрософт Екцел-у можете побољшати читљивост својих контролних табли и извештаја тако што ћете форматирати своје бројеве тако да се појављују у хиљадама или милионима.

Како делити и пратити СхареПоинт локације

Како делити и пратити СхареПоинт локације

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

Како претворити датуме у јулијанске формате у Екцелу

Како претворити датуме у јулијанске формате у Екцелу

Јулијански датуми се често користе у производним окружењима као временска ознака и брза референца за број серије. Ова врста кодирања датума омогућава продавцима, потрошачима и услужним агентима да идентификују када је производ направљен, а тиме и старост производа. Јулијански датуми се такође користе у програмирању, војсци и астрономији. Различит […]

Како да направите приступну веб апликацију

Како да направите приступну веб апликацију

Можете да креирате веб апликацију у програму Аццесс 2016. Дакле, шта је уопште веб апликација? Па, веб значи да је онлајн, а апликација је само скраћеница за „апликацију“. Прилагођена веб апликација је апликација базе података на мрежи којој се приступа из облака помоћу претраживача. Ви правите и одржавате веб апликацију у верзији за десктоп […]

Трака за брзо покретање у СхареПоинт 2010

Трака за брзо покретање у СхареПоинт 2010

Већина страница у систему СхареПоинт 2010 приказује листу веза за навигацију на траци за брзо покретање дуж леве стране странице. Трака за брзо покретање приказује везе ка садржају истакнутог сајта као што су листе, библиотеке, сајтови и странице за објављивање. Трака за брзо покретање укључује две веома важне везе: Линк за сав садржај сајта: […]

Шта значе поруке о грешци решавача у Екцел-у?

Шта значе поруке о грешци решавача у Екцел-у?

За једноставне проблеме, Солвер у Екцел-у обично брзо проналази оптималне вредности променљиве Решавача за функцију циља. Али, у неким случајевима, Солвер има проблема да пронађе вредности променљиве Солвера које оптимизују функцију циља. У овим случајевима, Солвер обично приказује поруку или поруку о грешци која описује или расправља о проблему који […]

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Можете лако да уклоните израчуната поља и ставке из Екцел заокретне табеле. Да бисте уклонили израчунато поље, кликните на ћелију у изведеној табели. Затим кликните на команду Поља, ставке и скупови на картици Анализа и изаберите Израчунато поље из подменија који се појави. Када Екцел прикаже дијалог Уметање израчунатог поља, изаберите […]

Како означити у СхареПоинт-у

Како означити у СхареПоинт-у

Ознаке су кључне речи које додељујете садржају. Означавање страница за дељење са другима је обележавање на друштвеним мрежама, веома је популарно на вебу и лако је у СхареПоинт-у. Ако сте икада користили сајт као што је Делициоус, већ знате како функционише обележавање на друштвеним мрежама. Како све више људи додељује исте ознаке, ознаке постају начин на који […]