Riepilogo
In Microsoft Excel è possibile creare una macro di Microsoft Visual Basic, Applications Edition (VBA) che elimina la richiesta Salva modifiche quando si chiude una cartella di lavoro. Questa operazione può essere eseguita specificando lo stato della proprietà Saved della cartella di lavoro oppure eliminando tutti gli avvisi per la cartella di lavoro.
Altre informazioni
NOTA:Microsoft fornisce esempi di programmazione a titolo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, a titolo esemplificativo e non esaustivo, le garanzie implicite di commerciabilità o idoneità a uno scopo particolare. Questo articolo presuppone che si abbia familiarità con il linguaggio di programmazione oggetto della dimostrazione e con gli strumenti utilizzati per la creazione e il debug delle procedure. I tecnici dell'assistenza Microsoft possono aiutare a spiegare la funzionalità di una particolare procedura. Tuttavia, non modificheranno questi esempi per fornire funzionalità aggiuntive o costruire procedure che soddisfino i vostri requisiti specifici.
Per preparare l'implementazione di uno degli esempi seguenti, eseguire prima questi passaggi:-
Avviare Excel e aprire una nuova cartella di lavoro.
-
Premere ALT+F11 per avviare l'editor di Visual Basic.
-
Scegliere Modulo dal menu Inserisci.
-
Digitare il codice macro di esempio nel foglio modulo.
-
Premere ALT+F11 per tornare a Excel.
-
In Microsoft Office Excel 2003 e nelle versioni precedenti di Excel scegliere Macro dal menu Strumenti e quindi fare clic su Macro.
In Microsoft Office Excel 2007 fare clic su Macro nel gruppo Codice della scheda Sviluppo. Se la scheda Sviluppo non è disponibile, è consigliabile procedere come segue: un. Fare clic sul pulsante Microsoft Office e quindi su Opzioni di Excel. b. Nella categoria Impostazioni generali, in Opzioni principali per l'uso di Excel, fare clic per selezionare l'opzione Mostra Scheda Sviluppo nella casella di controllo Barra multifunzione e quindi fare clic su OK. -
Selezionare la macro desiderata e quindi fare clic su Esegui.
La proprietà Saved restituisce il valore False se sono state apportate modifiche a una cartella di lavoro dall'ultimo salvataggio.Auto_Close per specificare una macro da eseguire ogni volta che una cartella di lavoro viene chiusa. In questo modo è possibile controllare come viene gestito il documento quando l'utente chiude i documenti in Excel.
È possibile usare il nome della subroutine riservataEsempio 1: Chiudere la cartella di lavoro senza salvare le modifiche
Per forzare la chiusura di una cartella di lavoro senza salvare le modifiche, digitare il codice seguente in un modulo visual basic della cartella di lavoro:
Sub Auto_Close()
ThisWorkbook.Saved = True
End Sub
Quando la proprietà Saved è impostata su True, Excel risponde come se la cartella di lavoro fosse già stata salvata e non sono state apportate modifiche dopo l'ultimo salvataggio.
La proprietà DisplayAlerts del programma può essere utilizzata per lo stesso scopo. Ad esempio, la macro seguente disattiva DisplayAlerts, chiude la cartella di lavoro attiva senza salvare le modifiche e quindi riattiva DisplayAlerts.Sub CloseBook()
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
È anche possibile usare l'argomento SaveChanges del metodo Close.
La macro seguente chiude la cartella di lavoro senza salvare le modifiche:Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
End Sub
Esempio 2: Chiudere la cartella di lavoro e salvare le modifiche
Per forzare il salvataggio delle modifiche in una cartella di lavoro, digitare il codice seguente in un modulo visual basic della cartella di lavoro:
Sub Auto_Close()
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save End If
End Sub
Questa procedura secondaria verifica se la proprietà Saved del file è stata impostata su False. In tal caso, la cartella di lavoro è stata modificata dopo l'ultimo salvataggio e le modifiche vengono salvate.