Ovdje ćete pronaći nekoliko savjeta koje biste trebali uzeti u obzir kada počnete razvijati vlastita Excel VBA rješenja. Slijeđenje ovih smjernica nije lijek koji će vas zaštititi od problema (programiranja), ali njihovo praćenje može vam pomoći da izbjegnete zamke na koje su drugi naišli.
Deklarirajte sve varijable
Koliko je to zgodno: jednostavno počnite upisivati svoj VBA kod bez potrebe za zamornim deklariranjem svake varijable koju želite koristiti. Iako vam Excel dopušta korištenje nedeklariranih varijabli, to je jednostavno traženje problema.
Prva zapovijed VBA programiranja trebala bi biti ova:
Deklarirati ćete svaku varijablu.
Ako vam nedostaje samodiscipline, dodajte izjavu "Option Explicit" na vrhu svojih modula. Na taj se način vaš kod neće niti pokrenuti ako uključuje jednu ili više nedeklariranih varijabli. Ne deklariranje svih varijabli ima samo jednu prednost: štedite nekoliko sekundi. Ali korištenje nedeklariranih varijabli s vremenom će vas progoniti.
Nemojte brkati lozinke sa sigurnošću
Samo lozinkom zaštitite VBA projekt i sigurni ste, zar ne? Pogrešno.
Korištenje VBA lozinke može spriječiti većinu običnih korisnika da pregledaju vaš kod. Ali ako netko to stvarno želi provjeriti, smislit će kako probiti lozinku.
Poanta? Ako apsolutno morate svoj kod držati u tajnosti, Excel nije najbolji izbor za razvojnu platformu.
Očistite svoj kod
Nakon što vaša aplikacija radi na vaše zadovoljstvo, trebali biste je očistiti. Zadaci održavanja koda uključuju sljedeće:
-
Provjerite je li svaka varijabla deklarirana.
-
Provjerite jesu li svi redovi ispravno uvučeni kako bi struktura koda bila vidljiva.
-
Uklonite sva pomagala za otklanjanje pogrešaka, kao što su MsgBox izjave naredbi Debug.Print.
-
Preimenujte sve loše imenovane varijable. Na primjer, ako koristite varijablu MyVariable, postoji prilično dobra šansa da naziv varijable možete učiniti opisnijim. Kasnije ćeš se zahvaliti.
-
Vaši moduli vjerojatno imaju nekoliko "testnih" postupaka koje ste napisali dok pokušavate nešto shvatiti. Služili su svojoj svrsi, pa ih izbrišite.
-
Dodajte komentare kako biste razumjeli kako kod funkcionira kada ga ponovno pogledate za šest mjeseci.
-
Provjerite je li sve ispravno napisano - posebno tekst u korisničkim obrascima i okvirima za poruke.
-
Provjerite ima li suvišnog koda. Ako imate dvije ili više procedura koje imaju identične blokove koda, razmislite o stvaranju nove procedure koju druge procedure mogu pozvati.
Ne stavljajte sve u jednu proceduru
Želite napraviti nerazumljiv program? Učinkovit način da se to postigne je da sav svoj kod stavite u jednu lijepu veliku proceduru. Ako ikad ponovno posjetite ovaj program kako biste unijeli promjene, sigurno ćete pogriješiti i uvesti neke bugove koji izgledaju fino.
Vidite li problem? Rješenje je modularni kod. Podijelite svoj program na manje dijelove, pri čemu je svaki dio dizajniran za obavljanje određenog zadatka. Nakon što steknete ovu naviku, otkrit ćete da je pisanje koda bez bugova lakše nego ikad.
Razmislite o drugom softveru
Excel je nevjerojatno svestran program, ali nije prikladan za sve. Kada ste spremni za novi projekt, odvojite malo vremena da razmotrite sve svoje mogućnosti. Da parafraziramo staru izreku: "Kada je sve što znate Excel VBA, sve izgleda kao VBA makronaredba."
Nemojte pretpostavljati da svi omogućuju makronaredbe
Kao što znate, Excel vam omogućuje otvaranje radne knjige s onemogućenim makronaredbama. Zapravo, gotovo je kao da dizajneri novijih verzija Excela žele da korisnici onemoguće makronaredbe.
Omogućavanje makronaredbi kada otvorite radnu knjigu iz nepoznatog izvora, naravno, nije dobra ideja. Dakle, morate poznavati svoje korisnike. U nekim korporativnim okruženjima sve su makronaredbe Microsoft Officea onemogućene i korisnik nema izbora u tom pitanju.
Jedna stvar koju treba uzeti u obzir je dodavanje digitalnog potpisa u radne knjige koje distribuirate drugima. Na taj način korisnik može biti siguran da radne knjige zapravo potječu od vas i da nisu mijenjane. Više informacija o digitalnim potpisima potražite u sustavu pomoći.
Steknite naviku eksperimentiranja
Postavljanje jednostavnih eksperimenata gotovo je uvijek puno učinkovitije od uključivanja nove ideje u vaš postojeći kod bez razumijevanja što ti eksperimenti donose.
Nemojte pretpostavljati da će vaš kod funkcionirati s drugim verzijama Excela
Trenutačno se u svijetu obično koristi najmanje pet verzija Excela. Kada izradite Excel aplikaciju, nemate apsolutno nikakvo jamstvo da će raditi besprijekorno u starijim ili novijim verzijama. U nekim slučajevima, nekompatibilnosti će biti očite. Ali također ćete otkriti da stvari koje bi trebale funkcionirati s ranijom verzijom ne rade.
Excel uključuje zgodnu provjeru kompatibilnosti (odaberite Datoteka → Informacije → Provjeri probleme → Provjeri kompatibilnost), ali provjerava samo radnu knjigu i zanemaruje VBA kod. Jedini način da budete sigurni da vaša aplikacija radi s verzijama različitim od one s kojom ste je izradili jest da je testirate u tim verzijama.
Imajte na umu svoje korisnike
Ako razvijate aplikacije za druge, vaš je posao teži jer ne možete donositi iste vrste pretpostavki kao kad razvijate za sebe.
Na primjer, možete biti opušteniji s rukovanjem pogreškama ako ste jedini korisnik. Ako se pojavi pogreška, imat ćete prilično dobru ideju gdje tražiti kako biste je mogli popraviti. Ako netko drugi koristi vašu aplikaciju i pojavi se ista pogreška, on ili ona neće imati sreće. A kada radite s vlastitom aplikacijom, obično možete proći bez uputa.
Morate razumjeti razinu vještina onih koji će koristiti vaše radne bilježnice i pokušati predvidjeti probleme koje bi mogli imati. Pokušajte sebe zamisliti kao novog korisnika svoje aplikacije i identificirajte sva područja koja mogu uzrokovati zbrku ili probleme.
Ne zaboravite na sigurnosne kopije
Ništa nije obeshrabrujuće od pada tvrdog diska bez sigurnosne kopije. Ako radite na važnom projektu, postavite si jednostavno pitanje: "Ako mi večeras umre računalo, što ću izgubiti?" Ako je vaš odgovor više od nekoliko sati rada, morate pomno pogledati postupak izrade sigurnosne kopije podataka. Imate postupak sigurnosne kopije podataka, zar ne?