Le proprietà del documento personalizzate sono un ottimo modo per memorizzare informazioni univoche associate a un documento. Ad esempio, potresti avere un numero di documento assegnato dall’azienda che deve essere archiviato con un documento. Una proprietà personalizzata si adatta abbastanza bene a questo scopo.

Quando aggiungi proprietà personalizzate a un documento, potresti iniziare a chiederti se esiste un modo semplice per copiarle da un documento a un altro.

Purtroppo non c’è modo di farlo. (A mio avviso, questa capacità sarebbe un’ottima aggiunta all’Organizer.) Tuttavia, puoi creare una macro che eseguirà la copia per te. La seguente macro farà proprio questo:

Sub CopyDocProps()

Dim dp() As DocumentProperty     Dim CustomPropCount As Integer     Dim i As Integer     Dim intResponse As Integer

If Windows.Count > 2 Then         MsgBox "There are more than two windows. Please " & _           "close the others and re-run the macro.", , _           "Too many windows"

Exit Sub     End If

On Error GoTo Err_Handler

intResponse = MsgBox("Are you currently in the source document?", _       vbYesNoCancel, "Copy Custom Properties")



If intResponse = vbNo Then Application.Run MacroName:="NextWindow"



CustomPropCount = ActiveDocument.CustomDocumentProperties.Count     ReDim dp(1 To CustomPropCount)



For i = 1 To CustomPropCount         Set dp(i) = ActiveDocument.CustomDocumentProperties(i)

Next i

Application.Run MacroName:="NextWindow"



For i = 1 To CustomPropCount         If dp(i).LinkToContent = True Then             ActiveDocument.CustomDocumentProperties.Add _               Name:=dp(i).Name, _               LinkToContent:=True, _               Value:=dp(i).Value, _               Type:=dp(i).Type, _               LinkSource:=dp(i).LinkSource         Else             ActiveDocument.CustomDocumentProperties.Add _               Name:=dp(i).Name, _               LinkToContent:=False, _               Value:=dp(i).Value, _               Type:=dp(i).Type         End If     Next i

MsgBox "The properties have been copied."

Exit Sub

Err_Handler:

' if Word raises an error, then allow the user     ' to update the custom document property          intResponse = MsgBox("The custom document property (" & _       dp(i).Name & ") already exists." & vbCrLf & vbCrLf & _       "Do you want to update the value?", vbYesNoCancel, _       "Copy Custom Properties")



Select Case Response         Case vbCancel             End         Case vbYes             ActiveDocument.CustomDocumentProperties(dp(i).Name).Value _               = dp(i).Value             Resume Next         Case vbNo             Resume Next     End Select End Sub

Questo codice è un esempio di come copiare le proprietà personalizzate, ma non è a prova di proiettile. Ad esempio, non verifica se sono effettivamente presenti proprietà personalizzate nel documento di origine; presume solo che ci siano. Tuttavia, tale codifica potrebbe essere facilmente aggiunta.

Per utilizzare la macro, assicurati di avere solo i documenti di origine e di destinazione aperti e di avere solo una finestra aperta per documento. Quando la macro è terminata, sarà necessario salvare il documento di destinazione.

_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 (1340) 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: