Копирование пользовательских свойств (Microsoft Word)
Настраиваемые свойства документа — отличный способ хранить уникальную информацию, связанную с документом. Например, у вас может быть номер документа, присвоенный компанией, который необходимо сохранить вместе с документом. Для этой цели вполне подходит нестандартное свойство.
Добавляя настраиваемые свойства в документ, вы можете начать задаваться вопросом, есть ли простой способ скопировать их из одного документа в другой.
К сожалению, сделать это невозможно. (По моему мнению, эта возможность станет прекрасным дополнением к Организатору.) Однако вы можете создать макрос, который будет выполнять копирование за вас. Следующий макрос сделает именно это:
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
Этот код является примером того, как копировать настраиваемые свойства, но он не является пуленепробиваемым. Например, он не проверяет, есть ли на самом деле какие-либо настраиваемые свойства в исходном документе; он просто предполагает, что есть. Однако такое кодирование можно легко добавить.
Чтобы использовать макрос, убедитесь, что у вас открыты только исходный и целевой документы, и у вас должно быть открыто только одно окно для каждого документа. Когда макрос будет завершен, вам нужно будет сохранить целевой документ.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (11671) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старый интерфейс меню Word здесь:
link: / word-Copying_Custom_Properties [Копирование настраиваемых свойств]
.