Существует договор в формате word 2003. У него есть номер. Как можно сделать, чтобы при новом открытии данного документа у него увеличивался номер на один?
Я могу предложить два варианта (спасибо за помощь Александру Витеру). Оба варианта связаны с созданием макроса AutoOpen (действия, выполняемые при открытии документа).
1. Вот макрос, который использует закладки. Вам нужно выделить номер договора и создать закладку для него с именем num .
Sub AutoOpen()
'увеличиваем номер договора при каждом открытии документа
'в документе существующий номер должен быть закладкой с именем num
Dim bm As Bookmark
Dim i As Long
Set bm = ActiveDocument.Bookmarks("num")
i = Val(bm.Range.Text)
bm.Range.Select
With Selection
.Text = i + 1
.Bookmarks.Add Name:="num"
.Collapse wdCollapseEnd
End With
Set bm = Nothing
End Sub
2. Макрос с использованием переменной DOCVARIABLE. Выделите номер договора и вставьте сочетанием клавиш "CTRL+F9" поле (появятся фигурные скобки и мигающий курсор между ними). Между скобками вставьте выражение DOCVARIABLE dog , чтобы получилось примерно так: {DOCVARIABLE dog}. Затем разместите этот макрос в модуле документа или шаблона Normal.dot. Сохраните документ и закройте. При следующем открытии документа номер договора будет увеличен на единицу.
Sub AutoOpen()
On Error Resume Next
ActiveDocument.Variables("dog").Value = ActiveDocument.Variables("dog").Value + 1
If Err.Number = 5825 Then ActiveDocument.Variables.Add "dog", 1: Err.Clear
ActiveDocument.Fields.Update
End Sub