Kopieren von benutzerdefinierten Eigenschaften (Microsoft Word)
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: