Sdscompany.ru

Компьютерный журнал
62 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Переменные в word

Переменные в word

Поля (коллекция Fields) используются в документах Word достаточно широко и играют множество самых разных ролей. Поэтому стоит поговорить о них подробнее. В зависимости от назначения поля оно относится к одной из 9 возможных категорий. Нет смысла и возможности заниматься полным анализом этих категорий, но некоторые основные роли, которые играют поля, я перечислю:

    Поля могут хранить в документе некоторую обновляемую информацию. Такими полями являются поля Date и Time из категории Date and Time, хранящие текущую дату и текущее время. В полях Author , FileName , KeyWords , NumPages и других полях из категории Document Information содержится подробная информация о документе авторе документа, файле, в котором он находится, числе занимаемых страниц. В полях UserName и UserAddress из категории User Information хранится информация о фамилии и адресе владельца компьютера, используемая по умолчанию для создания поля Author документа, для создания обратного адреса по умолчанию при работе с конвертами. Эта роль полей достаточно понятна. Ясно, как программно и вручную можно работать с такими полями. Заметим, что значения некоторых из упомянутых полей меняются автоматически, например, время, дата, число страниц документа (число страниц документа — 57, число символов — 149609, дата — 01.07.2006, время — 9:27 )

Я только что вставил в текст, указанный в скобках, ряд полей и получил текущую информацию. За время печати этого замечания значения некоторых из этих полей число символов документа и время изменились.
Поля играют важную роль при создании документов с помощью слияния. Зачастую возникает необходимость создания группы однотипных документов, отличающихся лишь небольшими деталями. Типичным примером такого рода является группа рассылаемых писем, отличающихся адресом, названием компании и другими деталями. В этом случае создается главный документ, содержащий шаблон письма с полями и документ, хранящий источник данных. Поля главного документа задают переменную часть письма адрес, название компании и другие данные. Значения этих данных хранятся в источнике данных, который может быть таблицей Word, Access или Excel. Слияние главного документа с одной записью источника данных (строкой таблицы) приводит к появлению нового документа (письма). В слиянии могут участвовать как все записи источника данных, так и только часть из них, выбранная по запросу. В результате возникает необходимая совокупность писем. Имена полей в этом случае могут быть произвольными и представляют имена столбцов в таблице, задающей источник данных. Помимо этих полей в главном документе могут встречаться и поля Word из тех 9 категорий, о которых я уже говорил. В ситуациях слияния часто используются такие поля как Ask и Fill-In , позволяя в момент слияния запросить и добавить в документ индивидуальную информацию, не хранящуюся в записях источника данных. Поле Fill-In позволяет запросить данные при создании документа и сделать полученный ответ значением этого поля. Поле Ask работает аналогичным образом, за тем исключением, что ответ не становится значением поля, а связывается с некоторой создаваемой в этот момент закладкой. Затем эту закладку можно использовать в документе различными способами, принятыми для закладок. На деталях работы вручную останавливаться не буду, но пример такого главного документа приведу:


Рис. 1.14. Главный документ с полями разных типов

Заметьте, поля в главном документе подсвечены и среди них есть как поля, заданные источником данных, так и общие для Word поля, Ask , Fill-In , Formula , Date . Вот как выглядит источник данных, с которым я проводил эксперименты:

увеличить изображение: увеличить изображение,
Рис. 1.15. Источник данных для слияния документов

Чтобы картина была полной, взгляните на один из документов, полученных в результате слияния главного документа и источника данных:


Рис. 1.16. Документ, полученный слиянием главного документа и источника данных

  • Еще одним видом документа Word, использующим поля, является электронная форма. Необходимость в таких документах возникает, например, при пересылке анкет по электронной почте. Получатель формы заполняет поля анкеты, которые могут быть элементами управления: обычными текстовыми окнами ввода, флажками или выпадающими списками. Как поля они имеют имена: FormTextBox , FormCheckBox , FormDropDown .
  • Говоря о полях, нельзя не упомянуть о таком важном и интересном поле, как поле Formula, позволяющее организовывать вычисления в документах Word. Эти вычисления, чаще всего, организуются в ячейках таблиц Word, но могут быть вставлены и в произвольное место документа. Пример такого поля приведен в главном документе. Строятся формулы аналогично формулам Excel и могут работать как с закладками, используемыми в качестве имен переменных, так и с ячейками таблиц Word. При вычислениях можно использовать некоторые из встроенных функций, допустимых в Excel. Тема вычислений в документах Word , его таблицах заслуживает, конечно, более подробного освещения, чем эти несколько строчек. Но обо всем сказать, нам не дано.
  • Есть и другие случаи применения полей в документах Word. Например, поля автоматически создаются при создании таблиц ссылок, о которых я рассказывал ранее.
  • Я постарался кратко описать достаточно сложную тему работы с полями в документах Word. Конечно, обычно работа с полями выполняется вручную. Вряд ли, например, есть смысл создавать документ слияния программным путем. Поэтому, говоря о программировании работы с полями, я ограничусь достаточно простыми примерами. В основе программной работы с полями лежит работа с коллекцией полей Fields (Field). В следующем примере анализируются (печатаются) основные свойства объекта Field :

    Приведем результаты отладочной печати для главного документа, имеющего обширную коллекцию полей разного типа:

    Большинство полей в этом документе это поля слияния (MergeField), значения которых берутся из источника данных в момент слияния главного документа с записями источника данных. Обратите внимание, ситуация с полями напоминает ситуацию с ячейками Excel, с одной стороны в ячейке содержится формула (в поле код поля), с другой стороны вычисленное по формуле значение (результат поля). По желанию всегда можно включить просмотр в полях либо кода поля, либо результата. По умолчанию, также как и для ячеек Excel, показывается результат поля. Свойство Kind, которое для всех полей нашего документа имеет одинаковое значение, указывает на то, как происходит автоматическое обновление значения поля, имеет ли поле результат.

    Для программного создания полей используется, как обычно, метод Add коллекции Fields . Он имеет следующий синтаксис:

    Параметр Range определяет область документа, в которую вставляется поле, Type тип поля, из-за разнообразия типов этот параметр имеет около сотни различных значений. Параметр Text чаще всего используется в тех случаях, когда нужно задать переключатели, определяющие специфику работы поля. Последний параметр определяет, будет ли сохраняться форматирование при обновлении значения поля.

    Читать еще:  Недостаточно памяти для завершения word

    Рассмотрим теперь пример программного добавления полей в документ. Я ограничусь достаточно простой ситуацией. Добавим в начало документа три поля, задающие автора документа, дату и время:

    В этой процедуре добавляются три пустых абзаца в начало документа, а затем добавляются три поля. Затем демонстрируется еще один способ работы с полями, когда вначале задается пустое поле, а потом в нем печатается текст, определяющий это поле. Конечно, это должен быть разумный текст, определяющий тип поля и его характеристики. Так, зачастую, работают с полями вручную. Заметьте, необходимо обновить это поле, чтобы поле отражало значение результата. Печать результатов до обновления и после обновления позволяет проследить за изменениями значений полей. Приведем результаты отладки:

    Работа с фрагментами

    StoryRanges(Range) — эта коллекция представляет совокупность частей документа, называемых фрагментами (Story). Количество различных фрагментов документа фиксировано. Нельзя добавлять элементы в эту коллекцию обычным способом, используя метод Add . Фрагменты появляются в коллекции, когда создается соответствующая часть документа. В этот момент определяется и тип фрагмента. Фрагменты имеют тип, задаваемый константами из перечисления wdStoryType . Главный фрагмент, конечно, — текст документа, тип которого задается константой wdMainTextStory . Фрагментами других типов являются комментарии, ссылки, колонтитулы. Заметьте: сам фрагмент является объектом Range . Так что благодаря фрагментам можно, например, работать с коллекцией комментариев, как с единой областью.

    Приведем пример, где анализируются типы фрагментов активного документа:

    Тестовый документ состоит из фрагментов четырех типов, так как он, кроме текста, содержит комментарии и два типа ссылок. Вот результаты отладочной печати:

    Переменные, которые живут долго

    У переменных век не долог. Локальные переменные, как правило, заканчивают существование в момент окончания работы процедуры, в которой они описаны. Глобальные переменные живут дольше, некоторые из них могут быть доступными в разных программных проектах системы документов в процессе работы с этими документами.

    Однако и локальные и глобальные переменные «умирают» по окончании сеанса работы. Для того чтобы сохранять данные между сеансами работы, необходимо использовать файлы, базы данных и другие внешние источники даных. Замечу, что, конечно, есть еще возможность хранить данные, как часть самого документа, например, в таблицах Word или Excel. Но сейчас мы поговорим еще об одной интересной возможности, предоставляемой при работе с офисными документами. С каждым из документов можно связать коллекцию переменных типа Variant коллекцию Variables(Variable). Эта коллекция для программистов важна — ведь время жизни входящих в нее переменных совпадает со временем жизни документа. По существу речь идет о некотором специальном файле переменных, жестко связанном с самим документом и хранящимся вместе с ним. Тем самым появляется возможность сохранять информацию о работе документе между сеансами. Применения этого полезного средства могут быть самыми разными. Можно сохранять предпочтения, сделанные пользователем при первом сеансе работы с документом, различные настройки документа и так далее. Другое применение связано с предоставлением документа во временное владение с ограничением числа возможных запусков. Например, можно иметь счетчики, подсчитывающие количество вызовов некоторой процедуры и в зависимости от значения счетчика по-разному определять дальнейшую работу с данным документом. Переменные, входящие в коллекцию Variables , создаются не так, как обычные переменные, нет необходимости в их описании в разделе объявлений какого либо модуля. Они имеют фиксированный тип Variant и создаются методом Add , типичным для создания элементов коллекций. Этот метод имеет достаточно прозрачный синтаксис:

    В момент создания задается имя переменной и, возможно, инициализирующее ее значение. Тип, как я уже говорил, установлен по умолчанию.

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

    При попытке повторного добавления одной и той же переменной в коллекцию Variables возникает ошибка. В тоже время процедура, в которой происходит добавление, может выполняться многократно. Поэтому я предусматриваю соответствующую проверку на существование переменной с заданным именем в коллекции Variables . Может возникнуть вопрос, куда поместить процедуру CreateVar , создающую переменную. Я поместил ее в процедуру, обрабатывающую событие «Open» документа, но можно упрятать этот вызов и более глубоко. Рассмотрим теперь, как происходит работа с переменной Counter :

    Экспериментируя с тестовым документом, я открывал и закрывал его многократно, время от времени, вызывая процедуру CheckVar . После 11 ее запусков нормальное выполнение было прервано и выдалось предупреждающее сообщение:

    увеличить изображение: увеличить изображение,
    Рис. 1.17. Документ в момент выдачи предупреждающего сообщения.

    Текстовые переменные

    На этой странице

    某些 Creative Cloud 应用程序、服务和功能在中国不可用。

    Создание и редактирование текстовых переменных

    Текстовая переменная — это элемент, вставляемый в документ и имеющий в зависимости от контекста различное содержание и вид. Например, переменная «Номер последней страницы» представляет номер последней страницы документа. При добавлении или удалении страниц переменная соответствующим образом обновляется.

    InCopy реализует несколько стандартных текстовых переменных, которые могут быть вставлены в документ. Можно изменить их формат, а также создавать свои собственные. Некоторые переменные (например, «Верхний колонтитул» или «Номер главы») особенно удобно добавлять на страницы-шаблоны для обеспечения согласованности форматирования и нумерации. Другие переменные, например «Дата создания» или «Имя файла» могут оказаться уместными в служебной области при печати.

    Добавление в переменную слишком большого объема текста может привести к его вытеснению или сжатию. Текст переменной не переносится на следующую строку.

    Создание или редактирование текстовых переменных

    Параметры, доступные при создании переменной, зависят от заданного типа. Например, если выбран тип «Номер главы», можно задать текст для отображения до и после номера, а также определить стиль нумерации. На основе одного и того же типа переменной могут быть заданы несколько переменных. Например, можно создать переменную, которая отображает текст «Глава 1», а другую с текстом «Гл. 1».

    Подобным же образом, если выбран тип «Верхний колонтитул», можно задать стиль для использования в качестве основы верхнего колонтитула и определить параметры удаления пунктуации в конце предложения и изменения регистра.

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

    Выберите меню «Текст» > «Текстовые переменные» > «Определить».

    Нажмите кнопку «Новый» или выберите существующую переменную и нажмите кнопку «Редактировать».

    Введите имя для переменной, например «Полное название главы» или «Колонтитул».

    В меню «Текст» выберите тип переменной, задайте для него параметры и нажмите кнопку «ОК».

    В зависимости от выбранного типа переменной будут доступны различные параметры.

    Читать еще:  Как посчитать количество знаков в word

    Текст перед / Текст после

    Для переменных всех типов (кроме типа «Пользовательский текст») может быть задан текст, добавляемый до и после переменной. Например, перед переменной «Номер последней страницы» можно добавить слово «из», чтобы на каждой странице выводилось «. из 12 страниц». Номер последней страницы будет обновляться автоматически при изменении общего числа страниц в документе. В эти поля может быть также вставлен текст, однако специальные символы (например, символы табуляции и автоматические номера страниц), будут опущены. Для вставки специальных символов нажмите треугольник справа от текстового поля.

    Для всех типов переменных нумерации может быть задан стиль нумерации. Если выбран «[Текущий стиль нумерации]», то для переменной используется стиль нумерации, выбранный в диалоговом окне «Параметры нумерации и разделов» документа.

    ИТ-записки Чорнага кашака

    Язык программирования самого высокого уровня содержит всего несколько команд для управления программистами

    15 мар. 2010 г.

    Использование полей и закладок при работе с MS Word из Delphi

    В предыдущей заметке «Поиск и замена текста в документе MS Word из Delphi» я рассказывал, как дорабатывал старый модуль, который генерирует клиентам компании письма в формате MS Word с помощью поиска и замены текста. Сдав модуль заказчикам, я в свободное от работы время, переделал его. Вместо поиска и замены использовал поля с переменными (DocVariable).
    В шаблон письма с помощью макроса добавил переменные

    Sub AddFields()
    ThisDocument.Variables.Add «FIO», «FIO»
    ThisDocument.Variables.Add «ADDRESS», «ADDRESS»
    .
    End Sub

    и расставил поля по тексту шаблона. В макросе у метода Add первый параметр – название переменной, а второй – ее значение. Я специально сделал их одинаковыми, чтобы пользователям было проще и нагляднее редактировать шаблоны.
    Затем внес изменения в методы модуля работающие с MS Word. Если опустить все детали и различную логику, то упрощенно работа с MS Word выглядит так:

    Var
    wa: WordApplication;
    ovDotName, ovFileName: OleVariant;
    i: Integer;
    q: TSDQuery;
    .
    begin
    .
    wa := CreateComObject(CLASS_WordApplication) as _Application;
    ovDotName := ‘какой то шаблон.dot’;
    wa.Documents.Add(ovDotName, EmptyParam, EmptyParam, EmptyParam);

    For i := 0 to q.FieldCount-1 do
    MSWordSetVariable(q.Fields[i].FieldName, q.Fields[i].AsString);
    .
    ovFileName := ‘письмо любимому клиенту.doc’;
    wa.ActiveDocument.SaveAs(ovFileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
    .

    Вот такая логика у индусов, писавших этот кусок MS Word.

    После присвоения значений всем переменным, осталось только дать команду полям обновиться новыми значениями переменных. Для этого в VBA у коллекции объектов полей (Fields) есть метод Update:

    А для того, чтобы избежать дальнейшего обновления полей, избавимся от их связи с переменными:

    У каждого структурного элемента документа (заметки, колонтитула, сноски и т.д.) своя коллекция объектов полей, поэтому, если документ, как у меня, состоит из разных структурных элементов, то методы Update и Unlink необходимо вызвать для каждого из этих элементов. Для этого перебираем все элементы коллекции StoryRanges.

    procedure MSWordUpdateStoryRanges;
    Var
    StoryRanges: Word2000.StoryRanges;
    StoryRange: Word2000.Range;
    iStoryIndex: integer;
    Begin
    StoryRanges := wa.ActiveDocument.StoryRanges;
    For iStoryIndex := wdMainTextStory to wdFirstPageFooterStory do
    Try
    StoryRange := StoryRanges.Item(iStoryIndex);
    If StoryRange <> nil then
    begin
    StoryRange.Fields.Update;
    StoryRange.Fields.Unlink;

    While (StoryRange.NextStoryRange <> nil) do
    begin
    StoryRange := StoryRange.NextStoryRange;
    StoryRange.Fields.Update;
    StoryRange.Fields.Unlink;
    end;
    end;
    Except
    StoryRange := nil;
    End;
    End;

    И вызываю ее перед сохранением документа.

    Все бы ничего, но часть текста передаваемого из программы в MS Word необходимо было выводить жирным шрифтом. А это через переменные не сделать 🙁 В подобном случае «поиск и замену текста» можно заменить на «переход к закладке и вывод текста». Например, в шаблон вставляем закладку с именем ‘писать текст сюда’, а в программе пишем:

    Вот и все 🙂
    Раннее связывание и использование полей/закладок дало существенный рост скорости генерации писем. Если на 500-х различных документах этого было почти не заметно, то при генерации 15 000 документов, прирост скорости составил 30% (специально проверил несколько раз на одних и тех же исходных данных).

    Переменные docvariable

    Страницы 1

    Чтобы отправить ответ, вы должны войти или зарегистрироваться

    Сообщений [ 11 ]

    1 Тема от tna 18.12.2016 16:16:54

    • tna
    • сержант
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 18.03.2014
    • Сообщений: 17

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

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

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

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

    2 Ответ от yshindin 18.12.2016 21:27:35

    • yshindin
    • генерал-полковник
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 12.05.2012
    • Сообщений: 446
    • Поблагодарили: 170

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

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

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

    3 Ответ от yshindin 18.12.2016 21:36:03

    • yshindin
    • генерал-полковник
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 12.05.2012
    • Сообщений: 446
    • Поблагодарили: 170
    • За сообщение: 1

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

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

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

    4 Ответ от tna 18.12.2016 21:46:18

    • tna
    • сержант
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 18.03.2014
    • Сообщений: 17

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

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

    5 Ответ от yshindin 18.12.2016 23:10:17

    • yshindin
    • генерал-полковник
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 12.05.2012
    • Сообщений: 446
    • Поблагодарили: 170
    • За сообщение: 1

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

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

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

    6 Ответ от yshindin 18.12.2016 23:14:38

    • yshindin
    • генерал-полковник
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 12.05.2012
    • Сообщений: 446
    • Поблагодарили: 170

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

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

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

    7 Ответ от tna 19.12.2016 07:38:32

    • tna
    • сержант
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 18.03.2014
    • Сообщений: 17

    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 Ответ от Boris_R 19.12.2016 11:31:44

    • Boris_R
    • полковник
    • Неактивен
    • Зарегистрирован: 07.08.2012
    • Сообщений: 233
    • Поблагодарили: 110
    • За сообщение: 2

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

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

    Читать еще:  Как установить word на mac

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

    9 Ответ от tna 19.12.2016 12:00:21

    • tna
    • сержант
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 18.03.2014
    • Сообщений: 17

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

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

    10 Ответ от tna 20.12.2016 08:32:59

    • tna
    • сержант
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 18.03.2014
    • Сообщений: 17

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

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

    11 Ответ от tna 20.12.2016 08:36:56

    • tna
    • сержант
    • Неактивен
    • Откуда: Москва
    • Зарегистрирован: 18.03.2014
    • Сообщений: 17

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

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

    Сообщений [ 11 ]

    Страницы 1

    Чтобы отправить ответ, вы должны войти или зарегистрироваться

    Вы можете помочь в развитии сайта, сделав пожертвование:

    Или помочь сайту популярной криптовалютой:

    BTC Адрес: 1Pi3a4c6sJPbfF2sSYR2noy61DMBkncSTQ

    ETH Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

    LTC Адрес: LUyT9HtGjtDyLDyEbLJZ8WZWGYUr537qbZ

    DOGE Адрес: DENN2ncxBc6CcgY8SbcHGpAF87siBVq4tU

    BAT Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

    XRP Адрес: rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh Депозит Tag: 105314946

    USDT (ERC-20) Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

    Яндекс Деньги: 410013576807538

    Вебмани (R ещё работает): R140551758553 или Z216149053852

    А тут весь список наших разных крипто адресов, может какой добрый человек пожертвует немного монет или токенов — получит плюсик в карму от нас 🙂 Благо Дарим, за любую помощь!

    Похожие темы

    Переменные docvariable

    Для тех, кто хочет превратить процесс создания, проверки и редактирования, оформления и форматирования текстов из рутины и нудной механической работы в удовольствие, существует прекрасная возможность перенять приемы по автоматизации работы в Ворде, а также познакомиться с тонкими и редко используемыми настройками приложения на форуме сайта Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: как в верде сделать рамку.

    На форуме обсуждаются любые вопросы, связанные с программой. В первую очередь это написание всевозможных макросов и шаблонов для тех, либо иных операций. На портале о Microsoft Office Word вы узнаете про: как сделать чтобы в worde таблицы не прыгали. Участники делятся секретами настроек приложения, оптимизации своей работы, предлагают готовые решения или схемы, по которым можно разработать решения самому. На портале о Microsoft Office Word вы узнаете про: повторить введённый текст. Также в специальном подфоруме есть возможность оставить заявку с описанием своей проблемы.

    Как найти переменные документа в MS Word без использования макроса

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

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

    2 ответа 2

    В 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. Вы должны увидеть имя и значение для каждой переменной. Вы можете вставить значения переменных документа в ваш документ, используя поле .

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

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

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

    Ссылка на основную публикацию
    ВсеИнструменты 220 Вольт
    Adblock
    detector