Benutzerdefinierte Dokumenteigenschaften sind eine hervorragende Möglichkeit, eindeutige Informationen zu speichern, die einem Dokument zugeordnet sind. Beispielsweise haben Sie möglicherweise eine vom Unternehmen zugewiesene Dokumentennummer, die zusammen mit einem Dokument gespeichert werden muss. Eine benutzerdefinierte Eigenschaft passt zu diesem Zweck ganz gut zur Rechnung.

Wenn Sie einem Dokument benutzerdefinierte Eigenschaften hinzufügen, fragen Sie sich möglicherweise, ob es eine einfache Möglichkeit gibt, diese von einem Dokument in ein anderes zu kopieren.

Leider gibt es keine Möglichkeit, dies zu tun. (Nach meiner Einschätzung wäre diese Funktion eine gute Ergänzung für den Organizer.) Sie können jedoch ein Makro erstellen, das das Kopieren für Sie übernimmt. Das folgende Makro macht genau das:

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

Dieser Code ist ein Beispiel für das Kopieren benutzerdefinierter Eigenschaften, jedoch nicht kugelsicher. Beispielsweise wird nicht überprüft, ob das Quelldokument tatsächlich benutzerdefinierte Eigenschaften enthält. es wird nur davon ausgegangen, dass es solche gibt. Eine solche Codierung könnte jedoch leicht hinzugefügt werden.

Stellen Sie zur Verwendung des Makros sicher, dass nur die Quell- und Zieldokumente geöffnet sind und nur ein Fenster pro Dokument geöffnet sein sollte. Wenn das Makro fertig ist, müssen Sie das Zieldokument speichern.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (1340) gilt für Microsoft Word 97, 2000, 2002 und 2003. Sie finden eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Word (Word 2007) und später) hier: