Capita più spesso di quanto si pensi: il cliente, o un reparto della tua stessa organizzazione, chiede di ricevere periodicamente il «Gantt» del progetto nel formato nativo di Microsoft Project, il file .mpp. A volte è scritto nel contratto, e non c’è modo di sottrarsi.
Il problema è che quel file non contiene solo le barre. Porta con sé le tariffe orarie del personale, i costi dei subappalti e dei materiali, nomi e cognomi delle persone, le note interne, lo stato di avanzamento e ogni previsione mai salvata. Perché il cliente dovrebbe sapere chi impieghi e quanto ti costa, o fare le pulci ai tuoi margini? Questa guida mostra come nascondere le informazioni sensibili da un file di Microsoft Project, quali sono i punti che la pulizia ovvia non tocca, e come controllare alla fine che siano sparite davvero.
Nascondere non basta: che cosa si porta dietro un .mpp
L’errore più comune è nascondere. Togliere la colonna dei costi da una visualizzazione la toglie dallo schermo, non dal file: lo stesso vale per i filtri, i riepiloghi compressi e le tabelle nascoste. Chi riceve il file rimette la colonna e i valori sono lì. (Per il quadro normativo, cioè perché nomi e tariffe sono dati personali, c’è l’articolo su Microsoft Project e GDPR.)
Questi sono i punti che contengono qualcosa, nell’ordine in cui conviene ripulirli.

Lo strumento che in Project non c’è
Se chiedi a un assistente di intelligenza artificiale come ripulire un .mpp, può capitare che ti mandi a File > Informazioni > Verifica della presenza di problemi > Controlla documento. È Controllo documento, e Microsoft lo documenta per Word, Excel, PowerPoint e Visio. Project non è nell’elenco, e nemmeno il suo modello a oggetti prevede uno strumento del genere.
Project ha qualcosa di più limitato: l’opzione per rimuovere le informazioni personali dalle proprietà del file al salvataggio, nel Centro protezione, scheda Opzioni privacy, fra le impostazioni specifiche del documento. Riguarda le proprietà del file, non il piano. Tutto quello che sta dentro il piano è affar tuo.
La procedura, passo per passo
L’ordine conta: alcuni passi cambiano il risultato di quelli successivi.
- Copia l’originale in una cartella neutra, con un nome neutro, per esempio
C:\Condivisi\piano.mpp. Nelle nostre prove ogni copia fatta con Salva con nome conservava il percorso completo del file da cui era stata aperta e quello della cartella in cui era stata salvata. Aperta e salvata in una cartella neutra, conservava solo quella. - Apri la copia, e non il pool di risorse. Se il piano condivide un pool, apri per primo il file del progetto: il pool si aprirà in sola lettura, e resterà fuori dalle modifiche che stai per fare.
- Azzera le tariffe. Nell’Elenco risorse seleziona le celle della colonna Tariffa standard, dalla prima all’ultima, e premi CANC; fai lo stesso con Tariffa straordinario e Costo per uso. Attenzione: seleziona le celle, non l’intestazione della colonna, altrimenti nascondi la colonna e i valori restano. Poi apri Informazioni risorsa > Costi e controlla le schede da B a E e ogni riga della tabella A: un aumento già datato per l’anno prossimo è una seconda riga, e la colonna non lo mostra.
- Elimina le assegnazioni. Nel Diagramma di Gantt seleziona tutte le celle della colonna Nomi risorse e premi CANC. Con le assegnazioni spariscono anche i costi delle risorse di tipo Costi, che esistono solo assegnati alle attività.
- Azzera l’avanzamento. Fai doppio clic sull’attività di riepilogo del progetto, quella con ID 0, e nella scheda Generale di Informazioni attività porta la % completamento a 0. Sparisce l’avanzamento di tutte le attività, senza ripercussioni sulle barre: provato su un piano con 14 attività avviate, dopo nessuna risultava iniziata.
- Rinomina le risorse. E qui casca l’asino: con dieci risorse è un attimo, con cento è un pomeriggio. Il trucco che uso e consiglio evita la macro: in Excel scrivi «Risorsa 1» e «Risorsa 2» in due celle, selezionale e trascina il quadratino in basso a destra per quante risorse ti servono. Poi nell’Elenco risorse filtra la colonna Tipo sulle sole risorse Lavoro, copia da Excel lo stesso numero di celle e incollale nella colonna Nome risorsa partendo dalla prima. Il calendario di ogni risorsa prende il nome nuovo da solo. Restano da svuotare Iniziali, Gruppo, Codice e Indirizzo posta elettronica.
- Ripulisci il resto della tabella qui sopra: note, campi personalizzati con il loro nome e la loro tabella di ricerca, previsioni e piani provvisori, proprietà del file. Se azzeri anche lavoro e costi delle attività, imposta prima le attività a Durata fissa: con i tipi predefiniti, togliere il lavoro cambia le durate che volevi tenere.
- Accendi l’opzione privacy del Centro protezione, per le informazioni personali nelle proprietà del file. È un’impostazione di questo file, quindi viaggia con lui.
- Fai File > Salva con nome, con un nome nuovo nella stessa cartella neutra, e non Salva. Salvare sopra un .mpp che esiste già può lasciare dentro il testo vecchio, invisibile in ogni visualizzazione: su uno dei nostri tre piani di prova i nomi delle attività che avevamo rinominato erano ancora leggibili nel file salvato. Con Salva con nome su un file nuovo, nessuno. Se il piano usa un pool, Project ti chiede se aggiornarlo: rispondi Annulla, altrimenti le modifiche finiscono anche nel pool condiviso.
- Chiudi il file nuovo, riaprilo e guarda di nuovo: l’Elenco risorse, la scheda Costi di una risorsa, l’elenco dei campi personalizzati.
- Controlla i byte, come nella sezione che segue, cercando le tre o quattro parole che meno vorresti far leggere al cliente.



