Las propiedades personalizadas del documento son una excelente manera de almacenar información única asociada con un documento. Por ejemplo, puede tener un número de documento asignado por la empresa que debe almacenarse con un documento. Una propiedad personalizada encaja perfectamente con este propósito.

A medida que agrega propiedades personalizadas a un documento, puede comenzar a preguntarse si existe una manera fácil de copiarlas de un documento a otro.

Desafortunadamente, no hay forma de hacer esto. (En mi opinión, esta capacidad sería una excelente adición al Organizador). Sin embargo, puede crear una macro que haga la copia por usted. La siguiente macro hará precisamente eso:

Sub CopyDocProps()

Dim dp() As DocumentProperty     Dim CustomPropCount As Integer     Dim i As Integer     Dim iResponse 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

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



If iResponse = 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          iResponse = 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 iResponse         Case vbCancel             End         Case vbYes             ActiveDocument.CustomDocumentProperties(dp(i).Name).Value _               = dp(i).Value             Resume Next         Case vbNo             Resume Next     End Select End Sub

Este código es un ejemplo de cómo copiar propiedades personalizadas, pero no es a prueba de balas. Por ejemplo, no comprueba si realmente hay propiedades personalizadas en el documento de origen; simplemente asume que los hay. Sin embargo, tal codificación podría agregarse fácilmente.

Para usar la macro, asegúrese de que solo tiene abiertos los documentos de origen y de destino, y solo debe tener una ventana abierta por documento. Cuando finalice la macro, deberá guardar el documento de destino.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Esta sugerencia (11671) se aplica a Microsoft Word 2007, 2010, 2013, 2016, 2019 y Word en Office 365. Puede encontrar una versión de esta sugerencia para interfaz de menú anterior de Word aquí:

link: / word-Copying_Custom_Properties [Copiando propiedades personalizadas].