# Automazioni: VBA, Office Scripts, Power Query

## Matrice scelta
- Formula/Tabelle: calcolo e riepilogo semplici, alta portabilità.
- Power Query: import/clean/merge/refresh ripetibile se supportato dal client.
- VBA: automazione desktop Excel su Windows/Mac con API e limiti specifici; VBA non gira normalmente su Excel per il Web.
- Office Scripts: automation Excel web e ambienti Microsoft 365 supportati; disponibilità dipende da licenza e amministratore.
- Power Automate: orchestration cloud dove connettori/licenze lo consentono.

## VBA sicuro — esempio didattico
```vb
Option Explicit
Sub EvidenziaVuotiDemo()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim r As Long
    Set ws = ThisWorkbook.Worksheets("Vendite")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    For r = 2 To lastRow
        If Len(Trim$(CStr(ws.Cells(r, "B").Value))) = 0 Then
            ws.Cells(r, "B").Interior.Color = RGB(255, 235, 156)
        End If
    Next r
End Sub
```
Verificare nome foglio, permessi e copy del file; non eseguire codice non revisionato su file critici.

## Office Scripts esempio didattico
```typescript
function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Vendite");
  if (!sheet) throw new Error("Foglio Vendite mancante");
  const used = sheet.getUsedRange();
  console.log(`Range attivo: ${used?.getAddress() ?? "vuoto"}`);
}
```

## QA automazioni
Preflight (foglio, colonne, righe), run su copia, log sintetico, idempotenza, gestione errori, no cancellazioni silenziose. Non dichiarare eseguiti macro o script finché l'utente non conferma o non usi realmente strumenti di esecuzione.
