Овде ћете пронаћи неке савете које треба да узмете у обзир када почнете да развијате сопствена Екцел ВБА решења. Праћење ових смерница није лек који ће вас сачувати од проблема (програмирања), али њихово поштовање може вам помоћи да избегнете замке на које су други наишли.
Декларисајте све варијабле
Колико је то згодно: Једноставно почните да куцате свој ВБА код без потребе да пролазите кроз досадан посао декларисања сваке променљиве коју желите да користите. Иако вам Екцел дозвољава да користите недекларисане варијабле, то је једноставно тражење проблема.
Прва заповест ВБА програмирања би требало да буде следећа:
Декларисаћете сваку променљиву.
Ако вам недостаје самодисциплина, додајте изјаву „Оптион Екплицит“ на врху својих модула. На тај начин, ваш код се неће ни покренути ако садржи једну или више недекларисаних променљивих. Не декларисање свих променљивих има само једну предност: штедите неколико секунди. Али коришћење недекларисаних променљивих ће се на крају вратити да вас прогања.
Не мешајте лозинке са безбедношћу
Само лозинком заштитите ВБА пројекат и сигурни сте, зар не? Погрешно.
Коришћење ВБА лозинке може спречити већину обичних корисника да прегледају ваш код. Али ако неко заиста жели да то провери, смислиће како да провали лозинку.
Суштина? Ако апсолутно морате да сачувате свој код у тајности, Екцел није најбољи избор за развојну платформу.
Очистите свој код
Након што ваша апликација ради на ваше задовољство, требало би да је очистите. Задаци одржавања кода укључују следеће:
-
Уверите се да је свака променљива декларисана.
-
Уверите се да су све линије правилно увучене како би структура кода била очигледна.
-
Уклоните сва помагала за отклањање грешака, као што су МсгБок изјаве за Дебуг.Принт изјаве.
-
Преименујте све лоше именоване променљиве. На пример, ако користите променљиву МиВариабле, постоји прилично добра шанса да назив променљиве учините описнијим. Касније ћеш се захвалити себи.
-
Ваши модули вероватно имају неколико „тестних“ процедура које сте написали док покушавате да нешто схватите. Служили су својој сврси, па их избришите.
-
Додајте коментаре да бисте разумели како код функционише када га поново посетите за шест месеци.
-
Уверите се да је све исправно написано — посебно текст у корисничким обрасцима и оквирима за поруке.
-
Проверите да ли има сувишног кода. Ако имате две или више процедура које имају идентичне блокове кода, размислите о креирању нове процедуре коју друге процедуре могу позвати.
Не стављајте све у једну процедуру
Желите да направите неразумљив програм? Ефикасан начин да се то постигне је да сав свој код ставите у једну лепу велику процедуру. Ако икада поново посетите овај програм да бисте извршили измене, сигурно ћете погрешити и увести неке грешке које изгледају лепо.
Видите ли проблем? Решење је модуларни код. Поделите свој програм на мање делове, при чему је сваки део дизајниран да изврши одређени задатак. Након што стекнете ову навику, открићете да је писање кода без грешака лакше него икад.
Размотрите други софтвер
Екцел је невероватно свестран програм, али није погодан за све. Када будете спремни да предузмете нови пројекат, одвојите мало времена да размотрите све своје могућности. Да парафразирамо стару изреку: „Када је све што знате Екцел ВБА, све изгледа као ВБА макро.
Немојте претпостављати да сви омогућавају макрое
Као што знате, Екцел вам омогућава да отворите радну свеску са онемогућеним макроима. У ствари, то је скоро као да дизајнери новијих верзија Екцел-а желе да корисници онемогуће макрое.
Омогућавање макроа када отворите радну свеску из непознатог извора, наравно, није добра идеја. Дакле, морате знати своје кориснике. У неким корпоративним окружењима, сви Мицрософт Оффице макрои су онемогућени и корисник нема избора по том питању.
Једна ствар коју треба размотрити је додавање дигиталног потписа у радне свеске које дистрибуирате другима. На тај начин, корисник може бити сигуран да радне свеске заиста потичу од вас и да нису мењане. Консултујте систем помоћи за више информација о дигиталним потписима.
Стекните навику да експериментишете
Постављање једноставних експеримената је скоро увек много ефикасније од уградње нове идеје у постојећи код без разумевања шта ти експерименти доносе.
Немојте претпостављати да ће ваш код радити са другим верзијама програма Екцел
Тренутно се најмање пет верзија Екцел-а обично користи широм света. Када креирате Екцел апликацију, немате апсолутно никакву гаранцију да ће она радити беспрекорно у старијим или новијим верзијама. У неким случајевима, некомпатибилности ће бити очигледне. Али такође ћете открити да ствари које би требало да раде са ранијом верзијом не раде.
Екцел укључује згодну проверу компатибилности (изаберите Датотека → Информације → Провери проблеме → Провери компатибилност), али само проверава радну свеску и игнорише ВБА код. Једини начин да будете сигурни да ваша апликација ради са верзијама другачијим од оне са којом сте је креирали јесте да је тестирате у тим верзијама.
Имајте на уму своје кориснике
Ако развијате апликације за друге, ваш посао је тежи јер не можете да правите исте врсте претпоставки као када развијате за себе.
На пример, можете бити опуштенији са руковањем грешкама ако сте једини корисник. Ако се појави грешка, имаћете прилично добру идеју где да тражите да бисте је могли поправити. Ако неко други користи вашу апликацију и појави се иста грешка, он или она неће имати среће. А када радите са сопственом апликацијом, обично можете да прођете без инструкција.
Морате да разумете ниво вештина оних који ће користити ваше радне свеске и покушати да предвидите проблеме које би могли имати. Покушајте да замислите себе као новог корисника ваше апликације и идентификујте све области које могу изазвати забуну или проблеме.
Не заборавите на резервне копије
Ништа није обесхрабрујуће од пада чврстог диска без резервне копије. Ако радите на важном пројекту, поставите себи једноставно питање: „Ако ми рачунар умре вечерас, шта ћу изгубити?“ Ако је ваш одговор више од неколико сати рада, потребно је да пажљиво погледате процедуру прављења резервне копије података. Имате процедуру прављења резервних копија података, зар не?