In un ambiente aziendale, non è insolito stampare più copie di un documento. A volte è utile numerare le copie. Ad esempio, la prima copia avrebbe (forse in un’intestazione o in un piè di pagina) il testo “Copia 1”, la seconda avrebbe “Copia 2” su quante più copie hai.

Un’opzione, ovviamente, è stampare le singole copie del documento, apportando le modifiche al numero di copie tra ogni stampa. Questo diventa noioso, molto veloce. Potresti anche voler utilizzare un campo di numerazione sequenziale (come discusso in altri Suggerimenti_Word) e rendere il numero di copie uguale a quello che devi stampare. Pertanto, se devi stampare 25 copie, puoi semplicemente copiare l’intero documento (incluso il campo di numerazione sequenziale), spostarti alla fine del documento e incollarlo altre 24 volte. Ciò rende tuttavia un documento complessivo piuttosto ampio e ci sono modi più semplici per affrontare il problema.

Forse la soluzione più semplice a questo problema (a parte l’utilizzo di una macro) consiste nell’usare semplicemente le funzionalità di stampa unione di Word. Utilizzeresti una semplice origine dati che conteneva i numeri che desideri assegnare a ciascuna copia. Quindi, posiziona il campo di unione nella posizione appropriata nel nostro documento ed esegui l’unione. Ogni copia conterrà il numero di copia desiderato. Il vantaggio aggiuntivo dell’utilizzo di questo approccio è che è possibile utilizzare informazioni aggiuntive con la propria unione, in base alle esigenze. Ad esempio, se ciascuna copia del documento è stata assegnata a una determinata persona, è possibile aggiungere semplicemente un altro campo dati alla propria origine dati che contenga il nome della persona che riceverà la copia. Quindi, puoi anche stampare il nome di quella persona in ogni documento unito.

Se preferisci, puoi utilizzare una macro per stampare le tue copie numerate.

Ad esempio, la seguente macro ti chiede quante copie vuoi stampare, insieme al numero di copia iniziale da usare. (Questo è molto utile se stampi 25 copie e poi qualcuno ti chiede di stampare un secondo lotto di 10, numerato da 26 a 35.) La macro memorizza anche l’ultimo numero di copie tra le sessioni, in modo che venga usato come predefinito alla successiva esecuzione della macro.

Public Sub PrintNumberedCopies1()

Dim varItem As Variable     Dim bExists As Boolean     Dim lCopiesToPrint As Long     Dim lCounter As Long     Dim lCopyNumFrom As Long

' ensure our doc variable exists     bExists = False     For Each varItem In ActiveDocument.Variables         If varItem.Name = "CopyNum" Then             bExists = True             Exit For         End If     Next varItem

' initialize document variable if doesn't exist     If Not bExists Then         ActiveDocument.Variables.Add _             Name:="CopyNum", Value:=0     End If

' ask how many to print     lCopiesToPrint = InputBox( _         Prompt:="How many copies?", _         Title:="Print And Number Copies", _         Default:="1")



' ask where to start numbering     lCopyNumFrom = CLng(InputBox( _         Prompt:="Number at which to start numbering copies?", _         Title:="Print And Number Copies", _         Default:=CStr(ActiveDocument.Variables("CopyNum") + 1)))



' loop through the print-write-print cycle     For lCounter = 0 To lCopiesToPrint - 1         ' update the document variable         ActiveDocument.Variables("CopyNum") = _             lCopyNumFrom + lCounter         ' print this numbered copy         ActiveDocument.PrintOut Copies:=1     Next lCounter End Sub

Per utilizzare questa macro, ci sono altre due cose che devi fare.

Innanzitutto, è necessario indicare nel documento dove si desidera che appaia il numero di copia. Nel punto in cui dovrebbe stampare, inserisci semplicemente il seguente campo (ricorda che inserisci le parentesi graffe del campo premendo Ctrl + F9):

{ DOCVARIABLE "CopyNum" }

La seconda cosa che devi fare è assicurarti che Word sia configurato in modo che aggiorni i campi durante la stampa. Ora, quando esegui la macro, ti viene chiesto quante copie stampare e quale numero iniziale usare. La variabile del documento viene aggiornata e viene stampata una singola copia del documento. Questi passaggi vengono ripetuti per il numero di volte che hai scelto di stampare.

Sfortunatamente, questa soluzione macro non funzionerà in tutte le versioni di Word. Ad esempio, se si inserisce il campo DOCVARIABILE nell’intestazione di un documento di Word 97 e quindi si stampa il documento, Word si bloccherà immediatamente.

Come aggirare questo problema? Usa semplicemente un approccio diverso. (Word non è niente, se non flessibile.) La seguente macro funziona in tutte le versioni moderne di Word. È una variazione della precedente che si basa sull’uso di proprietà del documento personalizzate invece delle variabili del documento.

Public Sub PrintNumberedCopies2()

Dim varItem As DocumentProperty     Dim bExists As Boolean     Dim lCopiesToPrint As Long     Dim lCounter As Long     Dim lCopyNumFrom As Long

' ensure our doc variable exists     bExists = False     For Each varItem In ActiveDocument.CustomDocumentProperties         If varItem.Name = "CopyNum" Then             bExists = True             Exit For         End If     Next varItem

' initialize document variable if doesn't exist     If Not bExists Then         ActiveDocument.CustomDocumentProperties.Add _             Name:="CopyNum", LinkToContent:=False, _             Type:=msoPropertyTypeNumber, Value:=0     End If

' ask how many to print     lCopiesToPrint = InputBox( _         Prompt:="How many copies?", _         Title:="Print And Number Copies", _         Default:="1")



' ask where to start numbering     lCopyNumFrom = CLng(InputBox( _         Prompt:="Number at which to start numbering copies?", _         Title:="Print And Number Copies", _         Default:=CStr(ActiveDocument.CustomDocumentProperties("CopyNum") + 1)))



' loop through the print-write-print cycle     For lCounter = 0 To lCopiesToPrint - 1         ' update the document variable         ActiveDocument.CustomDocumentProperties("CopyNum") = _             lCopyNumFrom + lCounter         ' print this numbered copy         ActiveDocument.PrintOut Copies:=1     Next lCounter End Sub

Per utilizzare questa macro, ci sono altre due cose che devi fare.

Innanzitutto, è necessario indicare nel documento dove si desidera che appaia il numero di copia. Nel punto in cui dovrebbe stampare, inserisci semplicemente il seguente campo (ricorda che inserisci le parentesi graffe del campo premendo Ctrl + F9):

{ DOCPROPERTY "CopyNum" }

Quando si inserisce il campo per la prima volta, è possibile che venga visualizzato un messaggio di errore restituito dal campo, ad esempio “Errore! Nome proprietà documento sconosciuto”. Non preoccuparti; questo scomparirà e verrà sostituito dal numero di copia corretto dopo aver eseguito la macro.

La seconda cosa che devi fare è assicurarti che Word sia configurato in modo che aggiorni i campi durante la stampa. Ora, quando esegui la macro, ti viene chiesto quante copie stampare e quale numero iniziale usare. La variabile del documento viene aggiornata e viene stampata una singola copia del documento. Questi passaggi vengono ripetuti per il numero di volte che hai scelto di stampare.

_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 (844) si applica a Microsoft Word 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l’interfaccia della barra multifunzione di Word (Word 2007 e più tardi) qui: