Când ar trebui să se folosească Macro Recorder?

Codul VBA poate fi creat în două moduri:

  1. se poate utiliza aplicația Macro Recorder (în cele două aplicații - Word și Excel) pentru a înregistra o serie de acțiuni atunci când se lucrează interactiv în aplicație;
  2. se pot tasta instrucțiuni VBA în fereastra Code din Editorul Visual Basic.

Întrebarea este: Când trebuie să fie înregistrată o macrocomandă și când trebuie creat codul de la zero?

Scrierea unei proceduri de la zero este în mod evident mai dificilă și mai avansată decât înregistrarea unei proceduri - deci se va folosi întotdeauna o înregistrare dacă este disponibilă aplicația Macro Recorder.

Folosirea aplicației Macro Recorder are avantaje și dezavantaje.

Avantajele sunt:

    • Macro Recorder creează cod care poate fi folosit de fiecare dată (cu condiția executării macrocomenzii în aceleași condiții în care a fost realizată înregistrarea).
    • Este rapid și ușor de folosit.
    • Permite descoperirea obiectelor, metodelor și proprietăților VBA care corespund unei părți din interfața aplicației.

Dezavantaje:

    • Codul creat în Macro Recorder poate conține instrucțiuni care nu sunt necesare, pentru că Macro Recorder înregistrează orice se face în aplicație – inclusiv toate opțiunile din ferestrele de dialog folosite la înregistrarea macrocomenzii. De exemplu, dacă se pornește Macro Recorder din Word, apoi se alege Tools > Options pentru a afișa fereastra de dialog Options, secțiunea View, la clic pe secțiunea Edit pentru a afișa pagina Edit și la modificarea doar a setării Auto-Keyboard Switching, Macro Recorder va înregistra toate setările din secțiunile Edit și View.

Astfel, în cod sunt adăugate încă 40 de linii care nu sunt necesare. (Dacă sunt accesate și alte secțiuni ale ferestrei de dialog Options, Macro Recorder va înregistra toate setările din acele secțiuni.)

La crearea manuală a codului în Visual Basic Editor, se poate obține același efect folosind o singură instrucțiune în loc de 40 (sau mai multe). Totuși, codul suplimentar sau redundant nu cauzează probleme – rulează la fel ca în versiunea de editare. Însă este mai greu să se citească și să se mențină codul.

    • Codul creat cu Macro Recorder poate fi folosit doar în documentul activ (cel vizibil la un moment dat) deoarece în oricare document se lucrează, macrocomanda va lucra automat în documentul activ. Ulterior se va descrie folosirea obiectelor din aplicație pentru a lucra cu alte documente decât cel activ. Lucrul cu alte documente poate avea și avantaje; de exemplu, codul va rula mai rapid, sau modificările pot fi ascunse de utilizator pentru a nu-l deranja.
    • Macro Recorder poate crea cod VBA numai pentru unele dintre acțiunile efectuate în aplicația gazdă. De exemplu, pentru a afișa o casetă de dialog sau un formular de utilizator în cursul unei proceduri, instrucțiunea corespunzătoare trebuie scrisă manual – ea nu se poate înregistra. Subgrupul acțiunilor VBA disponibile prin intermediul aplicației Macro Recorder este similar cu setul de acțiuni care poate fi luat în aplicația gazdă atunci când se lucrează în mod interactiv, pentru a realiza multe lucruri. Cu toate acestea, înregistrarea unei macrocomenzi este limitată în comparație cu întreaga gamă de acțiuni care se poate efectua prin VBA.

Totuși, orice expert în VBA poate considera Macro Recorder ca fiind un instrument util pentru crearea de macrocomenzi exacte și corecte sau bazate pe proceduri mai complexe. Adesea o înregistrare a unei macrocomenzi poate scuti mult din efortul de a crea o procedură. De asemenea, se poate economisi timp utilizând Macro Recorder, pentru a identifica rapid obiectul sau proprietatea VBA de care este nevoie.

În plus, Macro Recorder se poate folosi pentru a învăța cum se scrie cod. Macro Recorder scrie întotdeauna sintaxa corectă.