9

У меня есть документ с некоторыми переменными документа, и я пытаюсь использовать эти переменные в документе. Но так как переменные устанавливаются внешней системой (что не очень хорошо задокументировано), я играю в догадки. Я предполагаю, что существует переменная с "последней датой ревизии", и затем начинаю угадывать, как эта переменная могла быть вызвана.

Есть ли способ перечислить все переменные документа в документе MS Word и их значения, чтобы их можно было искать при использовании их в документе? (Я работаю над MS Office 2010)

2 ответа2

13

В Word есть несколько различных типов "переменных". Есть вещи, известные как "переменные документа", но есть и другие вещи, которые я буду называть "свойствами" - я постараюсь перечислить основные типы ниже.

В Word есть несколько мест, в которых вы можете найти некоторые типы свойств, но для истинных "переменных" и других типов свойств, если вы не можете использовать макросы или другой код, вам необходимо разархивировать файл .docx и посмотрите на различные файлы там.

Места, которые вы можете посмотреть в Word 2010 (здесь не отображаются переменные документа)...

а. В "Backstage" - посмотрите на вкладку "File", "Info", и вы должны увидеть некоторые свойства, перечисленные справа. Нажмите "Показать все свойства" в нижней части списка, и вы можете увидеть больше.

б. На вкладке Вставка, группа Текст, Быстрые детали-> Свойства вы должны увидеть список «Встроенные свойства + некоторые или все свойства, вставленные Sharepoint, если это то, что вы используете.

с. В "Информационной панели документа" (DIP). Если вы этого не видите, перейдите в меню "Файл", затем "Параметры", а затем, скажем, на панель быстрого доступа. Выберите "Выбрать команды" в разделе "Все команды", затем найдите "Свойства", выберите его и нажмите кнопку "Добавить". Затем вы должны увидеть значок на панели быстрого доступа, который имеет маленькое белое "i" на круглом синем фоне. Щелкните по нему, и вы увидите либо некоторые встроенные свойства (Автор, Заголовок и т.д.), Либо некоторые свойства "Тип контента" Sharepoint, если вы используете SharePoint. Вы можете переключаться между одним из нескольких представлений. Если затем щелкнуть раскрывающийся список в верхнем левом углу DIP и выбрать "Расширенные свойства", вы увидите диалоговое окно с несколькими вкладками, которое показывает

  • некоторые "встроенные" свойства

  • "определяемые пользователем" пользовательские свойства старого стиля.

Для всего остального вам, вероятно, придется искать в XML в .docx. Для этого сделайте копию вашего документа. Допустим, копия называется mydoc.docx. Переименуйте его в mydoc.docx.zip, откройте zip, затем найдите несколько вещей, как предложено ниже ...

а. Истинные переменные документа хранятся в папке word, в файле settings.xml, в элементе с именем w:docVars. Вы должны увидеть имя и значение для каждой переменной. Вы можете вставить значения переменных документа в ваш документ, используя поле {DOCVARIABLE variablename}.

б. Встроенные свойства документа, в том числе такие, как автор, заголовок и т.д. В большинстве случаев значения могут быть вставлены в документ с использованием специальных полей, таких как {AUTHOR} или, в некоторых случаях, полей {DOCPROPERTY}. Хотя это немного грязно, есть стандартный список имен. Вы можете найти большинство значений в папке docProps в файлах core.xml и app.xml. Однако некоторые ("Свойства титульной страницы"), если они используются, хранятся в одном из файлов «item.xml» (например, «item1.xml» в папке customXml).

с. «определяемые пользователем» пользовательские свойства документа старого стиля, которые в основном состоят из пар имя / значение, значения которых можно вставить в документ с помощью полей {DOCPROPERTY}, например { DOCPROPERTY mycustomproperty}. Они отображаются в диалоговом окне Дополнительные свойства ...., но в .docx они находятся в файле custom.xml в папке docProps.

д. пользовательские свойства нового стиля, также известные как "свойства Sharepoint" или "свойства типа содержимого", поскольку они часто создаются и заполняются из столбцов в списке Sharepoint. Значения хранятся в "Пользовательских частях XML" и могут быть вставлены с использованием элементов управления контентом, которые были настроены так, чтобы указывать на соответствующий бит XML. (Word 2007 и более поздние версии). В .docx вы найдете несколько "схем" для этих переменных и значения переменных в папке customXML, в файлах с именем «item1.xml», «item2.xml» и т.д.

е. наконец, любой разработчик может поместить свои собственные пользовательские части XML в документ Word и подключить элементы управления контентом к элементам и атрибутам в этих пользовательских частях XML. Я не буду пытаться вдаваться в детали того, как это делается, но вы найдете данные в файлах item1.xml, item2.xml и т.д. В customXML. Однако, чтобы найти сами элементы управления контентом, их имена и то, с чем они связаны, вам, как правило, нужно искать в папке word, например, document.xml, и, возможно, один или несколько из "header" и "footer". XML-файлы.

4

У меня была похожая проблема. Был сбой какого-то стороннего набора инструментов, и мне нужно было установить значение переменной.

Это немного грубо, но вот некоторый код VBA, который я добавил , который перечислит все переменные в ActiveDocument.Коллекция переменных ;

Public Sub ListAllVariables()
    Dim V As Variable, S As String
    For Each V In ActiveDocument.Variables
        S = S & V.Name & vbTab & V.Value & vbNewLine
    Next V
    MsgBox S
End Sub

Вы можете создать новый макрос и выбросить его туда, который должен дать вам информацию. Когда вы нашли имя интересующей вас переменной, вы можете установить его с помощью

ActiveDocument.Variables("MyVariable") = "Value"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .