1

Тема: Переменные docvariable

Каким образом можно понять какие переменные прописаны в docvariable.

Сколько и какие переменные и с какими значениями. Это где-нибудь видно?

Макросом можно ли вывести все переменные docvariable в текст (имя и значение)?

2

Re: Переменные docvariable

tna пишет:

Каким образом можно понять какие переменные прописаны в docvariable.
Сколько и какие переменные и с какими значениями. Это где-нибудь видно?
Макросом можно ли вывести все переменные docvariable в текст (имя и значение)?

Переменные - это коллекция специальных объектов, хранимых вместе с документом. Их можно создавать, изменять, удалять. Их можно применять в тексте документа, например,  через поле {DOCVARIABLE "varname"} .
Вот пример - выдать в отладочной печати все переменные документа.

Sub DocVars()
Dim i As Long
For i = 1 To ActiveDocument.Variables.count
Sub DocVars()
Dim i As Long
For i = 1 To ActiveDocument.Variables.count
    Debug.Print ActiveDocument.Variables(i).Name & " = " & ActiveDocument.Variables(i).Value
Next i
End Sub
Next i
End Sub

3

Re: Переменные docvariable

yshindin пишет:

. . .
Вот пример - выдать в отладочной печати все переменные документа.
. . .

Прошу прощения, лишние строки затесались
Вот правильный код.

Sub DocVars()
Dim i As Long
For i = 1 To ActiveDocument.Variables.count
    Debug.Print ActiveDocument.Variables(i).Name & _
               " = " & ActiveDocument.Variables(i).Value & VbCrLf
Next i
End Sub

4

Re: Переменные docvariable

Почему то не выводит на экран (

5

Re: Переменные docvariable

tna пишет:

Почему то не выводит на экран (

VBA выводит это в область Immediate среды отладки. Перейдите в среду VBE (Alt+F11), отобразите область Immediate, затем запустите макрос.

6

Re: Переменные docvariable

tna пишет:

Почему то не выводит на экран (

Впрочем, если в документе еще нет переменных, то ничего не будет выведено.
Попробуйте такой код:

Sub DocVars()
Dim i As Long
ActiveDocument.Variables.add name:="FirstVariable", Value:="Any value"
For i = 1 To ActiveDocument.Variables.count
    Debug.Print ActiveDocument.Variables(i).name & _
               " = " & ActiveDocument.Variables(i).Value & vbCrLf
Next i
End Sub

7

Re: Переменные docvariable

работает предпоследний макрос

Sub DocVars()
Dim i As Long
For i = 1 To ActiveDocument.Variables.count
    Debug.Print ActiveDocument.Variables(i).Name & _
               " = " & ActiveDocument.Variables(i).Value & VbCrLf
Next i
End Sub

yshindin   спасибо

8

Re: Переменные docvariable

Очень удобную надстройку, позволяющую работать с переменными документа, закладками и свойствами (Word Variables, Bookmarks and Properties editor add-in for Word 2007 - 2016), которую разработал Graham Mayor (ник на англоязычных сайтах - gmayor)  можно скачать отсюда:
внешняя ссылка

После запуска надстройки в открывшемся окне можно увидеть все переменные документа, отредактировать (при необходимости) их значения, создать новые переменные, а также работать с закладками и свойствами документа.

9

Re: Переменные docvariable

Спасибо, но у меня 2003 (

10

Re: Переменные docvariable

После танца с бубном удалось подключить к 2003. Очень удобная надстройка. Еще раз спасибо.

11

Re: Переменные docvariable

Вопрос решен. Тема закрыта Всем спасибо.