Excel rallenta in modo drammatico dopo un recente aggiornamento di Microsoft 365? Molti team hanno visto macro VBA e file pesanti diventare fino a 100× più lenti, con blocchi in salvataggio e memoria che esplode. In questa guida pratica trovi cause probabili, rimedi immediati, rollback e consigli operativi per IT e power user.
Panoramica del problema
Dopo l’aggiornamento a Microsoft 365 Apps versione 2408 (build distribuita il 26 agosto 2024), numerosi utenti hanno osservato un netto peggioramento di Excel in scenari tipici d’ufficio e di analisi:
- Esecuzione di macro VBA e gestione di file di grandi dimensioni 10 – 100 volte più lenta.
- Chiusura e salvataggio delle cartelle che impiegano decine di secondi o che si bloccano.
- Uso di memoria che cresce fino a diversi GB e non viene rilasciato (sintomi di memory‑leak).
- Excel che resta “in attesa” del processo
splwow64.exe
, sintomo di interferenze con il sottosistema di stampa. - Rallentamento progressivo macro dopo macro, fino al crash dell’applicazione.
Gli stessi file e le stesse macro risultano invece normali su PC rimasti alla versione 2407 o precedenti, il che ha permesso di circoscrivere l’anomalia al ramo d’aggiornamento più recente.
Chi è interessato
Il problema impatta soprattutto ambienti Windows (10 e 11), installazioni Microsoft 365 a canale corrente o equivalenti, e file Excel con una o più delle seguenti caratteristiche:
- Macro VBA che scrivono/leggono grandi Range o array (operazioni
.Value
su aree estese, loop intensivi). - Uso di grafici, tabelle pivot e formattazione condizionale a larga scala.
- Interazione con stampanti di rete o driver complessi, anche in assenza di stampa attiva.
- Add‑in COM o caricamenti personalizzati che agganciano eventi di Workbook/Worksheet.
Come riconoscerlo subito
- Controlla la build di Excel: File > Account > Informazioni su Excel. Se è indicata una build della famiglia 2408, sei potenzialmente coinvolto. Se vedi una build correttiva ≥ 16.0.17928.20156, verifica comunque le prestazioni con un test rapido.
- Apri Gestione attività mentre esegui una macro pesante: osserva Excel.exe e, se presente, splwow64.exe. Se splwow64.exe resta attivo senza motivo apparente e la memoria di Excel cresce senza rilasciarsi al termine, molto probabilmente stai colpendo l’anomalia.
- Confronta con un PC “di controllo” ancora su 2407 o precedente: se lo stesso file è fluido lì, il problema è legato alla build.
Sintomi approfonditi e segnali diagnostici
- Tempo di scrittura su celle che passa da pochi secondi a minuti quando si assegnano grandi blocchi (
Range.Value = VariantArray
). - Salvataggi e chiusure che restano in “Non risponde” e si sbloccano solo dopo molti secondi.
- Memoria allocata che continua a crescere macro dopo macro; GC apparente inefficace fino alla chiusura dell’app.
- Dipendenza dal sottosistema di stampa: Excel sembra attendere
splwow64.exe
, anche senza inviare stampe. Questo fa pensare a una regressione nella pipeline di layout, anteprima o interrogazione della stampante predefinita.
Ipotesi tecnica
Gli indizi puntano a un’interazione non ottimale tra il nuovo motore di Excel, la gestione della formattazione/impaginazione e il Windows Print Spooler mediato da splwow64.exe
. In specifiche condizioni (driver di stampa, add‑in, dimensione fogli), Excel finisce per attendere operazioni di layout o di interrogazione della stampante, amplificando i tempi di macro e salvataggi. In parallelo, alcune code‑path mostrano memory retention anomala, con rilascio tardivo o nullo finché non si riavvia Excel.
Non è necessario stampare affinché l’anomalia si manifesti: in molte installazioni, Excel esegue comunque chiamate di layout “pronte alla stampa”, motivo per cui cambiare stampante predefinita talvolta riduce il problema ma non lo elimina.
Soluzioni e workaround emersi
Di seguito una matrice decisionale aggiornata con le opzioni più efficaci. Scegli in base a contesto, urgenza e vincoli di sicurezza.
Opzione | Procedura sintetica | Vantaggi | Limiti/Rischi |
---|---|---|---|
Aggiornare a 2408 build 16.0.17928.20156 (o superiore) | File > Account > Opzioni di aggiornamento > Aggiorna ora | Patch ufficiale Microsoft che ripristina la velocità per molti utenti | Distribuzione graduale; non tutti i canali l’hanno già ricevuta |
Rollback a 2407 build 16.0.17830.20166 | 1. Disattiva gli aggiornamenti. 2. Prompt amministratore: cd %programfiles%\Common Files\Microsoft Shared\ClickToRun officec2rclient.exe /update user updatetoversion=16.0.17830.20166 | Prestazioni ripristinate subito | Perdita di correzioni di sicurezza; occorre bloccare gli update finché il fix non è stabile |
Versione anteprima 18.2409.1051.0 | Attiva il canale Insider/Preview dall’account Microsoft 365 e aggiorna | Include fix e hot‑fix più recenti | Software beta, possibile instabilità |
Percorso attendibile (Trust Center) | Definisci un “Percorso fidato” e sposta lì il file | Risolve il lag in alcune installazioni | Non elimina il memory‑leak; efficace solo in scenari limitati |
Usare un PC/Terminal Server non aggiornato a 2408 | Continua su macchine ferme a 2406/2407 | Continuità operativa senza interventi software | Soluzione tampone e non scalabile |
Guida pratica alle opzioni
Aggiornare alla build correttiva
Per le postazioni che possono ricevere subito la build correttiva (o una successiva), procedi così:
- Apri File > Account.
- Seleziona Opzioni di aggiornamento e scegli Aggiorna ora.
- Al termine, verifica in Informazioni su Excel che la build sia ≥ 16.0.17928.20156.
- Esegui i test indicati in questa guida (macro di benchmark, salvataggi ripetuti, monitor memoria).
Nota: la disponibilità dipende dal tuo canale (Corrente, Enterprise Mensile, Semi‑Annual, Insider). In aziende strutturate, la build può essere “tenuta” dal management o dall’Admin Center fino al via libera interno.
Eseguire un rollback stabile
Se la build correttiva non è ancora arrivata o non risolve nel tuo scenario, il rollback alla famiglia precedente ha dato i risultati più immediati.
- Chiudi tutte le app Office.
- Disattiva gli aggiornamenti da File > Account.
- Apri un Prompt dei comandi come amministratore e lancia:
cd "%ProgramFiles%\Common Files\Microsoft Shared\ClickToRun"
officec2rclient.exe /update user updatetoversion=16.0.17830.20166
Dopo il rollback, verifica versioni e blocca gli aggiornamenti finché il fix non è ampiamente validato nel tuo ambiente. Pianifica in anticipo il rientro al ramo stabile.
Valutare l’anteprima
Abilitare un canale Insider/Preview può offrire una build con hot‑fix ulteriori (es. 18.2409.1051.0). È una scelta da riservare a un anello pilota e a postazioni non critiche.
Usare un percorso attendibile
L’abilitazione di un Trusted Location nel Centro protezione può ridurre drasticamente lag e attese in parte degli scenari:
- Vai su File > Opzioni > Centro protezione > Impostazioni Centro protezione > Percorsi attendibili.
- Aggiungi una cartella locale o di rete e sposta lì i file macro‑intensivi.
Pro: intervento rapido, nessun cambio di versione. Contro: non incide sul memory‑leak sottostante e non risolve tutti i casi.
Continuare su macchine non aggiornate
Dove possibile, mantieni un perimetro di continuità su PC o server RDS/VDI fermi a versioni pre‑2408 (2406/2407). È il modo più veloce per evitare interruzioni mentre stabilizzi il parco macchine.
Raccomandazioni operative
- Verifica e installa la build correttiva (≥ 16.0.17928.20156), quindi testa le macro critiche.
- Fallback immediato: se il fix non è disponibile o non risolve, esegui il rollback a 2407 e disattiva gli aggiornamenti automatici temporaneamente.
- Canale ufficiale: in ambito aziendale, apri un ticket dal Microsoft 365 Admin Center per ricevere le comunicazioni di rilascio e coordinate di distribuzione.
- Monitoraggio della memoria: durante l’emergenza, osserva il consumo; se Excel raggiunge soglie critiche, salva subito e riavvia per prevenire crash.
- Percorsi attendibili: sposta i file macro‑intensivi in cartelle fidate per mitigare il lag in alcune configurazioni.
- Ripristina l’igiene di sicurezza: appena il fix stabile è in produzione per il tuo canale, riattiva gli aggiornamenti.
Playbook per team IT
Triaging e contenimento
- Taglia il rumore: mappa le versioni installate e separa i casi confermati 2408 da problemi non correlati (add‑in, rete, antivirus).
- Anello pilota: crea un gruppo di test con utenti esperti per validare la build correttiva su file reali.
- Perimetro di continuità: tieni disponibili VM/VDI o RDS su 2407 per i team critici.
Governance degli aggiornamenti
- Office Deployment Tool (ODT): usa un file di configurazione per fissare TargetVersion e Channel finché non approvi il fix.
<Configuration>
<Add OfficeClientEdition="64" Channel="Current" Version="16.0.17830.20166">
<Product ID="O365ProPlusRetail">
<Language ID="it-it"/>
</Product>
</Add>
<Updates Enabled="TRUE" TargetVersion="16.0.17830.20166"/>
<Display Level="None"/>
</Configuration>
Esegui con:
setup.exe /configure config.xml
Quando approvi la build correttiva, aggiorna Version
o rimuovi TargetVersion
per tornare al flusso normale.
Verifiche post‑intervento
- Benchmark ripetibili: usa le macro di test in questa guida per misurare prima/dopo.
- Salvataggi su rete e locale: verifica entrambi, per escludere la componente I/O.
- Cartelle attendibili: prova con e senza Trusted Locations per isolare il beneficio.
Diagnostica rapida
Controllo add‑in
- Avvia Excel in modalità provvisoria:
Win+R
>excel /safe
. - Se il problema sparisce, riabilita gli add‑in uno alla volta da File > Opzioni > Componenti aggiuntivi.
Stampante predefinita e spooler
- Imposta temporaneamente Microsoft Print to PDF come stampante predefinita e riprova la macro.
- Se vedi
splwow64.exe
bloccato, termina il processo come test (non come soluzione):
taskkill /IM splwow64.exe /F
Avvertenza: l’operazione interrompe sessioni di stampa in corso; usala solo per isolare la causa.
Impostazioni di Excel utili alla diagnosi
- Calcolo su Manuale durante i test complessi.
- ScreenUpdating disattivato nelle macro di prova.
- Eventi e EnableAnimations disattivati per misurazioni pulite.
Macro di benchmark e stress test
Le seguenti macro servono a misurare differenze tra build, riducendo l’influenza di calcolo, grafici e I/O. Esegui su un foglio vuoto, salva, chiudi e riapri tra i test per azzerare lo stato di memoria.
Scrittura massiva su celle
Option Explicit
Public Sub Benchmark_ScritturaMatrice()
Dim n As Long, arr() As Variant, t As Double
n = 250000 ' righe da scrivere: regola in base al PC
ReDim arr(1 To n, 1 To 1)
Dim i As Long
For i = 1 To n
arr(i, 1) = i
Next i
```
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
t = Timer
With ActiveSheet
.Range("A1").Resize(n, 1).Value = arr
End With
Debug.Print "Scrittura matrice:", Format(Timer - t, "0.00") & " s"
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
```
End Sub
Lettura massiva
Public Sub Benchmark_LetturaMatrice()
Dim t As Double, data As Variant
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
t = Timer
data = ActiveSheet.Range("A1").CurrentRegion.Value
Debug.Print "Lettura matrice:", Format(Timer - t, "0.00") & " s, celle: "; UBound(data, 1) * UBound(data, 2)
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Test salvataggio ripetuto
Public Sub Benchmark_Salvataggi()
Dim i As Long, t As Double, tTot As Double
For i = 1 To 5
t = Timer
ThisWorkbook.Save
Debug.Print "Salvataggio " & i & ":", Format(Timer - t, "0.00") & " s"
DoEvents
Application.Wait Now + TimeValue("0:00:02")
tTot = tTot + (Timer - t)
Next i
Debug.Print "Tempo medio:", Format(tTot / 5, "0.00") & " s"
End Sub
Interpretazione: se su 2407 i tempi sono stabili (es. 2‑4 s) e su 2408 degradano progressivamente o si moltiplicano, il caso è allineato alla regressione descritta.
Buone pratiche per file macro‑intensivi
- Blocchi di scrittura: preferisci assegnamenti di array a blocchi di celle invece di loop cella‑per‑cella.
- Schermata e calcolo: usa
ScreenUpdating = False
,Calculation = Manual
,EnableEvents = False
nei tratti critici; ripristina sempre gli stati inFinally
. - Riduci le query del layout: evita Page Break Preview, anteprime e passaggi automatici verso la stampa durante i test.
- Pulisci oggetti: setta a
Nothing
gli oggetti COM e rilascia risorse non più usate.
Checklist di stabilità
- Conferma versione/build di Office su ogni macchina impattata.
- Verifica presenza della build correttiva; altrimenti applica rollback controllato.
- Monitora memoria di Excel durante sessioni lunghe; riavvia oltre soglia.
- Isola impatto stampante: cambia stampante predefinita e riprova.
- Valida in cartella attendibile per ridurre overhead di sicurezza.
- Documenta tempi prima/dopo con i benchmark proposti.
Domande frequenti
Il problema riguarda anche file senza macro?
Sì, alcuni utenti riferiscono lentezza anche su file pesanti senza macro, specie con molte formule o tabelle pivot. La correlazione più forte rimane con macro e operazioni massicce di I/O su celle.
Serve davvero cambiare stampante predefinita?
Non è una cura, ma un test diagnostico. Se passando a una stampante virtuale il problema si attenua, è probabile l’intersezione con il sottosistema di stampa. Resta consigliato aggiornare alla build correttiva o eseguire il rollback.
È rischioso il rollback?
Sì, perché ti priva delle patch di sicurezza rilasciate dopo la versione scelta. Va limitato a postazioni controllate e per il minor tempo possibile. Pianifica e monitora.
Gli add‑in possono peggiorare la situazione?
Sì. Alcuni add‑in COM o di terze parti che intercettano eventi di Excel possono amplificare il degrado. Testa sempre in excel /safe.
Nota di sicurezza
Il downgrade a versioni precedenti espone a patch mancanti. Applicalo solo su postazioni controllate o isolate e pianifica il ritorno al canale stabile non appena la correzione è confermata e diffusa per il tuo canale.
Procedura di comunicazione agli utenti
Oggetto: Prestazioni Excel ridotte dopo aggiornamento – indicazioni operative
Stiamo gestendo un’anomalia che rallenta macro e salvataggi su alcune build di Microsoft 365. Se noti Excel lento: 1) salva, chiudi e riapri; 2) evita l’anteprima di stampa; 3) contatta IT indicando versione e file interessati. Stiamo distribuendo una build correttiva/rollback sulle postazioni coinvolte.
Procedura rapida di emergenza
- Salva immediatamente il lavoro aperto.
- Chiudi Excel e riaprilo per liberare memoria.
- Esegui le macro in una cartella definita come attendibile.
- Se devi consegnare entro tempi stretti, usa una postazione 2407 o un server RDS/VDI non aggiornato.
- Allinea quanto prima la postazione alla build correttiva o applica il rollback controllato.
Conclusioni
La riduzione di performance osservata su Excel dopo l’aggiornamento alla famiglia 2408 non è un semplice “rallentamento”: ha impatti diretti su produttività, processi batch e operazioni d’ufficio quotidiane. Fortunatamente, la combinazione di build correttive, rollback mirati e semplici accorgimenti (cartelle attendibili, monitor memoria, isolamento del sottosistema di stampa) consente di riportare gran parte degli ambienti a una condizione stabile. La strategia vincente è pragmatica: contenere subito il danno, testare con benchmark ripetibili, distribuire la correzione in modo controllato e ripristinare gli aggiornamenti di sicurezza appena possibile.
Riferimento rapido
- Build correttiva consigliata: ≥ 16.0.17928.20156.
- Rollback funzionante: 16.0.17830.20166 (famiglia 2407).
- Segnali chiave: macro che degradano nel tempo, salvataggi lenti,
splwow64.exe
attivo senza stampa, memoria di Excel che cresce e non scende. - Mitigazioni: cartelle attendibili, cambio stampante predefinita come test, esecuzione in excel /safe, uso temporaneo di PC/VDI pre‑2408.
Checklist finale per amministratori
- Mappa le build in uso e identifica i gruppi impattati.
- Abilita un ring pilota per provare la build correttiva.
- Se necessario, consolida il rollback a 2407 con ODT e blocco aggiornamenti.
- Pubblica benchmark standardizzati e soglie di allerta memoria.
- Conferma stabilità, poi riattiva gli aggiornamenti e chiudi l’incidente.