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. (È necessario modificare il percorso in uno appropriato per il proprio 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 (195) si applica a Microsoft Word 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l’interfaccia a nastro di Word (Word 2007 e più tardi) qui: