Foile de calcul la birou

Ce este GAS (Google Apps Script)?
Automatizarea Foilor de calcul Google – introducere

Să aduci un tabel în aceeași formă în fiecare săptămână. Să ștergi rândurile goale din datele lipite. Să marchezi rândurile care îndeplinesc o condiție. Foile de calcul sunt pline de sarcini cu pași ficși.

Astfel de sarcini le face automat GAS (Google Apps Script). Acest articol arată ce poate face GAS, de unde începi și cum treci de ecranele de „autorizare” la care se blochează mulți prima dată.

Ce este GAS?

GAS este modul în care Google rulează programe. Folosește aceeași sintaxă ca JavaScript și lucrează cu Foi de calcul Google, dar și cu Gmail, Google Calendar, Google Drive și Formulare Google.

Ai nevoie doar de un cont Google. E gratuit și nu instalezi nimic: deschizi o foaie în browser și începi să scrii. Programul rulează pe serverele Google, nu pe calculatorul tău.

Macrocomenzile înregistrate și GAS

Foi de calcul Google are „macrocomenzi” care înregistrează ce faci, ca să repeți de câte ori vrei. Pornește înregistrarea din „Extensii” → „Macrocomenzi” → „Înregistrați macrocomanda”, selectează și scrie în celule, iar acțiunile tale sunt salvate ca cod GAS.

Înregistrare: se scrie „test” în B2 și se aplică aldin
/** @OnlyCurrentDoc */

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('B2').activate();
  spreadsheet.getCurrentCell().setValue('test');
  spreadsheet.getActiveRangeList().setFontWeight('bold');
};

Adică o macrocomandă este, de fapt, GAS. Chiar dacă îi dai un nume ca „Test aldin”, funcția din cod se numește myFunction. Numele din meniu și numele funcției sunt păstrate separat.

La înregistrare alegi în bara de jos „Folosiți referințe absolute” sau „Folosiți referințe relative”. Referințele absolute se salvează ca adrese de celule (B2), deci macrocomanda scrie mereu în același loc, indiferent de celula selectată. Cele relative se salvează ca „un rând sub celula curentă” și pornesc de la celula selectată.

Doar cu înregistrarea nu poți lucra cu tabele de lungime variabilă sau cu pași care depind de condiții. De acolo încolo citești codul înregistrat și îl completezi.

Ce poți face cu GAS

  • Să ștergi rândurile goale din datele lipite și să formatezi anteturile
  • Să verifici sume sau date și să scrii „Mare” sau „Restant” într-o coloană
  • Să adaugi un meniu propriu în foaie și să rulezi sarcini ca dintr-un buton
  • Să creezi funcții proprii pentru celule (funcții personalizate)
  • Să trimiți e-mailuri din Gmail pe baza unui tabel
  • Să rulezi o sarcină la o oră fixă, de exemplu în fiecare dimineață la 8 (declanșatoare)
  • Să copiezi răspunsurile din Formulare Google în altă foaie imediat ce sosesc

Manual, fiecare dintre acestea durează de la câteva minute la zeci de minute. Odată scrisă, ajunge apoi un clic într-un meniu – sau rulează singură.

Cum începi cu GAS

  1. Deschide foaia și alege „Extensii” → „Apps Script”
  2. Editorul se deschide într-o filă nouă: „Cod.gs” în stânga și function myFunction() { } în dreapta
  3. Scrie codul în { } și salvează (Ctrl+S, pe Mac ⌘+S)
  4. Apasă „▷ Rulați” sus. Rezultatul apare jos, în „Jurnalul de execuție”
Primul script: citește A1, scrie-l în jurnal și scrie în B1
function myFunction() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const value = sheet.getRange('A1').getValue();
  Logger.log(value);
  sheet.getRange('B1').setValue('Verificat');
}

Logger.log scrie o valoare în jurnalul de execuție. Numerele apar cu punct zecimal, de exemplu 120.0 (console.log afișează 120). Dacă ceva nu merge cum te aștepți, verifică întâi valorile din jurnal.

Ecranele de autorizare la prima rulare

Prima dată când rulezi codul scris de tine apare un ecran care întreabă dacă scriptul are voie să citească și să editeze foaia. Mulți se blochează aici, așa că îl parcurgem pas cu pas.

  1. „Este necesară autorizarea” → Examinați permisiunile / OK
  2. Alege un cont
  3. „Google nu a verificat această aplicație” → „Avansat” în stânga jos
  4. „Accesați (numele proiectului) (nesigur)”
  5. Verifică ce permiți și apasă „Permiteți” (dacă sunt elemente de bifat, bifează-le și apasă „Continuați”)

„Google nu a verificat această aplicație” este un avertisment pentru scripturile pe care Google nu le-a verificat. Scripturile scrise de tine și macrocomenzile înregistrate de tine nu sunt verificate, așa că ecranul apare mereu. Dacă l-ai făcut tu, poți continua liniștit.

În schimb, dacă ecranul apare într-o foaie primită de la cineva necunoscut, alege „Înapoi la siguranță”. După ce permiți, scriptul poate lucra cu foile și e-mailurile tale din contul tău.

Dacă pui /** @OnlyCurrentDoc */ la începutul codului, scriptul poate atinge doar „această foaie” și permisiunile cerute sunt mai restrânse. Macrocomenzile înregistrate îl au de la început.

Poți parcurge aceiași pași în misiunea 1 a exercițiilor.

Cod folosit des

Iată ce se folosește cel mai des când lucrezi cu o foaie. Numerele de rând și coloană încep de la 1, iar indicii unei matrice citite cu getValues încep de la 0.

CodSemnificație
const sheet = SpreadsheetApp.getActiveSheet();Foaia deschisă acum
sheet.getRange('A1').getValue()Citește valoarea din A1
sheet.getRange('A1').setValue('Terminat')Scrie în A1
sheet.getRange(2, 3)Rândul 2, coloana 3 (C2). Coloanele se pot da ca număr
sheet.getRange('A2:C10').getValues()Citește un interval dintr-odată (matrice bidimensională)
sheet.getRange(2, 1, 9, 3).setValues(values)Scrie dintr-odată (rândurile și coloanele ca în matrice)
sheet.getLastRow()Numărul ultimului rând cu valoare
sheet.appendRow(['10/31', 'Sato', 5000])Adaugă un rând sub ultimul
sheet.deleteRow(5)Șterge rândul 5 (rândurile de dedesubt urcă)
sheet.getRange('A1:D1').setFontWeight('bold')Aplică aldin
sheet.getRange('A1:D1').setBackground('#fff2cc')Setează culoarea de fundal
Logger.log(value)Scrie în jurnalul de execuție (pentru a verifica valori)
Parcurge toate rândurile și diferențiază după o condiție
function judgeTargets() {
  const sheet = SpreadsheetApp.getActiveSheet();
  for (let row = 2; row <= sheet.getLastRow(); row++) {
    const sales = sheet.getRange(row, 2).getValue();
    const target = sheet.getRange(row, 3).getValue();
    if (sales >= target) {
      sheet.getRange(row, 4).setValue('Atins');
    } else {
      sheet.getRange(row, 4).setValue('Neatins');
    }
  }
}
Adaugă un meniu propriu la deschidere (onOpen)
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('Închidere lunară')
    .addItem('Marchează vânzările mari', 'markLarge')
    .addToUi();
}

O funcție numită onOpen rulează automat când se deschide foaia. Dacă o rulezi cu „▷ Rulați” din editor apare eroarea Cannot call SpreadsheetApp.getUi() from this context., așa că salvează și redeschide foaia ca să verifici.

Trimiterea de e-mailuri și programarea cu declanșatoare

Cel mai des se caută la GAS trimiterea de e-mailuri și declanșatoarele.

Trimite e-mailuri la adresele dintr-un tabel
function sendReminders() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const rows = sheet.getRange(2, 1, sheet.getLastRow() - 1, 2).getValues();
  rows.forEach(([name, email]) => {
    MailApp.sendEmail(email, 'Reamintire termen limită', name + ',\n\ntermenul limită este vinerea aceasta.');
  });
}

Există o limită: un cont Google gratuit poate trimite până la 100 de e-mailuri pe zi (conturile Google Workspace mai multe). O rulare poate dura cel mult 6 minute; după aceea se oprește cu „Exceeded maximum execution time”.

Pentru programare, apasă în stânga editorului „Declanșatoare” (pictograma ceas) → „Adăugați un declanșator” și alege funcția și „Bazat pe timp”. Poți seta un interval orar zilnic, săptămânal sau lunar.

E-mailurile pleacă de-adevăratelea chiar dacă doar încerci. Testează întâi cu un tabel care conține doar adresa ta.

Diferențe față de VBA din Excel

GASVBA din Excel
CodJavaScriptVBA(Visual Basic)
Unde ruleazăServerele GoogleExcel pe propriul calculator
De ce ai nevoieUn browser și un cont GoogleVersiunea desktop a Excel (în special pe Windows)
Se conectează cuGmail, Calendar, Drive, FormulareWord, Outlook, fișiere de pe calculator
Rulare programatăCu declanșatoare (rulează chiar și cu calculatorul oprit)Combinat cu Planificatorul de activități din Windows sau similar

Ideile sunt aceleași în ambele: citești celule, scrii, repeți și diferențiezi după condiții. Cine știe una o poate citi și pe cealaltă. Macrocomenzile Excel sunt explicate în introducerea în macrocomenzi Excel.

Exersează în browser

În simularea de macrocomenzi și GAS a acestui site exersezi rulând cod real într-o foaie și un editor Apps Script virtuale. Completezi golurile din cod, iar pe telefon alegi fiecare gol dintre patru variante.

  1. Capitolul 1 Înregistrarea și rularea macrocomenzilor

    Rulează o macrocomandă înregistrată și înregistrează una proprie. Referințe absolute și relative, citirea și corectarea codului înregistrat.

  2. Capitolul 2 Citește, repetă, diferențiază

    Citește celule cu getValue, scrie cu setValue și verifică valorile în jurnalul de execuție. Parcurge toate rândurile cu for și diferențiază cu if.

  3. Capitolul 3 Studiu de caz: ordonarea tabelului lunar de vânzări

    Șterge rândurile goale, marchează dintr-odată vânzările mari și rulează totul dintr-un meniu propriu. La final, o funcție proprie pentru celule.

Începe simularea (13 misiuni) →

Cum înveți GAS

Un început bun e să folosești „Înregistrați macrocomanda” într-una dintre foile tale și să citești codul obținut. Așa vezi mai ușor ce face fiecare comandă.

Și inteligența artificială generativă poate scrie cod. Dar ca să judeci dacă e corect și unde trebuie corectat, trebuie să poți citi măcar „codul folosit des” din acest articol.

* Numele ecranelor și limitele sunt valabile în octombrie 2026 și se pot schimba odată cu actualizările Google.

* Foi de calcul Google este o marcă a Google LLC. Acest site nu este afiliat cu Google.