Crearea propriilor funcții

În secțiunea Folosirea funcțiilor încorporate (Built-In), s-a descris folosirea funcțiilor încorporate (built-in) din VBA. Mai jos este descris modul în care se pot creea propriile funcții.

Crearea unei funcții este asemănătoare cu crearea unei subproceduri: scriind cod în fereastra Code.

(O funcție nu poate fi înregistrată în Excel sau Word – aplicațiile care includ Macro Recorder. Funcțiile trebuie scrise, pentru că Recorder creează doar subproceduri.)

Este important să reamintim că, deși ambele sunt proceduri, funcțiile VBA diferă de subrutine. Diferența principală este că funcțiile interacționează mai mult cu alte proceduri. Funcțiile acceptă argumente (date de intrare) din procedura care le apelează și returnează o valoare (date de ieșire) procedurii care le apelează. În schimb, procedurile, nu necesită în mod normal argumente și nu returnează niciodată date.

Dar în VBA funcțiile sunt utilizate mult mai rar decât procedurile. Majoritatea macrocomenzilor sunt de sine stătătoare. Acest lucru se datorează faptului că majoritatea macrocomenzilor sunt mici și scurte automatizări: efectuează joburi simple și rapide, cum ar fi introducerea unei date într-un document sau salvarea unui document folosind un anumit nume de fișier. În aceste situații, nu este nevoie ca procedura să returneze date.

Dar VBA nu se limitează la realizarea de macrocomenzi scurte. În VBA pot fi create programe mai complexe, mai mari și mai sofisticate. Și la crearea unui proiect mare se folosesc mai multe proceduri, nu doar una singură. Acest lucru vă permite împărțirea muncii în mai multe unități logice care pot fi testate individual și mai ușor de modificat. Cu toate acestea, când se folosesc mai multe proceduri, ele trebuie să lucreze împreună și uneori trebuie să comunice între ele. Acesta este motivul pentru care deseori în proiectele mari se folosesc funcții. Caracteristica cheie a unei funcții este aceea că facilitează comunicarea - transmiterea valorilor înainte și înapoi - între mai multe proceduri.