Как сделать список в Word

Доброго времени суток всем подписчикам и читателям блога scriptcoding.ru. Сегодня мы рассмотрим, как сделать список в Word документе программным путем, с помощью коллекции ListGalleries объектной модели Word.

как сделать список word - ListGalleries коллекция

Коллекция ListGalleries является отправной точкой, чтобы сделать маркированный или нумерованный список в Word с помощью макросов VBA, или сценариев сервера Windows Script Host. По сути, коллекция хранит объекты ListGallery, которые представляют индивидуальный список, но, ни ListGalleries и ListGallery не содержат средств для формирования списка Word с нужными параметрами. Так, с практической стороны вам понадобится только одно свойство и один метод из коллекции и два свойства и один метод.

Для доступа к коллекции ListGalleries используется одноименное свойство класса Word.Application. Так как данный материал немного запутан, то давайте для начала рассмотрим свойства и метода коллекции и класса, а уже потом я постараюсь показать и объяснить, что и для чего нужно...

ListGalleries — свойства и методы, маркированный и нумерованный список в Word

создание нумерованного и маркированного списка в word

Count — Количество классов ListGallery в текущей коллекции

Item(index) — Позволяет получить доступ к ListGallery заданного типа.

index — Определяет тип списка в Word, содержит значение константы WdListGalleryType:

  • wdBulletGallery — 1 — маркированный список Word.
  • wdNumberGallery — 2 — нумерованный список Word.
  • wdOutlineNumberGallery — 3 — многоуровневый список.

ListGallery — свойства и методы, нумерованный и маркированный список в Word

создание маркированного и нумерованного списка в Word

ListTemplates- Возвращает ListTemplates, которая представляет все типы списков в Word для указанного списка в коллекции. Только чтение.

Modified(index) — Вернет значение True, если производились изменения в заданном шаблоне списка. Только чтение.

Reset(index) — Позволяет очистить созданный ранее шаблон (index — номер шаблона).

Хорошо, теперь давайте рассмотрим, как сделать список Word, и весь процесс....

Все мы знаем, чтобы сделать список в документе Word, в первую очередь надо выбрать нужные абзацы, после этого мы выбираем типы списков Word. За тип отвечают три вкладки:

  • Маркеры — содержит 7 типов маркеров и позволяет создать собственный список-маркер.
  • Нумерация — также содержит 7 вариантов нумерованного списка в Word и дает возможность создать собственный шаблон.
  • Многоуровневый список — также на выбор дается 7 готовых шаблонов и возможность сформировать собственный.

Аналогичные действия происходят, и тогда, когда надо программно сделать список в Word:

Сначала нам нужно получить доступ к коллекции ListGalleries через одноименное свойство класса Word Application.

Далее нужно получить доступ к ListGallery — мы можем или использовать свойство item (смотрите выше) или задать значение напрямую:

Обратите внимание, что мы передаем не номер класса, а его тип (всего три варианта).

После того, как мы определились с нужным типом списка в Word и получили доступ к ListGallery, нам нужно обратиться к свойству ListTemplates, которое позволяет получить доступ к одноименной коллекция:

Хорошо мы получили доступ к коллекции ListTemplates, давайте рассмотрим, для чего она нужна. Как упоминалось выше, для каждого из трех типов списков Word есть 7 заготовленных шаблонов. Фактически, каждый такой шаблон является классом ListTemplate, входящим в состав коллекции. Как и с объектом ListGallery, тут та же ситуация — мы передаем не номер, а тип.

ListTemplates — свойства и методы, как сделать список в Word

типы Word списков

Count — Количество классов ListTemplate. Только чтение.

Add(OutlineNumbered, Name) — Возвращает ListTemplate, представляющий новый шаблон списка. Оба параметра являются дополнительными.

OutlineNumbered — True — список будет многоуровневым, False — список содержит только один уровень вложенности.

Name — имя шаблона.

Item(count) — Возвращает отдельный объект ListTemplate в коллекции.

ListTemplate — свойства и методы, типы списков в Word

как сделать Word список

ListLevels — Возвращает ListLevels, представляющую все списки для указанного ListTemplate.

Name — Возвращает или задает имя указанного класса. Чтение и запись.

OutlineNumbered — Значение true, если указанный ListTemplate является многоуровневым. Чтение и запись.

Convert(level) — Позволяет конвертировать список: многоуровневый в одноуровневый, или наоборот.

level — Дополнительный параметр, который задает уровень вложенности списка Word. Этот аргумент может быть число от 1 до 9. Если этот аргумент опущен, то значение 1 — значение по умолчанию.

Последний этап, который, показывает как сделать список в Word — этап выбора уровня вложенности. По сути, нам надо получить доступ к коллекции ListLevels и объектам ListLevel. Так как данная коллекция и объект содержат довольно много методов и свойств, то я описал их в отдельной статье — «Коллекция Word ListLevels и объект ListLevel». Но, чтобы не предоставлять вам материал без примеров, мы сделаем два списка в Word, которые сможем многократно использовать. Я сначала приведу вам примеры кода, а уже потом объясню, что и как.

Пример на языке VBScript

Пример на языке JScript

Хорошо, теперь давайте разберем программный код. В обоих сценариях объявление практически одинаковые переменные, в примере на JS к именам я добавил единицу. oWord — хранит доступ к приложению Ворд: «Объект Word Application — свойства», oDoc — позволит создать новый документ: «Коллекция Word Documents», oSel — позволит выделять нужный текст: «Объект Word Selection — выделить весь текст в ворде, свойства», oPars — отвечает за обработку абзацев: «Объект Word Paragraph и коллекция Paragraphs — основные параметры абзаца», MyText — собственно, текст для вставки в документ, oRange — отвечает за выбор содержимого: «Объект Word Range — Выбор текста».

Видим, что в обоих сценариях мы создали два объекта List1 и List2, которые содержат отформатированный список Word. Далее происходит процесс вызова метода ApplyListTemplateWithLevel объекта ListFormat для заданного выбора, к нему и будет применяться сделанный в список Word. Видим, что основные параметры определяются через свойства объекта ListLevel.