Водич за коришћење Висуал Басиц-а за апликације

Једна од најистакнутијих квалитета Висуал Басиц-а је та што је а комплетан развојно окружење. Шта год желите да урадите, постоји „укус“ Висуал Басиц који ће вам помоћи да обавите посао! Висуал Басиц можете користити за развој рачунара и мобилних уређаја и удаљени (ВБ.НЕТ), скриптирање (ВБСцрипт) и развој Оффице-а (ВБА !) Ако сте испробали ВБА и желите да знате више о томе како да га користите, ово је туториал за вас. (Овај курс се заснива на верзији ВБА пронађеној у програму Мицрософт Оффице 2010.)

Ако претражујете курс у Мицрософт Висуал Басиц .НЕТ, нашли сте и право место. Погледајте: Висуал Басиц .НЕТ 2010 Екпресс - Водич „Из темеља“

ВБА као општи концепт биће обрађен у овом чланку. ВБА има више него што можда мислите! Такође можете пронаћи чланке о сестрама Оффице ВБА:

У основи постоје два начина за развој програма који могу радити са Оффице апликацијама: ВБА и ВСТО. Октобра 2003, Мицрософт је представио унапређење у професионално програмско окружење Висуал Студио .НЕТ под називом Висуал Студио Тоолс фор Оффице - ВСТО. Иако ВСТО користи значајне предности .НЕТ-а у Оффицеу, ВБА је и даље популарнији од ВСТО-а. ВСТО захтева коришћење Професионалне или више верзије Висуал Студио - која ће вас вероватно коштати више од Оффице апликације коју користите - поред апликације Оффице. Али будући да је ВБА интегрисан са хост Оффице апликацијом, више вам ништа не треба.

instagram viewer

ВБА углавном користе стручњаци из Оффице-а који желе свој рад учинити бржим и лакшим. Ретко видите велике системе написане у ВБА. ВСТО, с друге стране, професионални програмери у већим организацијама користе за стварање додатака који могу бити прилично софистицирани. Апликација треће стране, попут папирне компаније за Ворд или рачуноводствене фирме за Екцел, вероватније је да се пише путем ВСТО.

Мицрософт у својој документацији напомиње да у основи постоје три разлога за коришћење ВБА:

-> Аутоматизација и понављање - Рачунари могу да раде исте ствари изнова и преко много бољег и бржег него што то могу људи.

-> Проширења за интеракцију корисника - Да ли желите тачно да предложите како неко треба да форматира документ или сачува датотеку? ВБА то може. Да ли желите да потврдите шта неко улази? ВБА то и може.

-> Интеракција између Оффице 2010 апликација - Каснији чланак из ове серије назива се Ворд и Екцел радећи заједно. Али ако је ово што вам треба, можда бисте требали размотрити Канцеларија за аутоматизацију, то јест писање система помоћу ВБ.НЕТ-а, а затим коришћење функција из Оффице апликације попут Ворд или Екцел по потреби.

Мицрософт је изјавио да ће и даље подржавати ВБА и то је истакнуто у верзији званичник План за развој Мицрософт Оффице 2010 Дакле, имате толико уверења колико Мицрософт икад пружа да ваше улагање у развој ВБА у скоријој будућности неће застаријевати.

С друге стране, ВБА је последњи преостали Мицрософт производ који зависи од ВБ6 "ЦОМ" технологије. Сад је више од двадесет година! У људским годинама то би учинило старијим од вампира Лестата. Можда ћете то видети као „испробљено, тестирано и истинито“ или можда то сматрате „древним, дотрајалим и застарелим“. Ја највише волим први опис, али ви бисте требали бити свесни чињеница.

Прво што треба схватити је однос између ВБА и Оффице апликација као што су Ворд и Екцел. Оффице апликација је а домаћин за ВБА. Програм ВБА никада не може да се изврши сам. ВБА је развијена у окружењу домаћина (коришћењем Девелопер картицу на траци апликације за Оффице) и мора се извршити као дио Ворд документа, радне књиге у Екцелу, Аццесс базе података или неког другог Оффице хост-а.

Начин на који се ВБА заправо користи такође је различит. У апликацији попут Ворд-а, ВБА се користи првенствено као начин приступа објектима окружења домаћина, као што је приступ параграфима у документу са Ворд-ом. Документ. Објекти параграфа. Свако окружење домаћина доприноси јединственим објектима који нису доступни у другим окружењима домаћина. (На пример, у Ворд документу не постоји „радна свеска“. Радна свеска је јединствена за Екцел.) Код Висуал Басиц је углавном ту како би се омогућила употреба објеката прилагођених свакој апликацији Оффице-а.

