Екцел ВБА пружа бројне уграђене функције. Неке од ових Екцел ВБА функција узимају аргументе, а неке не.
Примери Екцел ВБА функција
Овде ћете пронаћи неколико примера коришћења ВБА функција у коду. У многим од ових примера, функција МсгБок приказује вредност у оквиру за поруке. Да, МсгБок је ВБА функција — прилично необична, али ипак функција. Ова корисна функција приказује поруку у оквиру за дијалог и такође враћа вредност.
Приказ системског датума или времена
Први пример користи ВБА функцију Дате да прикаже тренутни системски датум у оквиру за поруке:
Суб СховДате()
МсгБок "Данас је: " & Датум
Енд Суб
Приметите да функција Дате не користи аргумент. За разлику од функција радног листа, ВБА функција без аргумента не захтева празан скуп заграда. У ствари, ако унесете празан скуп заграда, ВБЕ их одмах уклања.
Да бисте добили системско време, користите функцију Време. А ако желите све, користите функцију Сада да бисте вратили и датум и време.
Проналажење дужине низа
Следећа процедура користи ВБА Лен функцију, која враћа дужину текстуалног низа. Функција Лен узима један аргумент: стринг. Када извршите ову процедуру, оквир за поруку приказује ваше име и број знакова у вашем имену.
Суб ГетЛенгтх()
Дим МиНаме Ас Стринг
Дим СтрингЛенгтх Ас Лонг
МиНаме = Апплицатион.УсерНаме
СтрингЛенгтх = Лен(МојеИме)
МсгБок МиНаме & " има " & СтрингЛенгтх & " знакова.
Енд Суб
Израчунавање дужине вашег имена.
Екцел такође има ЛЕН функцију, коју можете користити у формулама радног листа. Екцел верзија и ВБА функција раде исто.
Приказује назив месеца
Следећа процедура користи функцију МонтхНаме, која враћа назив месеца. МонтхНаме користи један аргумент: цео број између 1 и 12.
Суб СховМонтхНаме()
Дим ТхисМонтх Ас Лонг
Овај месец = месец (датум)
МсгБок МонтхНаме(ТхисМонтх)
Енд Суб
Ова процедура користи функцију Монтх да добије текући месец (као вредност), а ова вредност се додељује променљивој ТхисМонтх. Функција МонтхНаме затим конвертује вредност у текст. Дакле, ако покренете ову процедуру у априлу, оквир за поруку приказује текст Април.
Заправо, променљива ТхисМонтх није потребна. Исти ефекат можете постићи са овим изразом, који користи три ВБА функције:
МонтхНаме(Монтх(Дате))
Овде се тренутни датум прослеђује као аргумент функцији Монтх, која враћа вредност која је прослеђена као аргумент функцији МонтхНаме.
Одређивање величине датотеке
Следећа подпроцедура приказује величину, у бајтовима, извршне датотеке програма Екцел. Он проналази ову вредност помоћу функције ФилеЛен:
Суб ГетФилеСизе()
Затамните датотеку као стринг
ТхеФиле = "Ц:\Програм Филес (к86)\Мицрософт Оффице\роот\Оффице16\ЕКСЦЕЛ.ЕКСЕ"
МсгБок ФилеЛен(ТхеФиле)
Енд Суб
Приметите да ова рутина чврсто кодира име датотеке (то јест, експлицитно наводи путању). Ово није добра идеја. Датотека можда није на Ц диску или фасцикла Екцел може имати другачије име. Следећа изјава показује бољи приступ:
ТхеФиле = Апплицатион.Патх & "\ЕКСЦЕЛ.ЕКСЕ"
Путања је својство објекта Апплицатион. Једноставно враћа име фасцикле у којој је инсталирана апликација (тј. Екцел) (без обрнуте косе црте).
Идентификовање типа изабраног објекта
Следећа процедура користи функцију ТипеНаме, која враћа тип селекције на радном листу (као стринг):
Суб СховСелецтионТипе()
Дим СелТипе као стринг
СелТипе = ТипеНаме(Избор)
МсгБок СелТипе
Енд Суб
Избор може бити опсег, слика, правоугаоник, област графикона или било који други тип објекта који се може изабрати.
Функција ТипеНаме је веома разноврсна. Такође можете користити ову функцију да одредите тип података променљиве.
Екцел ВБА функције које раде више од враћања вредности
Неколико ВБА функција иде изнад и даље од дужности. Уместо да једноставно врате вредност, ове функције имају неке корисне споредне ефекте.
ВБА функције са корисним споредним предностима
Функција |
Шта ради |
МсгБок |
Приказује згодан оквир за дијалог који садржи поруку и дугмад. Функција враћа код који идентификује на које дугме корисник кликне. |
ИнпутБок |
Приказује једноставан оквир за дијалог који од корисника тражи неки унос. Функција враћа све што корисник унесе у оквир за дијалог. |
Шкољка |
Извршава други програм. Функција враћа ИД задатка (јединствени идентификатор) другог програма (или грешку ако функција не може да покрене други програм). |
Откривање Екцел ВБА функција
Како сазнати које функције ВБА пружа? Добро питање. Најбољи извор је Екцел ВБА систем . Други начин је да откуцате ВБА , након чега следи тачка. Добијате листу ставки. Они са зеленом иконом су функције. Ако ова функција не ради, изаберите ВБЕ-ове Алатке → Опције, кликните на картицу Уређивач и ставите квачицу поред Аутоматске листе чланова.
Начин за приказ листе ВБА функција.
Постоји преко 140 различитих функција доступних у ВБА. Неке су толико специјализоване и нејасне да вам никада неће требати. Други су, међутим, прилично корисни за многе апликације.
Најкорисније уграђене функције Екцел ВБА
Функција |
Шта ради |
Абс |
Враћа апсолутну вредност броја |
Низ |
Враћа варијанту која садржи низ |
Изабери |
Враћа вредност са листе ставки |
Цхр |
Конвертује АНСИ вредност у стринг |
ЦурДир |
Враћа тренутну путању |
Датум |
Враћа тренутни системски датум |
ДатеАдд |
Враћа датум коме је додат одређени временски интервал — на пример, месец дана од одређеног датума |
ДатеДифф |
Враћа цео број који показује број одређених временских интервала између два датума — на пример, број месеци између сада и вашег рођендана |
ДатеПарт |
Враћа цео број који садржи наведени део датог датума — на пример, дан у години |
ДатеСериал |
Конвертује датум у серијски број |
ДатеВалуе |
Конвертује стринг у датум |
Дан |
Враћа дан у месецу из вредности датума |
Дир |
Враћа име датотеке или директоријума који одговара шаблону |
Ерр |
Враћа број грешке услова грешке |
Грешка |
Враћа поруку о грешци која одговара броју грешке |
Екп |
Враћа базу природног логаритма (е) подигнуту на степен |
ФилеЛен |
Враћа број бајтова у датотеци |
Поправи |
Враћа целобројни део броја |
Формат |
Приказује израз у одређеном формату |
ГетСеттинг |
Враћа вредност из Виндовс регистратора |
Сат |
Враћа део времена у сату |
ИнпутБок |
Приказује оквир за тражење од корисника за унос |
ИнСтр |
Враћа позицију низа унутар другог низа (рачунајући од почетка) |
ИнСтрРев |
Враћа позицију низа унутар другог низа (рачунајући од краја) |
Инт |
Враћа целобројни део броја |
ИсАрраи |
Враћа Тачно ако је променљива низ |
ИсДате |
Враћа Тачно ако је израз датум |
Празно |
Враћа Тачно ако променљива није иницијализована |
ИсЕррор |
Враћа Тачно ако је израз вредност грешке |
Је нестао |
Враћа Тачно ако опциони аргумент није прослеђен процедури |
ИсНулл |
Враћа Тачно ако израз не садржи важеће податке |
ИсНумериц |
Враћа Тачно ако се израз може проценити као број |
ЛБоунд |
Враћа најмањи индекс за димензију низа |
ЛЦасе |
Враћа стринг претворен у мала слова |
Лево |
Враћа одређени број знакова са леве стране стринга |
Лен |
Враћа број знакова у низу |
Мид |
Враћа одређени број знакова из стринга |
Минуте |
Враћа минутни део временске вредности |
Месец дана |
Враћа месец из вредности датума |
МсгБок |
Приказује оквир за поруку и (опционо) враћа вредност |
Сада |
Враћа тренутни системски датум и време |
Заменити |
Замењује подниз у низу другим поднизом |
РГБ |
Враћа нумеричку РГБ вредност која представља боју |
Јел тако |
Враћа одређени број знакова са десне стране стринга |
Рнд |
Враћа насумични број између 0 и 1 |
Друго |
Враћа секунде у временској вредности |
Шкољка |
Покреће извршни програм |
Спаце |
Враћа стринг са одређеним бројем размака |
Разделити |
Дели стринг на делове, користећи знак за разграничење |
Скр |
Враћа квадратни корен броја |
Низ |
Враћа понављајући карактер или стринг |
време |
Враћа тренутно системско време |
Тајмер |
Враћа број секунди од поноћи |
ТимеСериал |
Враћа време за одређени сат, минут и секунд |
ТимеВалуе |
Конвертује стринг у временски серијски број |
Трим |
Враћа стринг без водећих или завршних размака |
ТипеНаме |
Враћа стринг који описује тип података променљиве |
УБоунд |
Враћа највећи доступни индекс за димензију низа |
УЦасе |
Конвертује стринг у велика слова |
Вал |
Враћа бројеве садржане у низу |
Радним даном |
Враћа број који представља дан у недељи |
Година |
Враћа годину из вредности датума |
За потпуне детаље о одређеној Екцел ВБА функцији , откуцајте име функције у ВБА модул, померите курсор било где у тексту и притисните Ф1.