- Configurarea corectă a Centrului de autorizare și a opțiunilor macro este esențială pentru echilibrarea securității și productivității în Excel.
- Utilizarea locațiilor de încredere și a certificatelor digitale vă permite să rulați doar cod VBA din surse verificate.
- Bunele practici de programare în VBA îmbunătățesc performanța macrocomenzilor și facilitează auditarea și întreținerea acestora.
- Macrocomenzile coexistă astăzi cu alternative precum Power Automate, JavaScript sau Python, dar toate necesită o gestionare responsabilă a securității.
Macrocomenzile din Excel sunt o minune pentru automatizarea sarcinilor repetitive și economisiți mult timpTotuși, acestea pot deveni și un punct de intrare pentru viruși și cod rău intenționat dacă nu sunt gestionate corespunzător. Prin urmare, înțelegerea modului în care funcționează securitatea macrocomenzilor, a opțiunilor oferite de Excel și a modului de configurare corectă a acestora este esențială pentru a lucra cu liniște sufletească, fără a vă pune în pericol computerul sau datele.
Pe parcursul acestui articol vom vedea în detaliu Toate opțiunile de securitate legate de macrocomenzi în Excel, utilizarea certificatelor digitale, locațiile de încredere, modul în care funcționează Centrul de încredere și câteva trucuri pentru a optimiza și proteja codul VBAVei vedea, de asemenea, cum să reacționezi atunci când vezi avertismente precum „Microsoft a blocat macrocomenzile deoarece sursa acestui document nu este de încredere” și ce pași suplimentari poți lua pentru a reduce riscurile fără a renunța la puterea macrocomenzilor.
Ce sunt macrocomenzile în Excel și de ce afectează securitatea?
În Excel, o macrocomandă este pur și simplu o o secvență de instrucțiuni scrise în VBA (Visual Basic for Applications) care este stocat într-un modul din registrul de lucru. De fiecare dată când înregistrați sau programați o macrocomandă, Excel generează cod VBA care este apoi executat pe obiecte precum registre de lucru, foi de calcul, intervale, tabele pivot sau diagrame.
Încă din primele sale versiuni, Excel a permis crearea de macrocomenzi în Fișiere speciale cu extensia .XLMMai târziu, odată cu apariția VBA (începând cu Excel 5.0 și popularizat după Excel 97), a început să fie utilizat un editor proprietar foarte similar cu Visual Studio, unde puteți scrie și depana codul. VBA este un limbaj încorporat în Office, în timp ce Visual Basic (VB) este un limbaj de programare orientat pe obiecte independent; ele au aceeași sintaxă, dar setul de obiecte disponibile este diferit.
Fiecare registru de lucru Excel care conține cod VBA este salvat, începând cu Excel 2007, într-un format special cu extensia . .xlsmFormatul standard fără macrocomenzi este .xlsxBazat pe Office Open XML. *XLSX* este mai sigur în sensul că Nu acceptă cod VBA sau controale ActiveX.Acest lucru reduce suprafața de atac. Vechiul format .xls a devenit practic învechit odată cu adoptarea XML ca structură internă de fișiere.
Motivul pentru care Microsoft ia atât de în serios securitatea macro este istoric: A fost o vreme când macrovirusurile erau extrem de populareAceștia au profitat de faptul că utilizatorii deschideau fără să știe registre de lucru care conțineau cod rău intenționat și, de acolo, infectau alte fișiere sau sistemul de operare în sine. Astăzi, Excel presupune că orice fișier cu macrocomenzi Poate fi potențial periculos, mai ales dacă provine de pe internet, atașamente la e-mailuri sau locații nesigure.
Opțiuni de securitate pentru macrocomenzi în Excel și Centrul de autorizare
Excel centralizează toate opțiunile de protecție legate de macrocomenzi, surse de fișiere și conținut activ într-un panou specific numit Centrul de încredereDe acolo, puteți decide ce nivel de securitate doriți să aplicați macrocomenzilor, ce foldere sunt considerate sigure și cum sunt gestionate alertele la deschiderea documentelor suspecte.
Pentru a accesa setările generale, în versiunile moderne de Excel puteți merge la fila Fișier > Opțiuniși, în meniul lateral, selectați Centrul de încredereÎnăuntru, veți vedea un buton numit Setări Centru de încrederecare deschide o casetă de dialog cu mai multe secțiuni, inclusiv „Setări macrocomandă” și „Locații de încredere”.
Dacă lucrați în mod regulat cu VBA, este foarte util să aveți fila pentru dezvoltatori vizibilă. În Excel 2013 și versiunile ulterioare, se numește dezvoltator (Dezvoltator), în timp ce în Excel 2007 și 2010 se numea programator. Această filă este ascunsă în mod implicit.Deci va trebui să îl activați din Fișier > Opțiuni > Personalizare panglică > Filele principale, bifând caseta „Dezvoltator” și făcând clic pe OK.
După ce ați vizibil fila Dezvoltator, în grupul „Cod” veți găsi butonul Macro securitate, care vă duce direct la Centrul de autorizare, mai exact la secțiunea unde puteți configura comportamentul macrocomenzilor VBA și al altor opțiuni de securitate specifice.
Tipuri de configurare de securitate pentru macrocomenzi VBA
În secțiunea „Setări macro” din Centrul de autorizare, veți găsi mai multe opțiuni care controlează ce macrocomenzi pot fi rulate și în ce condițiiAlegerea uneia sau alteia are consecințe directe asupra siguranței și ușurinței în utilizare.
Cea mai restrictivă opțiune este „Dezactivați macrocomenzile VBA fără notificare”Cu această configurație, Excel blochează silențios execuția oricărei macrocomenzi, fără a afișa mesaje sau a permite activarea manuală a acestora. Singura modalitate prin care macrocomenzile vor rula în acest scenariu este dacă fișierul se află într-un folder marcat ca locație de încredere.Este o opțiune foarte sigură, potrivită în medii în care macrocomenzile sunt rareori utilizate sau unde se dorește un control strict.
Apoi există opțiunea „Dezactivați macrocomenzile VBA cu notificare”care este setarea implicită în multe instalări. În acest caz, când deschideți un registru de lucru cu macrocomenzi, Excel afișează o bară de avertizare sub panglică care indică faptul că a fost dezactivat conținutul activ.De asemenea, oferă un buton pentru activarea macrocomenzilor dacă aveți încredere în fișier. Este una dintre cele mai recomandate alternative, deoarece oferă un echilibru rezonabil între securitate și flexibilitate.
O variantă mai specifică este „Dezactivați macrocomenzile VBA, cu excepția celor semnate digital”Această configurație blochează toate macrocomenzile care nu sunt semnate cu un certificat recunoscut, dar Vă permite să rulați automat macrocomenzi semnate de editori de încredere.Acest lucru este foarte util în companiile sau organizațiile în care dezvoltatorii corporativi își semnează codul VBA cu certificate interne sau comerciale și numai acele surse ar trebui să fie de încredere. Puteți completa această politică cu soluții pentru Blocarea macrocomenzilor nesemnate folosind GPO și Intune în mediile corporative.
În cele din urmă, avem opțiunea „Activați toate macrocomenzile VBA (nerecomandat)”Această alternativă vă permite să rulați orice macrocomandă din orice fișier imediat ce îl deschideți. fără a afișa avertismente sau a cere confirmareDeși ar putea fi tentant să eviți avertismentele, acest lucru prezintă un risc foarte mare de infectare cu programe malware și ar trebui utilizat doar în medii extrem de controlate și izolate. Microsoft declară în mod explicit că această configurație nu este recomandată.
În versiunile moderne veți vedea și o casetă legată de Macrocomenzi Excel 4.0 (XLM)Aceste macrocomenzi sunt anterioare VBA și sunt dezactivate în mod implicit, deoarece au fost utilizate în atacuri recente. Ar trebui să le activezi doar dacă știi cu adevărat ce faci și ai nevoie de compatibilitate cu cărți mai vechi.Dacă aveți nevoie de asistență pentru XLM, puteți verifica cum Activarea compatibilității cu macrocomenzile vechi și VBA în Office.
Alte opțiuni critice: Excel 4.0 și acces la modelul de obiecte
Pe lângă opțiunile principale pentru activarea sau blocarea macrocomenzilor VBA, Excel oferă câteva setări suplimentare care au un impact semnificativ asupra securității. Una dintre acestea este caseta de selectare pentru Activarea macrocomenzilor Excel 4.0 (XLM) atunci când macrocomenzile VBA sunt activateDupă cum am menționat, aceasta este o tehnologie moștenită care poate fi încă prezentă în fișiere foarte vechi.
În mod implicit, aceste macrocomenzi XLM sunt complet dezactivate deoarece au fost detectate campanii de malware care le utilizează. Ar trebui să bifați această casetă numai dacă aveți o nevoie specifică de a rula macrocomenzi XLM și fișierul provine dintr-o sursă extrem de fiabilă.În orice alt caz, cel mai prudent lucru de făcut este să îl lăsați dezactivat.
O altă opțiune delicată este cea care apare ca „Acordarea de încredere accesului la modelul de obiect al proiectului VBA”Această configurație permite ca cod extern sau programe automate accesează mediul Office VBA pentru a manipula proiecte, module și cod. Cu alte cuvinte, deschide ușa pentru ca alte aplicații să vă controleze macrocomenzile din exterior.
Acest tip de acces poate fi necesar în scenarii avansate de automatizare, dar crește semnificativ și suprafața de atac. Prin urmare, recomandarea generală este Păstrați această casetă întotdeauna nebifatăCu excepția unor cazuri foarte specifice, în medii complet controlate, activarea acesteia vă expune în mod inutil riscului ca codul rău intenționat să exploateze această cale pentru a injecta sau modifica macrocomenzi.
De asemenea, țineți cont de opțiunile de securitate macro din Excel. Acestea nu sunt partajate cu restul aplicațiilor OfficeCu alte cuvinte, ceea ce configurați în Centrul de autorizare Excel afectează doar această aplicație; CuvântPowerPoint etc. au propriile setări echivalente.
Locații de încredere: foldere în care macrocomenzile rulează fără avertisment
Un concept cheie în macro-securitate este acela de „Locații de încredere”Acestea sunt foldere (pe un disc local, în rețea sau, în unele cazuri, în servicii cloud) pe care Excel le consideră 100% sigure. Orice registru de lucru cu cod VBA stocat într-una dintre aceste locații se va deschide direct cu macrocomenzile activate. fără afișarea de avertismente sau blocarea conținutului activ.
Configurarea acestor locații este foarte utilă atunci când lucrați cu seturi de fișiere despre care știi că sunt de încredereAceasta include macrocomenzi interne ale companiei, șabloane personalizate sau registre de lucru pe care le utilizați zilnic. În acest fel, evitați să activați manual macrocomenzile de fiecare dată. Totuși, fiți atenți: adăugarea unui folder prea generic (cum ar fi Descărcări) poate deschide o cale uriașă către potențiale amenințări.
Pentru a crea o locație de încredere din Excel, puteți face acest lucru din fila Dezvoltator > Securitate macrocomenziÎn caseta de dialog Centru de autorizare, selectați opțiunea „Locații de încredere” și faceți clic pe „Adăugați o locație nouă…”Apoi, faceți clic pe „Răsfoire”, selectați folderul pe care doriți să îl marcați ca securizat și confirmați modificările. Dacă aveți nevoie de instrucțiuni pas cu pas pentru Adăugarea sau modificarea unei locații de încredere în OfficeGhidul acela îți va fi de folos.
Un exemplu practic tipic este atunci când descărcați o carte cu macrocomenzi de pe internet Excel îl blochează, afișând un mesaj de genul „Microsoft a blocat macrocomenzile deoarece sursa acestui document nu este de încredere”. În loc să dezactivați securitatea globală, puteți crea un folder specific (de exemplu, „FIȘIERE DE ÎNCREDERE”), îl puteți adăuga ca locație de încredere în Centrul de autorizare și Mută acolo doar fișierele pe care le-ai analizat și în care ai cu adevărat încredere..
Din acel moment, când deschizi acele cărți din folderul de încredere, Macrocomenzile vor rula fără avertisment.Este o modalitate mai sigură și mai organizată de a lucra cu cod terț: mai întâi îl revizuiești, apoi îl salvezi într-o locație sigură și abia apoi îi permiți să ruleze automat.
Certificate digitale și semnarea macroproiectelor
Pentru a spori și mai mult securitatea, Excel și restul aplicațiilor Office utilizează tehnologia Cod de autentificare Microsoftceea ce permite dezvoltatorilor semnează digital proiecte și fișiere macroSemnătura digitală are două scopuri: identificarea autorului și garantarea integrității conținutului.
Când un macroproiect este semnat, certificatul care însoțește semnătura confirmă că documentul provine de la semnatar și că Nu a fost modificat de când a fost semnat.Dacă cineva modifică fișierul sau codul, semnătura devine invalidă, iar Office vă va avertiza că respectivul conținut nu mai corespunde semnăturii digitale originale.
Pentru a obține un certificat digital, puteți utiliza entități comerciale emitente de certificate (CA)sau personalului de securitate intern al organizației dvs.: administratori, echipă IT etc. Microsoft menține o Program de certificare rădăcină care enumeră autoritățile de certificare considerate fiabile pentru produsele lor.
Dacă nu aveți nevoie de un certificat emis de o CA publică și doriți doar să semnați pentru medii interne sau testareDe asemenea, puteți crea propriul certificat folosind instrumentul SelfCert.exeAcest utilitar vă permite să generați certificate autosemnate, astfel încât să puteți semna macroproiectele și să le utilizați, de exemplu, în propria organizație.
Odată ce certificatul este instalat, puteți semnează digital un proiect macro Din editorul VBA. De obicei, acesta se accesează prin intermediul butonului „Visual Basic” din fila Dezvoltator și, în cadrul editorului, din meniul „Instrumente > Semnătură digitală…”, unde alegeți semnătura și certificatul de aplicat. Apoi, dacă este selectată opțiunea „Dezactivați macrocomenzile VBA, cu excepția macrocomenzilor semnate digital” în Centrul de autorizare, Doar macrocomenzile semnate cu certificate pe care ați ales să le aveți încredere vor rula automat..
Cum să activați sau să deblocați în siguranță macrocomenzile în Excel
Dacă primiți un registru de lucru Excel cu macrocomenzi dintr-o sursă neobișnuită (un link OneDrive, un mail(un site web etc.), este foarte probabil ca, la deschiderea acestuia, Excel să afișeze un avertisment, cum ar fi „Risc de securitate: Microsoft a blocat macrocomenzile deoarece originea acestui document nu este de încredere.”Acest lucru este perfect normal și face parte din măsurile de protecție moderne.
Pentru a activa aceste macrocomenzi pe un PC partajat sau pe alt computer, aveți mai multe opțiuni, toate cu implicații de securitate diferite. Cea mai simplă este utilizați bara de avertizare care apare sub panglică: dacă aveți încredere deplină în autor și în fișier, puteți face clic pe „Activați conținutul” pentru a permite rularea macrocomenzilor numai în documentul respectiv.
Dacă intenționați să utilizați fișierul respectiv în mod regulat și aveți încredere în el, puteți opta pentru abordarea locație de încredere Așa cum am menționat anterior: salvați registrul de lucru într-un anumit folder pe care l-ați configurat ca fiind securizat în Centrul de autorizare. În acest fel, nu va trebui să activați manual macrocomenzile de fiecare dată când deschideți fișierul.
O altă posibilitate este să vă revizuiți setările în Centrul de autorizare, accesat din Fișier > Opțiuni > Centru de autorizare > Setări Centru de autorizare > Setări macrocomandăși alegeți opțiunea „Dezactivați macrocomenzile cu notificare” pentru a vă asigura că aveți întotdeauna opțiunea de a le activa manual atunci când apare notificarea.
În orice caz, cheia este să menținem o atitudine prudentă: Nu activați macrocomenzile pentru fișierele descărcate de pe internet dacă nu le cunoașteți originea sau nu ați putut să le examinați măcar minimal.În plus, dacă vă aflați într-un mediu corporativ, este recomandabil să urmați instrucțiunile departamentului IT înainte de a modifica orice setări globale de securitate.
Cele mai bune practici pentru programarea și optimizarea macrocomenzilor în VBA
Securitatea nu depinde doar de configurația Excel, ci și de modul în care Îți scrii și îți întreții propriile macrocomenziUn cod bine structurat, eficient și clar este mai ușor de revizuit, auditat și securizat decât un set de macrocomenzi improvizate. În plus, există o legătură directă între securitate și... performanțăMacrocomenzile lente, care abuzează de resurse sau lasă obiectele neeliberate, cresc probabilitatea de erori și comportamente neașteptate.
O primă recomandare este dezactivarea actualizare automată a ecranului În timpul executării proceselor intensive, Excel reîmprospătează interfața de fiecare dată când efectuați modificări în foaie, ceea ce consumă timp și resurse. Adăugarea liniei la începutul macrocomenzii Application.ScreenUpdating = Fals și restaurarea ei la final cu Application.ScreenUpdating = Adevărat, puteți îmbunătăți semnificativ viteza de execuție.
De asemenea, este foarte util pentru a controla mod de calculExcel recalculează automat formulele de fiecare dată când există modificări, ceea ce devine foarte costisitor dacă macrocomanda modifică mii de celule. Puteți seta Application.Calculation = xlCalculationManual La început, faceți toate modificările necesare și, la final, reveniți la Application.Calculation = xlCalculationAutomaticÎn acest fel, evitați miile de recalculări intermediare care ar putea bloca foaia de calcul.
O altă practică bună este eliberarea explicită a resurselor de care nu mai aveți nevoie. Dacă declarați variabile de tip obiect (de exemplu, Set MyVariable = Worksheets("Sheet1").Range("A1:B10")), este recomandabil să le setați la „Resetare” după ce ați terminat de utilizat. Set MyVariable = NimicAcest lucru ajută la eliberarea memoriei asociate și reduce riscul de a lăsa referințe suspendate care ar putea cauza un comportament ciudat sau un consum inutil de memorie.
Dacă macrocomenzile tale sunt foarte lungi și complexe, merită. împărțiți-le în proceduri mai mici, cum ar fi Sub Step1(), Sub Step2() etc., și apelând fiecare dintre ele dintr-o macrocomandă principală. Pe lângă îmbunătățirea performanței, această structură face codul mult mai lizibil, facilitează depanarea cu puncte de întrerupere și vă permite să izolați problemele de securitate sau erorile logice la blocuri specifice.
În cele din urmă, nu uitați să declarați tipuri specifice de date În loc să recurgeți la Variant-ul generic, utilizarea valorilor Integer, Long, Double, String etc. nu numai că face codul mai clar, dar ajută și la Optimizați utilizarea memoriei și evitați conversiile implicite inutileÎn macrocomenzile mari, aceste tipuri de detalii fac diferența în stabilitate și performanță.
Funcționalități avansate, alternative și viitorul automatizării
Deși macrocomenzile tradiționale din VBA sunt încă utilizate pe scară largă și stau la baza automatizare în Excel pentru desktopÎn ultimii ani, au apărut tehnologii complementare care extind și, în unele cazuri, chiar înlocuiesc o parte din ceea ce făceam înainte doar cu VBA.
Pe de o parte, Microsoft a promovat puternic Power Automate și Power Automate DesktopAceste platforme vă permit să creați fluxuri de lucru automate între diferite aplicații și servicii, atât în cloud, cât și local. Aceste fluxuri de lucru pot interacționa cu Excel, pot muta date, pot genera rapoarte, pot trimite e-mailuri și multe altele, oferind o abordare mai cuprinzătoare decât o macrocomandă tradițională care funcționează doar în cadrul registrului de lucru.
De asemenea, a fost introdus sprijin pentru JavaScript în Excel prin intermediul API-ului Office JavaScriptAceasta deschide calea către dezvoltarea de programe de completare și soluții care funcționează atât în versiunea desktop, cât și în Excel Online, cu un model de securitate diferit, mai orientat spre cloud. Mulți dezvoltatori preferă această abordare, deoarece le permite să utilizeze tehnologii web standard.
Pe de altă parte, limbi precum Piton Acestea au devenit foarte populare pentru manipularea și analiza datelor Excel folosind biblioteci precum pandas sau openpyxl. În unele medii, este preferabil să se dezvolte scripturi Python externe care citesc și scriu fișiere .xlsx sau .xlsm, decât să se concentreze toată logica de business în macrocomenzi.
O tendință clară este integrarea cu Power BI pentru analize de date mai avansate și vizualizări interactive. Multe procese care anterior erau gestionate cu macrocomenzi și foi de calcul masive au fost mutate în modele de date și tablouri de bord Power BI, reducând nevoia de macrocomenzi complexe în anumite scenarii, deși există încă nenumărate cazuri în care VBA este cel mai direct și eficient instrument.
În acest mediu mixt, securitatea rămâne crucială. Indiferent dacă lucrați cu VBA, JavaScript, Python sau Power Automate, este esențial să mențineți obiceiuri de securitate: revizuiți codul pe care îl rulați, aveți încredere doar în surse cunoscute, mențineți software-ul actualizat și profitați de opțiunile de certificate, locațiile de încredere și setările Centrului de autorizare.
Pe scurt, dacă vrei să profiți la maximum de macrocomenzile din Excel fără a-ți asuma riscuri, combină... setări de securitate bine reglate (Centru de încredere, locații securizate, certificate) Urmând bunele practici de programare și menținând o abordare prudentă față de fișierele terțe, puteți automatiza activități, îmbunătăți performanța foilor de calcul și utiliza soluții moderne precum Power Automate sau API-ul JavaScript, menținând în același timp sub control riscurile executării codului în registrele de lucru Excel.
Scriitor pasionat despre lumea octeților și a tehnologiei în general. Îmi place să îmi împărtășesc cunoștințele prin scriere și asta voi face în acest blog, să vă arăt toate cele mai interesante lucruri despre gadgeturi, software, hardware, tendințe tehnologice și multe altele. Scopul meu este să vă ajut să navigați în lumea digitală într-un mod simplu și distractiv.