Фузија између ВБА и главног кода може се видети у овом узорку кода (преузет од Мицрософта) Узорак базе података Нортхвинд) где је чисто ВБА код приказан црвеном бојом, а код специфичан за приступ приказан у Плави. Црвени код би био исти у Екцелу или Ворду, али плави код је јединствен за ову Аццесс апликацију.

Сама ВБА је готово иста као и годинама. Начин на који се интегрише са хост Оффице апликацијом и системом помоћи више је побољшан.

Верзија система Оффице 2010 не подразумевано приказује картицу Девелопер. Картица Девелопер вас води у део апликације у којем можете креирати ВБА програме, тако да прво што морате да урадите је да промените ту опцију. Једноставно идите на картицу Датотека, Опције, Прилагодите врпцу и кликните на картицу Развојни програмер у главним картицама.

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


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

Ако је ваша интернетска веза брза, интернетска помоћ ће вам пружити више и бољих информација. Али локално инсталирана верзија ће вероватно бити бржа и у већини случајева је подједнако добра. Можда бисте желели да локалну помоћ поставите као подразумевану, а затим користите интернетску помоћ ако вам локална верзија не даје оно што желите. Најбржи начин да се повежете са Интернетом је да једноставно одаберете „Алл Ворд“ (или „Алл Екцел“ или неку другу апликацију) са падајућег програма Сеарцх у помоћи. Ово ће се одмах покренути на мрежи и извршити исту претрагу, али неће ресетовати ваш задати избор.


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

На следећој страници почињемо са начином стварања ВБА програма.

Када ВБА „хостује“ апликација попут Ворд или Екцел, програм „живи“ у датотеци докумената коју користи домаћин. На пример, у програму Ворд можете да сачувате свој „Ворд мацро“ (то је не „макро“, али нећемо се сада расправљати о терминологији) ни у Ворд документу или у Ворд предлошку.

Претпоставимо сада да је овај ВБА програм креиран у програму Ворд (овај једноставан програм само мења фонт подебљаним у одабрану линију) и смешта се у Ворд документ:

Суб АбоутМацро () ' 'АбоутМацро Мацро. 'Макро снимио 9.9.999. Дан Маббутт. ' Избор. ХомеКеи Унит: = вдСтори. Избор. ЕндКеи Унит: = вдЛине, Ектенд: = вдЕктенд. Избор. Фонт. Болд = вдТоггле. Избор. ЕндКеи Унит: = вдСтори. Енд Суб.

У ранијим верзијама система Оффице јасно сте могли видети ВБА код сачуван као део документа датотеке у сачувани Ворд документ тако што ћете је видети у Нотепад-у где све у Ворд документу може виђено. Ова илустрација је произведена са претходном верзијом Ворда јер је Мицрософт променио формат документа у тренутној верзији и ВБА програмски код се више не појављује као обичан текст. Али главница је иста. Слично томе, ако направите Екцел прорачунску табелу са „Екцел макро“, она ће бити сачувана као део .клсм датотеке.


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

ВБА и сигурност

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

Најважнија промена била је креирање посебне врсте документа само за Оффице документе који укључују ВБА програме. На пример, у програму Ворд, МиВордДоц.доцк не може да садржи ВБА програм, јер Ворд неће дозволити програме у датотеци сачуваној са датотечним наставком "доцк". Датотека мора бити сачувана као "МиВордДоц.доцм" да би ВБА програмирање било дозвољено као део датотеке. У Екцелу је екстензија датотеке „.клсм“.

Да би се придружио овом побољшаном типу докумената, Мицрософт је креирао нови сигурносни подсистем у програму Оффице под називом Труст Центер. У суштини, можете да прилагодите начин на који ваша апликација Оффице третира документе који садрже ВБА код детаљно. Центар за поверење отварате на картици Девелопер у Оффице апликацији кликом на Мацро Сецурити у одељку Цоде на врпци.


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

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

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

Како покренути ВБА апликацију

То је заправо веома добро питање јер ће оно прво које ће поставити корисници ваше апликације. У основи постоје два начина:

-> Ако одлучите да не употребљавате контролу, као што је дугме, за покретање програма, тада морате да користите команду Мацрос на врпци (картица Девелопер, Цоде гроуп). Изаберите ВБА програм и кликните Покрени. Али, то се неким вашим корисницима можда чини превише. На пример, можда нећете желети да им картица чак и буде доступна. У том случају ...

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

Корисничке форме, контроле обрасца и АцтивеКс контроле

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

Будући да нуди највише флексибилности, погледајмо шта можете урадити с Екцел-ом 2010. Једноставна текстуална порука биће убачена у ћелију када се кликне неколико различитих тастера само да би се разлике учиниле јаснијима.

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

Кликните на икону Уметање. Прво ћемо радити са дугметом Контроле обрасца.

Контроле облика су старија технологија. У Екцелу су први пут представљени у верзији 5.0 1993. године. Следеће ћемо радити са ВБА УсерФормсом, али контроле обрасца се не могу користити са њима. Такође нису компатибилне са вебом. Контроле обрасца постављају се директно на површину радног листа. С друге стране, неке АцтивеКс контроле - које сматрамо следећим - не могу се користити директно на радним листовима.

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


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

Нарочито када први пут креирате контролу, нећете имати ВБА макронаредбе који чека да буде повезан са па кликните Ново, а ВБА Едитор ће се отворити са предложеним именом које је већ попуњено у омотач догађаја потпрограм.


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

Да бисте довршили ову веома једноставну апликацију, само упишите ову изјаву ВБА кода унутар Суб:


Ћелије (2, 2) .Валуе = "Кликне дугме обрасца"

АцтивеКс дугме је скоро потпуно исто. Једна разлика је у томе што ВБА овај код смешта у радни лист, а не у посебан модул. Ево комплетног кода догађаја.

Привате Суб ЦоммандБуттон1_Цлицк () Ћелије (4, 2) .Валуе = "Кликнемо АцтивеКс дугме" Енд Суб.

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


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

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

Под Буттон2_Цлицк () УсерФорм1.Схов. Енд Суб.

Примјетићете да је УсерФорм модал подразумевано. То значи да када је образац активан, све остало у апликацији је неактивно. (На пример, кликом на друге тастере не ради се ништа.) Ово можете променити тако што ћете променити својство СховМодал УсерФорм у Фалсе. Али то нас продубљује у програмирање. Следећи чланци из ове серије објасниће више о овоме.

Код за УсерФорм се смешта у УсерФорм објект. Ако изаберете Виев Цоде за све објекте у Пројецт Екплорер-у, видећете да постоје три одвојене потпрограме Цлицк догађаја који се налазе у три различита објекта. Али сви су доступни у истој радној књизи.


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

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

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

ВБА вам омогућава да користите сву снагу једне Оффице апликације у другој. На пример, Ворд има уграђену релативно једноставну способност израчунавања. Али Екцел - добро - "успева" при прорачуну. Претпоставимо да сте желели да у свом Ворд документу користите природни дневник функције Гамма (релативно софистицирани математички прорачун)? Помоћу ВБА можете проследити вредности тој функцији у Екцелу и добити одговор у Ворд документу.

А можете користити и много више од Оффице апликација! Ако кликнете на икону „Више контрола“, видећете значајан списак ствари које су инсталиране на вашем рачунару. Не раде сви ти „изван кутије“ и требало би да имате доступну документацију за сваки од њих, али вам даје идеју о томе колико је подршка ВБА широка.

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

Задњи пут сам сачувао најбоље! Ево технике која се примењује на све Оффицеове апликације. Наћи ћете га много, па ћемо то покрити овде у уводу.

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

Одговор је "Сними макро ..."

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

Многи праве грешку мислећи да морате бити у могућности да снимате тачно програм који вам је потребан. Али то уопште није неопходно да буде тачно. Обично је довољно добро снимити ВБА програм који је управо "близак" ономе што желите, а затим додати модификације кода да бисте омогућили тачан посао. То је тако лако и корисно да ћу понекад снимити десетак програма са малим разликама само да видим какве су разлике у кодовима. Не заборавите да избришете све експерименте када их завршите!

Као пример, кликнуо сам Снимање макронаредбе у програму Ворд Висуал Басиц Едитор и унео неколико редака текста. Ево резултата. (Додавања линија су додата да би их скратила.)

Суб Мацро1 () ' 'Макро1 Макро. ' ' Избор. ТектТект Тект: = _. "Ово су времена која су Избор. ТектТект Тект: = _. "пробај мушке душе. Тхе " Избор. ТектТект Тект: = _. "летњи војник" Избор. ТектТект Тект: = _. "и патриота сунца" Избор. ТектТект Тект: = _. "ће се у овим временима смањити од" Избор. ТектТект Тект: = _. "услуга своје државе." Избор. МовеУп јединица: = вдЛине, број: = 1. Избор. ХомеКеи Унит: = вдЛине. Избор. МовеРигхт јединица: = вдЦхарацтер, _. Цоунт: = 5, Ектенд: = вдЕктенд. Избор. Фонт. Болд = вдТоггле. Енд Суб.

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

-> Почетак коришћења ВБА: Ворд Воркинг Партнер

-> Почетак коришћења ВБА: Екцел радни партнер