Înțelegerea variabilelor și constantelor în macrocomenzile Excel

În acest articol, veți afla ce constante și variabile sunt în macrocomenzi, unde pot fi utilizate și care este principala diferență între diferitele tipuri de date. De asemenea, va fi dezvăluit de ce sunt necesare constante, dacă puteți doar să scrieți o variabilă și să nu o schimbați niciodată.

Ca și alte limbaje de programare, datele pot fi stocate în variabile sau constante (ambele sunt adesea denumite containere de date). Aceasta este principala diferență dintre aceste concepte. Primul se poate schimba în funcție de ceea ce se întâmplă în program. La rândul lor, constantele sunt setate o dată și nu își schimbă valoarea.

Constantele pot fi utile dacă trebuie să utilizați aceeași valoare mare de mai multe ori. În loc să copiați numărul, puteți scrie pur și simplu numele constantei. De exemplu, puteți folosi constanta „Pi” pentru a stoca Pi, care este o valoare constantă. Este foarte mare și de fiecare dată este destul de dificil să îl scrieți sau să îl căutați și să îl copiați. Și așa, este suficient să scrieți două caractere, iar mediul folosește automat numărul dorit.

Utilizatorul Excel trebuie să declare variabile dacă trebuie să modifice din când în când valoarea stocată în ele. De exemplu, puteți seta o variabilă numită sVAT_Rate, care va stoca cota actuală de TVA pentru produs. Dacă se schimbă, îl puteți corecta rapid. Acest lucru este util în special pentru cei care fac afaceri în Statele Unite ale Americii, unde este posibil ca unele bunuri să nu fie deloc supuse TVA-ului (și această taxă diferă și de la stat la stat).

Tipuri de date

Fiecare container de date poate fi unul din mai multe tipuri. Iată un tabel care descrie tipurile standard de informații procesate. Sunt multe dintre ele și unui începător i se poate părea inițial că se repetă. Dar acesta este un sentiment iluzoriu. Citiți mai departe pentru a afla de ce este atât de importantă specificarea tipului corect de date.

Nu se recomandă utilizarea unui tip de date care ocupă mai mult spațiu în memorie pentru numere mici. De exemplu, pentru numărul 1, este suficient să folosiți tipul Byte. Acest lucru va avea un efect pozitiv asupra performanței modulului executabil, în special pe computerele slabe. Dar este important să nu mergem prea departe aici. Dacă utilizați un tip de date prea compact, este posibil ca o valoare supradimensionată să nu încapă în el.

Declararea constantelor și variabilelor

Utilizarea unui container de date fără a-l declara mai întâi este descurajată. Atunci pot apărea o serie de probleme, pentru a evita care este necesar să scrieți câteva linii mici de cod cu enumerarea variabilelor sau constantelor.

Pentru a declara o variabilă, se folosește instrucțiunea Dim. De exemplu, așa:

Dim Variable_Name ca întreg

Variable_Name este numele variabilei. În continuare, este scris operatorul As, indicând tipul de date. În loc de șirurile „Variable_Name” și „Integer”, puteți introduce propriul nume și tip de date.

Se pot declara și constante, dar mai întâi trebuie să specificați valoarea lor. Una dintre variante este:

Const iMaxCount = 5000

În mod corect, în unele cazuri puteți face fără declararea unei variabile, dar în acest caz li se va atribui automat tipul Variant. Cu toate acestea, acest lucru nu este recomandat din următoarele motive:

  1. Varianta este procesată mult mai lent, iar dacă există multe astfel de variabile, procesarea informațiilor poate fi încetinită semnificativ pe computerele slabe. S-ar părea că acele secunde vor decide? Dar dacă trebuie să scrieți un număr mare de linii de cod și apoi să îl rulați și pe computere slabe (care sunt încă vândute, având în vedere că suitele moderne de birou necesită multă memorie RAM), puteți opri complet munca. Există cazuri în care scrierea prost concepută a macrocomenzilor a dus la înghețarea cărților inteligente care au o cantitate mică de RAM și nu sunt concepute pentru a îndeplini sarcini complexe. 
  2. Sunt permise greșelile de tipărire în nume, care pot fi prevenite prin utilizarea instrucțiunii Option Explicit, care vă permite să găsiți o variabilă nedeclarată, dacă este găsită una. Aceasta este o modalitate ușoară de a detecta erorile, deoarece cea mai mică greșeală de tipar face ca interpretul să nu poată identifica variabila. Și dacă activați modul de declarare a variabilelor, interpretul pur și simplu nu vă va permite să rulați macro-ul dacă sunt găsite containere de date care nu au fost declarate chiar la începutul modulului.
  3. Evitați erorile cauzate de valorile variabilelor care nu se potrivesc cu tipul de date. În mod normal, atribuirea unei valori de text unei variabile întregi va genera o eroare. Da, pe de o parte, un tip generic este atribuit fără declarație, dar dacă sunt declarate în prealabil, atunci erorile aleatoare pot fi evitate.

Prin urmare, în ciuda tuturor, este foarte recomandat să declarați toate variabilele în macrocomenzi Excel.

Mai este un lucru de reținut atunci când declarați variabile. Este posibil să nu atribuiți nicio valoare unei variabile atunci când o declarați, dar în acest caz dobândește o valoare implicită. De exemplu:

  1. Liniile sunt goale.
  2. Numerele iau valoarea 0.
  3. Variabilele de tip boolean sunt considerate inițial false.
  4. Data implicită este 30 decembrie 1899.

De exemplu, nu trebuie să atribuiți valoarea 0 unei variabile întregi dacă nu a fost specificată anterior nicio valoare. Ea conține deja acest număr.

Opțiune Declarație explicită

