Copia delle proprietà personalizzate (Microsoft Word)
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: