Čini se da sam godinama izazivao određenu tjeskobu zbog svog kontroverznog stava da Izričita opcija nije korisna u VBA-u. Na to sam se podsjetio nedavno kada sam održao Skype sesiju na Excel Weekendu u Brazilu. Napisao sam knjigu o programu Excel VBA za QUE. Ta je knjiga prevedena na portugalski za tržište Brazila. Dakle, očito sam 15 godina poučavao dobre ljude iz Brazila o Excel VBA-u. Sad kad sam 15 godina stariji i mudriji, priznat ću da mogu postojati dobri razlozi za upotrebu eksplicitne opcije.
U Notre Dameu pohađao sam poslovne tečajeve s velikom koncentracijom u programiranju. Čudnim spletom okolnosti pohađao sam sve tečajeve programiranja dostupne u ND-u i iz tehničke i iz poslovne škole. Naučio sam Fortrana, Pascala, Assemblera i COBOL-a. Voljela sam programirati. Ti su tečajevi programiranja spasili moj prosjek uspjeha i spriječili me da me izbace. Nekada su nam profesori rekli da moramo planirati svoj program i ručno crtati dijagrame toka prije nego što započnemo s kodiranjem. Bio sam buntovnik. Prvo bih napisao program, a zatim nacrtao dijagram toka nakon što sam završio.
Prvih 18 mjeseci karijere proveo sam pišući programe COBOL. Ali onda sam prešao u financije i proveo deset godina radeći u financijama i računovodstvu. Radio sam uglavnom računovodstvene poslove, ali kad sam trebao napisati neki kod, znao sam dovoljno da napišem neki kod.
Programirao sam makronaredbe u Lotusu 1-2-3, a zatim sam počeo pisati VBA makronaredbe nakon što smo se 1995. prebacili na Excel. Tada sam se još uvijek pobunio: deklariranje svojih varijabli prije vremena činilo mi se previše poput crtanja dijagrama prije pisanja koda. Nikad nisam onaj koji planira unaprijed. Zaronite. Započnite s kodiranjem. Ako vam je negdje na putu potrebna nova varijabla, jednostavno stvorite varijablu.
Bio sam buntovnik, prvo sam napisao kôd, a kasnije nacrtao dijagram. Izjava o varijablama, tvrdila sam, je za formalne programere. Ako radite u Računovodstvu i jednostavno izbacujete 20 redaka koda, nema razloga da svoje varijable prijavite prije vremena.
Moje me stajalište o tome navelo na prijateljske rasprave s drugim Excel stručnjacima. Jordan Goldmeier. Bob Phillips. Cristiano Galvão.
Prvo, uvijek sam preporučivao deklariranje vaših objektnih varijabli. U donjem kodu WSD se deklarira kao radni list i dodjeljuje pomoću naredbe Set. Ako deklarirate objektnu varijablu, možete pregledavati sva svojstva i metode upisivanjem varijable nakon koje slijedi točka.
![](https://cdn.wiki-base.com/4385379/when_it_makes_sense_to_use_option_explicit_-_excel_tips_2.jpg.webp)
Ako ne upotrebljavate eksplicitnu opciju, riskirate pravopisne pogreške. U donjem kodu kreira se varijabla pod nazivom FinalRow. U sljedećem sam retku vjerojatno mislio spojiti s 2 na FinalRow, ali pogrešno sam upisao varijablu kao Fina1Row.
![](https://cdn.wiki-base.com/4385379/when_it_makes_sense_to_use_option_explicit_-_excel_tips_3.jpg.webp)
Bez izričite opcije, netko možda neće shvatiti da je tisak tu. Varijabla FinalRow može sadržavati 100. Ali kôd unutar petlje neće se izvršiti jer varijabla Fina1Row nikada nije inicijalizirana i sadržavat će nulu.
Da biste spriječili frustraciju otklanjanja pogrešaka u kodu s potencijalnim pogreškama pri upisu, možete otvoriti Alati, Opcije u izborniku VBA. Odaberite dolje prikazan okvir Zahtijevaj izjavu varijable.
![](https://cdn.wiki-base.com/4385379/when_it_makes_sense_to_use_option_explicit_-_excel_tips_4.jpg.webp)
Svi budući moduli započet će linijom koja kaže Option Explicit. Morat ćete dodati nove retke na vrhu makronaredbe koji definiraju varijable FinalRow i i. Excel vam neće reći o pravopisnoj pogrešci dok zapravo ne pokušate pokrenuti makronaredbu. Zatim će vas upozoriti da varijabla nije definirana.
![](https://cdn.wiki-base.com/4385379/when_it_makes_sense_to_use_option_explicit_-_excel_tips_5.jpg.webp)
Dakle, to je vaš poziv. Ako vam ne smeta planirati unaprijed i prijaviti sve svoje varijable, imat će vam sigurnosnu mrežu VBA koja vam kaže ako ste pogrešno upisali varijablu. Za mene je draže uzbuđenje otklanjanja pogrešaka u retku koda i pronalaženje vlastitih pogrešaka pri kucanju sam. Ali ako vam se ne da opasno živjeti, slobodno omogućite Option Explicit.
Nisam baš siguran jesu li moji postupci uključivali korake 5, 8 ili 9 od 12 koraka. Ali ako je netko proveo dodatno vrijeme otklanjajući pogreške u svom kodu zbog pogreške pri tipkanju, žao mi je što sam vam nanio tu bol.
Svake subote raspravljat ću o jednoj od svojih loših navika u Excelu i raspravljati o tome zašto biste možda trebali raditi ono što kažem umjesto onog što radim ja.
Excel misao dana
Pitao sam svoje prijatelje Excel Master za savjet o Excelu. Današnja misao za razmišljanje:
"Ne mijenjajte programere proračunskih tablica sredinom pregovora."
Jordan Goldmeier