Як знайти змінні документа в MS Word без використання макросу


10

У мене є документ із деякими змінними документа, і я намагаюся використовувати ці змінні в документі. Але оскільки змінні встановлюються зовнішньою системою (що недостатньо задокументовано), я граю у здогадки. Я припускаю, що існує змінна "дата останнього перегляду", а потім починаю здогадуватися, як ця змінна могла бути названа.

Чи є спосіб перерахувати всі змінні документа в документі MS Word та їх значення, щоб можна було їх шукати, використовуючи їх у документі? (Я працюю над MS Office 2010)

Відповіді:


13

У Word є кілька різних типів "змінної", Є речі, відомі як "Змінні документи", але є й інші речі, які я буду називати "властивостями" - я спробую перерахувати основні типи нижче.

У Word є кілька місць, де ви можете знайти деякі типи властивостей, але для справжніх "змінних" та інших типів властивостей, якщо ви не можете використовувати макроси або інший код, вам потрібно буде розпакувати файл .docx і подивіться на різні файли там.

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

а. У "За лаштунками" - перегляньте вкладку "Файл", "Інформація", і ви повинні побачити деякі властивості, перелічені праворуч. Натисніть "Показати всі властивості" внизу списку, і ви можете побачити більше.

б. На вкладці "Вставка", "Текстова група", "Швидкі частини -> Властивості" ви повинні побачити список "Вбудовані властивості + деякі або всі властивості, вставлені Sharepoint", якщо для цього ви користуєтеся.

c. У розділі "Інформаційна панель документів" (DIP). Якщо цього не бачите, перейдіть у меню Файл, а потім Опції, а потім (скажіть) Панель інструментів швидкого доступу. Виберіть "Вибрати команди" у розділі "Усі команди", потім знайдіть "Властивості", виберіть його та натисніть кнопку Додати. Потім ви повинні побачити значок на панелі інструментів швидкого доступу, який має невелике біле "я" на синьому круговому фоні. Клацніть це, і ви побачите або деякі вбудовані властивості (Автор, Заголовок тощо), або деякі властивості Sharepoint "Тип вмісту", якщо ви використовуєте SharePoint. Можливо, ви зможете переключитися між одним із декількох переглядів. Якщо потім натиснути спадне меню у верхньому лівому куті DIP та вибрати "Розширені властивості", ви побачите діалогове вікно з декількома вкладками, яке показує

  • деякі "вбудовані" властивості

  • старі стилі "визначені користувачем" власні властивості документа.

Для всього іншого вам, ймовірно, доведеться шукати XML у .docx. Для цього зробіть копію свого документа. Скажімо, копія називається mydoc.docx. Перейменуйте це на mydoc.docx.zip, відкрийте поштовий індекс та шукайте ряд речей, як запропоновано нижче ...

а. правдиві змінні документа зберігаються у папці word, у settings.xml, в елементі, який називається w: docVars. Ви повинні побачити ім'я та значення для кожної змінної. Ви можете вставити значення змінних документів у документ, використовуючи поле {DOCVARIABLE ім'я змінної}.

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

c. власні властивості документа, визначені користувачем у старому стилі, які складаються переважно із пар імен / значень, значення яких можна вставити в документ, використовуючи поля {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. Однак, щоб знайти самі елементи керування вмістом, їхні назви та те, що вони також пов’язані, вам зазвичай потрібно шукати в папці слів за адресою, наприклад, document.xml та, можливо, одне чи більше "заголовка" та "нижнього колонтитула". XML-файли.


Чудова відповідь. Дякую! Одне зауваження: "b. На вкладці" Вставка "," Текстова група "," Швидкі запчастини -> "Властивості, ви повинні побачити список" Вбудовані властивості + деякі або всі властивості, вставлені Sharepoint, якщо для цього ви використовуєте ". Здається, у Quick Parts немає "Властивості"
якийсь користувач

Моя помилка - це повинні бути Швидкі частини-> Властивість документа

Властивості та DocVariables виглядають досить схожими в тому, як ви можете використовувати їх у текстових полях та VBA. Чи є компроміси?
BenPen

5

У мене була подібна проблема. Якийсь інструментарій сторонніх інструментів вийшов з ладу, і мені потрібно було встановити змінне значення.

Це трохи сильно, але ось якийсь код VBA, який я збив, перелічить усі змінні ActiveDocument.Variablesколекції;

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"

2
Це дуже круто, дякую. Дуже погано, що Microsoft не надала попередньо упакований тип вікна вибору, який ви даєте йому колекції, і ви отримуєте спливаюче вікно з двома стовпцями, яке дозволяє вам вибрати один або кілька елементів із колекції (або додати нове значення до фактична колекція), а потім дозволяє вашому коду VBA отримати доступ до обраних елементів у виклику суб / функції.
BenPen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.