Controlla che cosa c’è davvero nel file
Le visualizzazioni mostrano quello che Project decide di mostrare. Per sapere se un nome è ancora nel file bisogna cercarlo nel file stesso. Incolla queste righe in Windows PowerShell e metti le tue parole nell’ultima:
function Test-MppText([string]$Path, [string]$Text) {
$bytes = [IO.File]::ReadAllBytes($Path)
$all = [Text.Encoding]::Unicode.GetString($bytes) +
[Text.Encoding]::Unicode.GetString($bytes, 1, $bytes.Length - 1) +
[Text.Encoding]::Default.GetString($bytes)
$all.Contains($Text)
}
"Acme", "Rossi", "C:\Users" | ForEach-Object { "$_ : " + (Test-MppText "C:\Condivisi\piano-cliente.mpp" $_) }
Il risultato che vuoi è False per ogni parola. La funzione legge il testo in due modi perché Project salva quasi tutto il testo in UTF-16, due byte per carattere, e una stringa può cominciare su un byte dispari. È anche il motivo per cui il più comodo Select-String -Encoding Unicode non basta: nelle nostre prove non ha trovato un nome di attività che nel file c’era.
Che cosa questa procedura non copre
- La forma del piano. Durate, date, numero di attività e struttura dicono molto da sole: il cronoprogramma di un’offerta mostra quanto in fretta pensi di costruire.
- Il nome del file, che scegli tu, e le date di creazione e di ultimo salvataggio, che Project conserva.
- Visualizzazioni, tabelle, filtri ed eccezioni di calendario a cui hai dato un nome. Quei nomi possono citare un cliente o una persona: guardali prima di inviare.
- I piani su Project Online o Project Server, i cui campi enterprise seguono altre regole.
E se il cliente deve solo leggere il cronoprogramma, il .mpp è il formato sbagliato: un PDF della visualizzazione, o un’esportazione in Excel delle sole colonne che gli servono, porta con sé molto meno. Il .mpp si ripulisce quando chi lo riceve ci deve davvero lavorare.
Se qualcosa va storto
- Una tariffa compare ancora dopo che hai svuotato Tariffa standard. Apri Informazioni risorsa > Costi e guarda le tabelle da B a E, e tutte le righe della tabella A: l’aumento dell’anno prossimo è una seconda riga.
- Il controllo sui byte trova ancora un nome che avevi sostituito. Il file è stato salvato sopra invece che con nome, oppure il nome sta in un punto fuori dalla tabella: una visualizzazione, un filtro, un’eccezione di calendario. Rinominalo e rifai Salva con nome su un nome nuovo.
- Le durate sono cambiate dopo aver tolto le assegnazioni. Le attività che seguivano il calendario di una risorsa ora si misurano sul calendario del progetto. Confronta le date di fine con l’originale prima di inviare.
Domande frequenti
Microsoft Project ha Controllo documento?
No. Microsoft documenta Controllo documento per Word, Excel, PowerPoint e Visio. Project ha solo l’opzione che rimuove le informazioni personali dalle proprietà del file al salvataggio, e lascia a te il contenuto del piano.
Basta nascondere le colonne dei costi?
No. Una visualizzazione decide che cosa si vede, non che cosa è memorizzato. Chiunque apra il file può rimettere la colonna, e i valori sono lì.
Perché Salva con nome e non Salva?
Perché salvare sopra un .mpp che esiste già può lasciare nel file il testo precedente, dove nessuna visualizzazione lo mostra. Salva con nome su un nome nuovo scrive un file nuovo.
Le schermate sono di una versione vecchia di Project: vale ancora?
Sì. Le schermate vengono dalla prima versione di questo articolo, del 2019; i comandi descritti si trovano negli stessi punti nelle versioni desktop successive, compresa quella di Microsoft 365. Le verifiche su tariffe, calendari, salvataggio e percorsi sono state rifatte nel settembre 2026.
Questo articolo fa parte della guida Il piano che regge: le buone pratiche di Microsoft Project.
Trasparenza: oltre alla consulenza di pianificazione e controllo sviluppo anche software di project control, e il paragrafo che segue va letto per quello che è. Nulla della procedura descritta sopra richiede il nostro strumento, né alcuno strumento: bastano Microsoft Project, un foglio di Excel e qualche riga di PowerShell.
Se lo fai ogni mese, GanttShield applica una parte di questo elenco a una copia del piano in un solo passaggio: rinomina attività e risorse, svuota le note delle attività e le proprietà del documento, toglie tariffe, costi e tutte e undici le previsioni, e non tocca mai l’originale. Nella copia .mpp non copre ogni riga della tabella — i campi di testo personalizzati, i piani provvisori e i percorsi delle cartelle fra gli altri. Dalla versione 1.2.0 può anche scrivere la copia in XML di Project, senza Microsoft Project: quell’uscita svuota anche i campi personalizzati (Testo1–30, Data1–10, Inizio e Fine1–10, dove stanno i piani provvisori, Durata1–10, Flag1–20) e i loro nomi, e non porta percorsi di cartella. In tutti e due i casi il controllo sui byte resta valido.
#MicrosoftProject #ProjectManagement #GDPR #MSProject