Salvataggio di copie personalizzate di un documento (Microsoft Word)
Quando lavori con altre persone nella tua azienda o magari con un gruppo di clienti, potresti voler creare un file personalizzato per ogni cliente. Anche se può essere meglio creare utilizzando una stampa unione, se le tue esigenze di personalizzazione sono modeste, esiste un modo più semplice.
Inizia creando un normale file di testo che contiene i nomi delle persone che devono ricevere il tuo documento, un nome per riga. La macro inserirà quindi il nome nell’intestazione di un documento e salverà il documento con il nome di quella persona. Quindi, se il tuo file di testo contiene quindici persone, ti ritroverai con quindici copie del documento, una per persona. Ciascuno sarà personalizzato con il nome della persona nell’intestazione.
Il processo per eseguire tale attività è abbastanza semplice: apri il file di testo, prendi un nome, mettilo nell’intestazione e quindi salva il documento. Viene acquisito un altro nome e il processo viene ripetuto finché non ci sono più nomi nel file. La seguente macro implementa tale processo:
Sub SaveNameFiles() Dim sName As String Dim sFile As String Open "c:/names.txt" For Input As #5 On Error Resume Next Do While Not EOF(5) ' get the name Line Input #5, sName sFile = sName & ".doc" sFile = "c:\mypath\" & sFile ActiveWindow.ActivePane.View.SeekView = _ wdSeekCurrentPageHeader Selection.WholeStory Selection.Delete Selection.TypeText Text:=sName ActiveWindow.ActivePane.View.SeekView = _ wdSeekMainDocument ActiveDocument.SaveAs FileName:=sFile Loop Close #5 ActiveWindow.ActivePane.View.SeekView = _ wdSeekCurrentPageHeader Selection.WholeStory Selection.Delete ActiveWindow.ActivePane.View.SeekView = _ wdSeekMainDocument End Sub
La parte complicata della macro sta usando la proprietà .SeekView per specificare quale storia nel documento si desidera lavorare. Come implementato qui, la proprietà .SeekView viene utilizzata ripetutamente per passare dall’area dell’intestazione al documento principale.
Si noti inoltre che la variabile sFile specifica il nome del file in cui verrà salvato il documento personalizzato. Subito dopo che il nome è stato acquisito dal file di testo, la variabile sFile viene costruita aggiungendo l’estensione del file .doc e il percorso all’inizio del nome del file. (Dovresti cambiare il percorso con uno appropriato per il tuo sistema.)
L’effettiva operazione di salvataggio è relativamente semplice; il metodo .SaveAs viene utilizzato con un nome file. Questa è la riga di codice più soggetta a errori nella macro, poiché uno dei nomi letti dal file potrebbe includere caratteri non appropriati per nomi di file validi. In questo caso, viene generato un errore e la macro continua con la riga successiva. Il documento, tuttavia, non verrà salvato con il nome offensivo.
Una volta completato il ciclo (acquisizione di nomi e salvataggio), l’area dell’intestazione viene cancellata e .SeekView viene ripristinato al documento principale.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.
WordTips è la tua fonte di formazione economica su Microsoft Word.
(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (7983) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365. Puoi trovare una versione di questo suggerimento per vecchia interfaccia del menu di Word qui: