Vba word нумерация страниц
Я хочу получить строку с номером текущей страницы, включая ее формат. Например: некоторые разделы могут иметь идентификатор главы (1-1), некоторые выполнены в римском стиле и т. д.
Я надеялся получить выбор конкретного нижнего колонтитула, затем перебрать поля и получить данные поля страницы (вывод - это строка, которую я хочу).
Насколько я понимаю, нет возможности прокручивать нижние колонтитулы данного раздела, просто получите общий шаблон и попробуйте поработать с ним. Я знаю о wdActiveEndAdjustedPageNumber от Selection.Range.Information , но он дает мне лишь частичную информацию.
Я ошибся? Есть ли способ работать с конкретным нижним колонтитулом, который я выберу?
Если нет, не могли бы вы подсказать мне, как получить следующие данные:
- Ближайшее значение номера главы
- Получение значения номера страницы в специальном формате, таком как Roman, Alphabetical font (что означает применение формата страницы на wdActiveEndAdjustedPageNumber )
Отредактируйте для пояснения:
В моем шаблоне Word стиль Заголовок 1 создает следующий заголовок: Глава 1, за которым следует Глава 2 и так далее. В формате номера страницы есть возможность включить текущее значение главы в номер страницы. Например: Предполагая следующую настройку
приведет к этим страницам в поле < PAGE >: 1-1, 1-2, 1-3, . Моя цель - каким-то образом получить всю эту «ценность» для нижнего колонтитула конкретной страницы. Вот фрагмент кода, который не будет работает правильно:
Результатом такого метода является '1-1'
. Причина, по которой это не сработает, заключается в том, что он может получить только первую страницу (или вторую, используя wdHeaderFooterEvenPages ).
То же самое касается формата римских чисел или любого другого из этого списка. Для следующих настроек номера страницы я хочу получить "значение" в конкретном нижнем колонтитуле. Приведенный выше код вернет значения для первой или второй страницы, и все.
Есть ли способ получить доступ к любому нижнему колонтитулу в документе и выполнить мой пример кода?
Если нет, как я могу получить "значение" номера страницы для любого нижнего колонтитула, который я выберу?
Надеюсь, это яснее.
При подготовке данного материала я столкнулся с некоторыми нестыковками… Так, в большинстве случаев у коллекции PageNumbers будет только один класс PageNumber, это и логично, так как нельзя сделать несколько "нумераций" страниц для одного раздела. Вторая нестыковка – если нумерация страниц в ворде для верхнего колонтитула начинается с заданного номера, то это автоматически влияет и на нумерацию для нижнего колонтитула. С одной стороны это понятно, какой смысл задавать различную нумерацию для верхнего и нижнего колонтитула, но, непонятно следующее…
Доступ к коллекции PageNumbers осуществляется через одноименное свойство объекта HeaderFooter, а тот в свою очередь, мы получаем через свойства Headers или Footers класса Section. Как видим, мы можем указать, для какого колонтитула (верхнего или нижнего) нужно задавать нумерацию в Word.
Коллекция PageNumbers – нумерация в Word
Свойства – нумерация страниц в Word
ChapterPageSeparator - Возвращает или устанавливает разделитель, используемый между номером главы и страницы. Значение константы WdSeparatorType:
- wdSeparatorColon - 2 - двоеточие.
- wdSeparatorEmDash - 3 - подчеркнутое тире.
- wdSeparatorEnDash - 4 - стандартное тире.
- wdSeparatorHyphen - 0 - дефис.
- wdSeparatorPeriod - 1 - период.
HeadingLevelForChapter - Возвращает или задает уровень заголовка (от 0 до 8), который применяется к названиям глав в документе.
IncludeChapterNumber – Значение true, если номер главы входит в номера страниц. Чтение и запись.
NumberStyle - Возвращает или задает значение константы WdPageNumberStyle, которая представляет собой стиль нумерации страниц в Word.
RestartNumberingAtSection – Если значение свойства установлено в true, то при вызове метода Add нумерация в ворде будет начинаться с числа 0. Если значение false – то нумерация будет начинаться с числа одни, а попытка переопределить начальный пункт нумерации ворд страницы с помощью свойства StartingNumber ничего не даст. Чтение и запись.
ShowFirstPageNumber – Значение true – происходит автоматическое добавление пункта для нумерации Word страницы в нижний колонтитул.
StartingNumber - Возвращает или устанавливает значение, которое определяет начало нумерации страниц в ворде. Указанный номер может быть виден или не виден на первой странице в зависимости от установок свойства ShowFirstPageNumber. Если свойство RestartNumberingAtSection установлено в false, то будет происходить переопределение свойства StartingNumber так, чтобы нумерация в Word продолжалась из предыдущего раздела
Application - Возвращает объект Application, представляющий приложение Microsoft Word.
Count - Возвращает число номеров страниц в коллекции. В большинстве случаев, колонтитулы содержат только один номер страницы, который является числом 1.
Методы – как сделать нумерацию в ворде
Add (PageNumberAlignment, FirstPage) - Возвращает класс PageNumber, представляющий номера, добавленные в верхний или нижний колонтитул раздела. Оба параметра являются дополнительными.
PageNumberAlignment – Определяет положение номера, значение константы WdPageNumberAlignment:
- wdAlignPageNumberLeft - 0 – По левому краю.
- wdAlignPageNumberCenter - 1 - По центру.
- wdAlignPageNumberRight - 2 – По правому краю.
- wdAlignPageNumberInside - 3 – По левому краю.
- wdAlignPageNumberOutside - 4 – По правому краю.
FirstPage – Если установлено значение false, то номер не добавляется к первой странице. Если этот аргумент опущен, параметры нумерации в ворде определяет свойство DifferentFirstPageHeaderFooter класса PageSetup.
Item (index) – Доступ к объекту PageNumber по его номеру в коллекции PageNumbers. Фактически, количество классов PageNumber ровно 1.
PageNumber – Нумерация в ворде
Свойства – нумерация страниц в ворде
Alignment - Возвращает или задает выравнивание для номера страницы. Значение константы WdPageNumberAlignment (смотрите выше).
Application - Возвращает объект Application, представляющий приложение Microsoft Word.
Index – Позиция элемента в коллекции. Только чтение.
Методы – как в ворде сделать нумерацию страниц
Copy () - Копирует заданный PageNumber в буфер обмена.
Cut ()- Вырезает указанный PageNumber из документа и помещает его в буфер обмена.
Delete () - Удаляет указанный PageNumber. Фактически, мы отменяем нумерацию в Word для выбранного колонтитула
Select () – Выбор указанного PageNumber. После использования этого метода, следует использовать свойство Selection для работы с выбранным элементом.
Хорошо, с теоретической частью мы закончили, теперь можно приступить к программированию. Я приведу два примера кода на языке VBScript и JScript сервера сценариев Windows Script Host:
Пример программного кода на языке VBSCRIPT:
Пример программного кода на языке JSCRIPT:
В данных примерах происходит создание двух документов, для каждого документа создается ссылка на класс Range (переменные oRange1 и oRange2). Это нужно для того, что бы мы смогли добавить текст или страницы в нужный документ. Далее происходит нумерация страниц в Word для первого и второго документа. В одном случаем мы связываем нумерацию страниц в ворд со стилями и списками (в документ будут добавлены заголовки, а номера страниц будут с ними связаны). В другом случаем мы просто задаем стиль нумерация Word для всех страниц и определяем, что нумерация ворд должна начинаться с цифры 5.
Спасибо за внимание. Автор блога Владимир Баталий
Важной особенностью при работе с коллекцией HeadersFooters является то, что она содержит в себе не количество классов HeadersFooter для каждой страниц (то есть, если у нас 30 статей в разделе, то это не означает, что у нас 30 колонтитулов в ворде), а количество возможных параметров при работе с колонтитулами в Word, поясню….
В самом документе мы можем вставить верхний колонтитул в ворде или нижний колонтитул в ворде, которые будет отображаться на всех страницах, это понятно. Далее, мы можем указать, что бы для четных и нечетных отображались разные колонтитулы. И, мы можем указать индивидуальный колонтитул для первой страницы Word.
Для доступа к коллекции HeadersFooters используются свойства Headers или Footers, которые указывают: с верхним или с нижним колонтитулом в ворде мы хотим работать . Данные свойства есть у объекта Section, который позволяет обрабатывать нужный раздел. Напомню, что в документ можно вставить несколько разделов, которые будут содержать статьи, обрабатываемые в индивидуальном порядке.
- Если мы хотим указать, что нужно создавать разные колонтитулы в Word для четных и нечетных, то свойству OddAndEvenPagesHeaderFooter объекта PageSetup нужно присвоить значение true.
- Если надо создать колонтитул в ворде, который будет уникальным для первой статьи, то свойству DifferentFirstPageHeaderFooter объекта PageSetup присваивается значение true.
Сам процесс создания верхних и нижних колонтитулов в документе Word я рассмотрю в конце статьи, а пока, рассмотрим методы и свойства коллекции HeadersFooters и класса HeaderFooter.
Коллекция HeadersFooters - колонтитулы в ворде
Свойства – верхний колонтитул в ворде
Application - Возвращает объект Application, представляющий приложение Microsoft Word.
Count – Возвращает количество объектов HeaderFooter, данное значение фиксировано и равно 3, так как можно задать три параметры при добавлении колонтитулов в ворд.
Методы – нижний колонтитул в ворде
Item (index) – Позволяет получить доступ к объекту HeaderFooter по его номеру в коллекции.
Index – Данный параметр содержит значения константы WdHeaderFooterIndex:
- wdHeaderFooterEvenPages - 3 - Все к-тулы, даже на пронумерованных статьях.
- wdHeaderFooterFirstPage - 2 - Первый к-тул в документе или разделе.
Тут стоит дать некоторое пояснение…. Если вы хотите добавить колонтитулы в Word на все страницы, то для параметра index указывайте значение 3. Если вы хотите создать колонтитулы в ворд индивидуально для четных и нечетных, то указывайте значение 1 для нечетных и 3 для четных, предварительно, нужно использовать свойство OddAndEvenPagesHeaderFooter объекта PageSetup . Если вы хотите указать Word колонтитул только для первой страницы раздела, то используйте значение 2, прописав перед этим свойство DifferentFirstPageHeaderFooter объекта PageSetup .
Класс HeaderFooter – колонтитулы в Word
Объект HeaderFooter содержит в своем арсенале только свойства.
Свойства – работа с колонтитулами в Word
Application - Возвращает объект Application, представляющий приложение Microsoft Word.
Exists – Значение true, если указанный объект HeaderFooter существует. Чтение и запись.
Index – Свойство возвращает значение константы WdHeaderFooterIndex (смотрите выше), которая представляет указанный Word колонтитул в документе или разделе. Только чтение.
IsHeader – Значение true, если указанный HeaderFooter является верхним колонтитулом в ворде и значение false – если нижним колонтитулом в ворде. Только чтение.
LinkToPrevious - Значение true, если указанный колонтитул в Word связан с соответствующим к-тулом в предыдущем разделе. Чтение и запись.
PageNumbers - Возвращает коллекцию PageNumbers, которая представляет все номера страницы, входящие в указанный верхний или нижний колонтитул в ворд.
Range - Возвращает объект Range, представляющий часть документа, которая содержится в указанных колонтитулах Word.
Shapes - Возвращает коллекцию Shapes, представляющую все объекты Shape в нижнем или верхнем колонтитуле в ворд.
Хорошо, теперь, как я и обещал, мы рассмотрим два сценария на языке VBScript и JScript сервера сценариев Windows Script Host, а после, я дам пояснения того, как они работают.
Пример на языке VBSCRIPT:
' ---------------------------------------------------------------------------- ' Коллекция HeadersFooters и классы HeaderFooter ' Колонтитулы в Word ' HeadersFooters.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, i, MyText Set oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents oDoc.Add() oWord.Visible = true Set oSel = oWord.Selection MyText = "Колонтитулы в ворде. " For i=0 to 40 oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText oSel.TypeParagraph Next With oDoc(1).Sections(1) .PageSetup.OddAndEvenPagesHeaderFooter = true ' Различные колонтитулы в Word для четных и нечетных .PageSetup.DifferentFirstPageHeaderFooter = true ' Уникальный колонтитул в Word для первой страницы '------------------------------------------------------------------------------------------- ' верхний и нижний колонтитулы в ворде для четных '------------------------------------------------------------------------------------------- .Headers(3).Range.Text = "Заголовок – четные1, 2,4,6. " .Footers(3).Range.Text = "Футер – четные1, 2,4,6. " '------------------------------------------------------------------------------------------- '------------------------------------------------------------------------------------------- ' нижний и верхний колонтитулы в ворде для нечетных '------------------------------------------------------------------------------------------- .Headers(1).Range.Text = "Заголовок – нечетные1, 1,3,5. " .Footers(1).Range.Text = "Футер – нечетные1, 1,3,5. " '------------------------------------------------------------------------------------------- '------------------------------------------------------------------------------------------- ' Верхний и нижний колонтитулы в Word для первой страницы '------------------------------------------------------------------------------------------- .Headers(2).Range.Text = "Заголовок" .Footers(2).Range.Text = "Футер" '------------------------------------------------------------------------------------------- End With
Пример на языке JSCRIPT:
В данных примерах все довольно просто, мы создаем новый документ, добавляем в него текст и создаем колонтитулы в Word для четных, нечетных страниц и для первой страницы. Обратите внимание, что через свойство Range мы получаем доступ к остальным классам, которые позволяют вставить текст. При желании, вы можете усложнить программный код, добавив выравнивание текста и прочие параметры форматирования.
Спасибо за внимание. Автор блога Владимир Баталий
Коллекция ListGalleries является отправной точкой, чтобы сделать маркированный или нумерованный список в Word с помощью макросов VBA, или сценариев сервера Windows Script Host. По сути, коллекция хранит объекты ListGallery, которые представляют индивидуальный список, но, ни ListGalleries и ListGallery не содержат средств для формирования списка Word с нужными параметрами. Так, с практической стороны вам понадобится только одно свойство и один метод из коллекции и два свойства и один метод.
Для доступа к коллекции ListGalleries используется одноименное свойство класса Word.Application . Так как данный материал немного запутан, то давайте для начала рассмотрим свойства и метода коллекции и класса, а уже потом я постараюсь показать и объяснить, что и для чего нужно…
ListGalleries – свойства и методы, маркированный и нумерованный список в Word
Count – Количество классов ListGallery в текущей коллекции
Item (index) – Позволяет получить доступ к ListGallery заданного типа.
index – Определяет тип списка в Word, содержит значение константы WdListGalleryType:
- wdBulletGallery - 1 - маркированный список Word.
- wdNumberGallery - 2 - нумерованный список Word.
- wdOutlineNumberGallery - 3 - многоуровневый список.
ListGallery – свойства и методы, нумерованный и маркированный список в 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
Count – Количество классов ListTemplate. Только чтение.
Add (OutlineNumbered, Name) - Возвращает ListTemplate, представляющий новый шаблон списка. Оба параметра являются дополнительными.
OutlineNumbered – True - список будет многоуровневым, False - список содержит только один уровень вложенности.
Name – имя шаблона.
Item (count) - Возвращает отдельный объект ListTemplate в коллекции.
ListTemplate – свойства и методы, типы списков в Word
ListLevels - Возвращает ListLevels, представляющую все списки для указанного ListTemplate.
Name - Возвращает или задает имя указанного класса. Чтение и запись.
OutlineNumbered - Значение true, если указанный ListTemplate является многоуровневым. Чтение и запись.
Convert (level) – Позволяет конвертировать список: многоуровневый в одноуровневый, или наоборот.
level – Дополнительный параметр, который задает уровень вложенности списка Word. Этот аргумент может быть число от 1 до 9. Если этот аргумент опущен, то значение 1 - значение по умолчанию.
Последний этап, который, показывает как сделать список в Word – этап выбора уровня вложенности. По сути, нам надо получить доступ к коллекции ListLevels и объектам ListLevel. Так как данная коллекция и объект содержат довольно много методов и свойств, то я описал их в отдельной статье – "Коллекция Word ListLevels и объект ListLevel". Но, чтобы не предоставлять вам материал без примеров, мы сделаем два списка в Word, которые сможем многократно использовать. Я сначала приведу вам примеры кода, а уже потом объясню, что и как.
Пример на языке VBScript
' ---------------------------------------------------------------------------- ' как сделать список в Word ' нумерованный список в Word ' маркированный список в Word ' ListGallery.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, i, oPars, MyText, oRange dim REnd ' конец текста dim List1, List2 ' два объекта ListTemplate Set oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents oDoc.Add() Set oSel = oWord.Selection oWord.Visible = True MyText = "типы списков в Word. " For i=0 to 10 oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText oSel.TypeParagraph Next set oRange = oDoc(1).Range() 'Создаем Range set oPars = oRange.Paragraphs 'Создаем Paragraps ' Определяем конечную позицию для текста REnd = oPars(oPars.Count).Range.End set List1 = oDoc(1).ListTemplates.Add(false) ' Первый шаблон set List2 = oDoc(1).ListTemplates.Add(false) ' Второй шаблон '-------------------------------------------------------------- ' Заполняем шаблоны '-------------------------------------------------------------- With List1.ListLevels(1) .Alignment = 1 .NumberPosition = 10 .NumberStyle = 3 .TextPosition = 20 .TrailingCharacter = 0 With .Font .Bold =true .Size = 20 .Shadow = true .ColorIndex = 6 End With End With With List2.ListLevels(1) .Alignment = 1 .NumberPosition = 20 .NumberStyle = 4 .TextPosition = 20 .TrailingCharacter = 0 With .Font .Bold =true .Size = 20 .Shadow = true .ColorIndex = 11 End With End With '-------------------------------------------------------------- ' выбираем диапазон от 2-го до 4-го абзаца oRange.SetRange oPars(2).Range.Start, oPars(4).Range.End ' Применяем первый шаблон списка oRange.ListFormat.ApplyListTemplateWithLevel List1, false, 0, 2 ' выделяем заново весь диапазон oRange.SetRange 0, REnd ' выбираем диапазон от 2-го до 4-го абзаца oRange.SetRange oPars(7).Range.Start, oPars(9).Range.End ' Применяем второй шаблон списка oRange.ListFormat.ApplyListTemplateWithLevel List2, false, 0, 2
Пример на языке JScript
// ---------------------------------------------------------------------------- // как сделать список в Word // нумерованный список в Word // маркированный список в Word // ListGallery.vbs // ---------------------------------------------------------------------------- var oWord1, oDoc1, oSel1, i, oPars1, MyText1, oRange1; var REnd; // конец текста var List1, List2; // два объекта ListTemplate oWord1 = WScript.CreateObject("Word.Application"); oDoc1 = oWord1.Documents; oDoc1.Add(); oSel1 = oWord1.Selection; oWord1.Visible = true; MyText1 = "типы списков в Word. "; for (i=0; i oRange1 = oDoc1(1).Range(); //Создаем Range oPars1 = oRange1.Paragraphs; //Создаем Paragraps // Определяем конечную позицию для текста REnd = oPars1(oPars1.Count).Range.End; List1 = oDoc1(1).ListTemplates.Add(false); // Первый шаблон List2 = oDoc1(1).ListTemplates.Add(false); // Второй шаблон //-------------------------------------------------------------- // Заполняем шаблоны //-------------------------------------------------------------- with(List1.ListLevels(1)) < Alignment = 1; NumberPosition = 10; NumberStyle = 3; TextPosition = 20; TrailingCharacter = 0; with(Font)< Bold =true; Size = 20; Shadow = true; ColorIndex = 6; >> with(List2.ListLevels(1)) < Alignment = 1; NumberPosition = 20; NumberStyle = 4; TextPosition = 20; TrailingCharacter = 0; with(Font)< Bold =true; Size = 20; Shadow = true; ColorIndex = 11; >> //-------------------------------------------------------------- // выбираем диапазон от 2-го до 4-го абзаца oRange1.SetRange(oPars1(2).Range.Start, oPars1(4).Range.End); // Применяем первый шаблон списка oRange1.ListFormat.ApplyListTemplateWithLevel(List1, false, 0, 2); // выделяем заново весь диапазон oRange1.SetRange(0, REnd); // выбираем диапазон от 2-го до 4-го абзаца oRange1.SetRange(oPars1(7).Range.Start, oPars1(9).Range.End); // Применяем второй шаблон списка oRange1.ListFormat.ApplyListTemplateWithLevel(List2, false, 0, 2);
Хорошо, теперь давайте разберем программный код. В обоих сценариях объявление практически одинаковые переменные, в примере на 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.
Спасибо за внимание. Автор блога Владимир Баталий
написание формул в полях, в том числе с закладками на конец предыдущего раздела - уже опробовано и используется в качестве костыля
но это неудовлетворительно в силу специфики документа - по произвольной надобности могут вводится новые разделы, их кол-во не формализуется
и рамках набора разделов нумерация может быть не единообразной
допустим 3 раздела:
1 - начать с 2
2 - продолжить
3 - начать 1
задумка
написание некого класса (?), средствами которого будет выполняться паралельная сквозная нумерация
прошу комментариев - насколько сие реализуемо
и советов в какую сторону копнуть
спасибо
2 Ответ от Alex_Gur 15.03.2013 11:44:10
Вы имеете в виду отдельную нумерацию страниц по разделам?
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
3 Ответ от pomoyniy_slon 15.03.2013 12:48:07
нет . отдельная нумерация страниц по разделам реализуется средствами ворда без проблем
нужна 2-я, сквозная нумерация по ВСЕМ разделам сразу
вне зависимости от кол-ва разделов в документе
и настроек нумерции в них
зы в данный момент юзается костыль в виде:
1. нумерации по разделу (начать с, или продолжить - неважно, по надобности)
2. сквозная нумерация через + закладка(конец предыдущего раздела)>
данная схема ломается отлично работает при фиксированном ко-ве разделов
но ломается при их произвольном создании / удалении
4 Ответ от Alex_Gur 16.03.2013 05:31:03
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
5 Ответ от Вождь 16.03.2013 07:18:05
. ломается при. произвольном создании/удалении.
Руками, по предлагаемым методикам, очень муторно. Оптимально - макрос удаляющий нумерацию (перед началом редактривания) и создающий ее (в конечном документе). Тема поднималась, и макросы проставляющие нумерацию, например в виде надписей, предлагались.
6 Ответ от pomoyniy_slon 16.03.2013 12:49:26
Alex_Gur
ровно таким образом это и реализовано в данный момент, с использованием шаблона
отличное решение для статического числа разделов
но при их изменении - все грустно
Вождь
я думал об этом, не особо изящьно, но как вариант, не ткнете ссылкой в ресурс где это встречалось?
зы . отдалено понимая как работает нумерация в ворде - я вижу что штатными средствами мои хотелки (прозрачность для пользователя) - не реализовать
собственно из этого и родилась идея
некоего стороннего програмного модуля
реализующего поле со свойствами стандартного (работа в колонтитулах)
и дающего функционал сквозной нумерации
по недостатку знаний мне не вполне ясно - возможно ли это технически
если да, то, открывая карты - фактически я ищу разработчика
. за деньги, если что
ззы . на самом деле есть еще пара хотелок - но они куда как меньшего калибра
Похожие темы
двойная нумерация програмными средствами
Для тех, кто желает улучшить свои показатели при работе с текстами, совершенствовать знания и перенять опыт других пользователей Ворда, существует очень хороший русскоязычный ресурс Ворд Эксперт. Наш сайт о Microsoft Office Word даст ответ про: не устанавливается офис 2007 пишет ошибку что делать.
На форуме вы найдете список необходимой литературы по работе с приложением и программированию, основы создания макросов и написания шаблонов, узнаете много нового о настройках различных Вордовских функций и миниутилит. На портале о Microsoft Office Word вы узнаете про: microsoft office 2007 убрать режим ограниченной функциональности.
Главный упор делается на автоматизацию работы, но и обсуждению достоинств и недостатков различных версий уделено много внимания. Наш сайт о Microsoft Office Word даст ответ про: поиск слов в ворде. Кроме того, здесь можно заказать готовые шаблоны или макросы под вашу задачу.
страницы
авторство
Читайте также: