Дайте дальнейшую мысль об этом, и вот еще один подход, который вы можете рассмотреть. Если вас не интересует каталог предыдущих идентификаторов, вы можете просто использовать пользовательское свойство документа для хранения последнего использованного идентификатора.
В Word 97-2003 вы можете добавить пользовательское свойство, перейдя в «Файл / Свойства», выбрав пользовательскую вкладку и присвоив ей имя и значение. Добавление пользовательского свойства документа в Word 2007 немного сложнее, и мне кажется, что это «Кнопка Office / Подготовка / Свойства документа», выберите маленький выпадающий список для дополнительных свойств, и вы получите то же Старый диалог до 2007 года.
В приведенном ниже примере я назвал свой просто «DocumentID» и присвоил ему начальное значение ноль.
Соответствующий бит кода для обновления пользовательского свойства документа:
ThisDocument.CustomDocumentProperties("DocumentID").Value = NewValue
В качестве подтверждения концепции я создал файл .dot и использовал следующий код в событии Document_New ():
Sub UpdateTemplate()
Dim Template As Word.Document
Dim NewDoc As Word.Document
Dim DocumentID As DocumentProperty
Dim LastID As Integer
Dim NewID As Integer
'Get a reference to the newly created document
Set NewDoc = ActiveDocument
'Open the template file
Set Template = Application.Documents.Open("C:\Doc1.dot")
'Get the custom document property
Set DocumentID = Template.CustomDocumentProperties("DocumentID")
'Get the current ID
LastID = DocumentID.Value
'Use any method you need for determining a new value
NewID = LastID + 1
'Update and close the template
Application.DisplayAlerts = wdAlertsNone
DocumentID.Value = NewID
Template.Saved = False
Template.Save
Template.Close
'Remove references to the template
NewDoc.AttachedTemplate = NormalTemplate
'Add your ID to the document somewhere
NewDoc.Range.InsertAfter ("The documentID for this document is " & NewID)
NewDoc.CustomDocumentProperties("DocumentID").Value = NewID
End Sub
Удачи!