Această declarație vă permite să declarați toate variabilele care sunt utilizate în codul VBA și să determinați prezența oricăror containere nedeclarate înainte ca codul să fie rulat. Pentru a utiliza această caracteristică, pur și simplu scrieți o linie de cod Option Explicit în partea de sus a codului macro.

Dacă trebuie să includeți această declarație în cod de fiecare dată, puteți face acest lucru folosind o setare specială în editorul VBA. Pentru a activa această opțiune, trebuie să:

  1. Accesați mediul de dezvoltare de-a lungul căii – Instrumente > Opțiuni.
  2. În fereastra care se deschide după aceasta, deschideți fila Editor.
  3. Și, în sfârșit, bifați caseta de lângă elementul Solicitați declarația variabilă.

După finalizarea acestor pași, faceți clic pe butonul „OK”. 

Asta e, acum, la scrierea fiecărei macrocomenzi noi, această linie va fi inserată automat în partea de sus a codului.

Domeniul de aplicare al constantelor și variabilelor

Fiecare variabilă sau constantă are doar un domeniu limitat. Depinde unde o declari.

Să presupunem că avem o funcție Cost total(), și folosește variabila sVAT_Rate. În funcție de poziția din modul, acesta va avea un domeniu de aplicare diferit:

Opțiune explicită

Dim sVAT_Rate As Single

Funcția Total_Cost() ca dublu

.

.

.

Sfârşit Funcţia

Dacă o variabilă este declarată în partea de sus a unui modul însuși, ea se propagă prin acel modul. Adică poate fi citit prin fiecare procedură.

Mai mult, dacă una dintre proceduri a modificat valoarea variabilei, atunci următoarea va citi și această valoare corectată. Dar în alte module această variabilă încă nu va fi citită.

Opțiune explicită

Funcția Total_Cost() ca dublu

Dim sVAT_Rate As Single

   .

   .

   .

Sfârşit Funcţia

În acest caz, variabila este declarată în interiorul procedurii, iar interpretul va arunca o eroare dacă este folosită într-o altă procedură.

Dacă doriți ca variabila să fie citită de alte module, trebuie să utilizați cuvântul cheie Public în loc de cuvântul cheie Dim. În mod similar, puteți limita domeniul de aplicare al unei variabile doar la modulul curent folosind instrucțiunea Public, care este scrisă în locul cuvântului Dim.

Puteți seta domeniul de aplicare a constantelor într-un mod similar, dar cuvântul cheie aici este scris împreună cu operatorul Const.

Iată un tabel cu un exemplu bun despre cum funcționează cu constante și variabile.

Opțiune explicită

Public sVAT_Rate As Single

Public Const iMax_Count = 5000

În acest exemplu, puteți vedea cum este folosit cuvântul cheie Public pentru a declara o variabilă și ce trebuie să scrieți în editorul Visual Basic pentru a declara o constantă publică. Domeniul de aplicare al acestor containere de valoare se aplică tuturor modulelor.
Opțiune explicită

Private sVAT_Rate As Single

Private Const iMax_Count = 5000

Aici, variabilele și constantele sunt declarate folosind cuvântul cheie Private. Aceasta înseamnă că pot fi văzute numai în modulul curent, iar procedurile din alte module nu le pot folosi.

De ce sunt necesare constante și variabile

Utilizarea constantelor și variabilelor vă permite să creșteți gradul de înțelegere a codului. Și dacă începătorii în general nu au întrebări despre motivul pentru care sunt necesare variabile, atunci există multe ambiguități în ceea ce privește nevoia de constante. Și această întrebare pare, la prima vedere, destul de logică. La urma urmei, puteți declara o variabilă o dată și nu o mai schimbați niciodată.

Răspunsul se dovedește a fi undeva în același plan ca și în ceea ce privește utilizarea tipurilor de date care ocupă un spațiu mare în memorie. Dacă avem de-a face cu un număr mare de variabile, putem schimba accidental un container existent. Dacă utilizatorul prescrie că o anumită valoare nu se va schimba niciodată, atunci mediul va controla automat acest lucru.

Acest lucru este deosebit de important atunci când macro-ul este scris de mai mulți programatori. Se poate ști că o variabilă nu ar trebui să se schimbe. Iar celălalt nu este. Dacă specificați operatorul Const, un alt dezvoltator va ști că această valoare nu se modifică.

Sau, dacă există o constantă cu un nume, iar variabila are un nume diferit, dar similar. Dezvoltatorul le poate confunda pur și simplu. De exemplu, o variabilă care nu trebuie schimbată se numește Variabila11, iar alta care poate fi editată se numește Variabila1. O persoană poate automat, când scrie cod, să sari peste o unitate suplimentară și să nu o observe. Ca urmare, containerul pentru valori va fi schimbat, care nu trebuie atins.

Sau dezvoltatorul însuși poate uita ce variabile poate atinge și pe care nu. Acest lucru se întâmplă adesea când codul este scris timp de câteva săptămâni, iar dimensiunea acestuia devine mare. În acest timp, este foarte ușor să uiți chiar și ce înseamnă cutare sau cutare variabilă.

Da, poti face cu comentarii in aceasta situatie, dar nu este mai usor sa precizezi cuvantul Const?

Concluzii

Variabilele sunt o componentă esențială a programării macro, care vă permit să efectuați operații complexe, de la calcule până la informarea utilizatorului despre anumite evenimente sau specificarea unor valori specifice în celulele unei foi de calcul.

Constantele ar trebui folosite dacă dezvoltatorul știe cu siguranță că conținutul acestor containere nu se va schimba în viitor. Se recomandă să nu folosiți în schimb variabile, deoarece este posibil să faceți o greșeală accidentală.

Lasă un comentariu