1

Тема: Самопроизвольное изменение нумерации в нумерованных списках

В Word 2007 имеется проблема следующего характера. Пример:
В документе имеется нумерованный список, который отформатирован с использованием стиля "Нумерованный список 1", имеющий нумерацию от 1 до 3.
При копировании-вставке аналогичного списка, например из другого документа, происходит самопроизвольное изменение нумерации в одном из списков:
- в случае если вставляемый список располагается до имеющегося - нумерация имеющегося принимает начало с цифры 4;
- в случае если вставляемый список располагается после имеющегося - нумерация вставляемого меняется и начинается с цифры 4.
Данный факт происходит даже в том случае, если между списками находятся участки текста с обычным форматированием.
После операции копировать-вставить приходится постоянно проверять и править нумерацию.
Существует какое-либо решение данной проблемы?
Спасибо.
С уважением

2

Re: Самопроизвольное изменение нумерации в нумерованных списках

Это происходит из-за объединения списков. Как бороться с этим, я не знаю. Проблема известная

Лучше день потерять — потом за пять минут долететь!

3

Re: Самопроизвольное изменение нумерации в нумерованных списках

Можно использовать не автоматическую нумерацию, а нумерацию полем SEQ. Вот ссылка на макрос.

4

Re: Самопроизвольное изменение нумерации в нумерованных списках

Макрос для быстрой перенумерации списка с начала:

Public Sub Action_List_CreateFirst()
' создать в выделенной области отдельный список
' используя формат первого в области параграфа со списком
    
    On Error Resume Next
Dim R As Word.Range
Dim T As Word.ListTemplate

    Set R = Selection.Range
    If R.ListParagraphs.Count <= 0 Then Exit Sub
    Set T = R.ListParagraphs(1).Range.ListFormat.ListTemplate
    R.ListFormat.ApplyListTemplate _
        ListTemplate:=T, _
        ContinuePreviousList:=False

End Sub
Макросы под заказ и готовый пакет - mtdmacro.ru

5

Re: Самопроизвольное изменение нумерации в нумерованных списках

Быть может, я не совсем правильно понял проблему, но почему бы после вставки списка не воспользоваться встроенной функцией "начать заново с 1"?

6

Re: Самопроизвольное изменение нумерации в нумерованных списках

Денис пишет:

Быть может, я не совсем правильно понял проблему, но почему бы после вставки списка не воспользоваться встроенной функцией "начать заново с 1"?

Полностью согласен.
Выше я предлагал макрос немного расширяющий эту функцию.
Для вставки списка с новой нумерацией подойдет команда:

Selection.PasteAndFormat Type:=wdListRestartNumbering

Отредактировано Вождь (22.01.2010 08:49:51)

Макросы под заказ и готовый пакет - mtdmacro.ru

7

Re: Самопроизвольное изменение нумерации в нумерованных списках

Я думал решить проблему макросами, но вот во что все уперлось. Пример.
Надо собрать один общий документ на базе нескольких документов. Объем документа большой (применительно к ГОСТам к примеру П2). Разных маркированных списков во всех исходных документах много. При копировании-вставке "кусков" большого объема вопросы проверки и последующей корректировки вставляемых и имеющихся списков очень затруднены (это к вопросу о "ручном" изменении начального номера). К тому же надо иметь в виду, что существуют и многоуровневые списки и списки прерывающиеся обычным текстом (это к вопросу об использовании функции SEQ). В общем алгоритм получался ну очень "мучительный".
Пытался решить задачу с помощью поля IncludeText, но при обновлении поля получал такую же беду.
В общем, как ни крути надо искать некий механизм влияния "списка на список". В официальном Microsoft ничего не нашел.

8

Re: Самопроизвольное изменение нумерации в нумерованных списках

Списки, и здесь я полностью согласен с Александром Витером, одно из больных мест редактора Word.
Зная эту особенность, я практически всегда при разработке документации использую нумерацию через SEQ - меньше геммороя и уверенность, что при обновлении документов ничто (в данном случае списки) не поедет и самопроизвольно не изменится.

9

Re: Самопроизвольное изменение нумерации в нумерованных списках

admin пишет:

Списки, и здесь я полностью согласен с Александром Витером, одно из больных мест редактора Word.
Зная эту особенность, я практически всегда при разработке документации использую нумерацию через SEQ - меньше геммороя и уверенность, что при обновлении документов ничто (в данном случае списки) не поедет и самопроизвольно не изменится.

Тогда у меня вопрос. Как вы используете SEQ при работе со списками где:
- нумерация буквенная (например а), б), в) и т.д.);
- многоуровневая нумерация (например
                                                                              а) _______________
                                                                              б) _______________
                                                                                        1) ___________
                                                                                        2) ___________
                                                                               в) _______________   и т.д.)
- пункты состоят из нескольких абзацев.
Да и потом, применяя к спискам определенный стиль нумерованного списка, мы уже подразумеваем, что осуществляется нумерация пунктов.

Отредактировано mikkelle (22.01.2010 09:37:36)

10

Re: Самопроизвольное изменение нумерации в нумерованных списках

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

11

Re: Самопроизвольное изменение нумерации в нумерованных списках

mikkelle пишет:

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

А может быть, перед тем как вставить новый кусок текста, добавить разрыв раздела?

12

Re: Самопроизвольное изменение нумерации в нумерованных списках

Денис, все "фокусы" с разделами и тому подобными вещами уже перепробованны.

13

Re: Самопроизвольное изменение нумерации в нумерованных списках

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

Selection.PasteAndFormat Type:=wdListRestartNumbering

2.  Вставить список из буфера, продолжив нумерацию

Selection.PasteAndFormat Type:=Word.wdListContinueNumbering

3. Вставить список из буфера, объединив с ближайшим похожим

Selection.PasteAndFormat Type:=Word.wdListCombineWithExistingList
Макросы под заказ и готовый пакет - mtdmacro.ru

14

Re: Самопроизвольное изменение нумерации в нумерованных списках

Вождю!!!
Во первых, без нервов! мною на сайте все прочитано и изучено и проблема мною описывалась детально, попробую повторить ее ругим языком, если прнжнее изложение оказалось недоходчивым. Извините.
Пробелма не во вставке какого либо одиночного списка, а во вставке текста большого объема содержащего в себе самые разнообразные списки в документ, так же содержащий самые разнообразные списки. Код VBA я знаю, но вот алгоритм выполнения подобной операции получается длинным и запутанным.
Я так думаю, что где то в недрах Microsoft есть решение, а потому и обращаюсь к разным источникам.

15

Re: Самопроизвольное изменение нумерации в нумерованных списках

mikkelle пишет:

Вождю!!! Во первых, без нервов!

Нет, без нервов я жить отказываюсь!

mikkelle пишет:

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

Где? Я отвечал на первое сообщение в этой ветке.

Если проблема такая глобальная, то выложите пару объединяемых документов для примера.

Проблема с нумерацией при вставке нескольких списков мне кажется сомнительной. Тут, скорее всего, стоит вопрос о  сохранении форматирования вообще.

Отредактировано Вождь (26.01.2010 22:17:05)

Макросы под заказ и готовый пакет - mtdmacro.ru

16

Re: Самопроизвольное изменение нумерации в нумерованных списках

Представляю файлы примеров.
В архиве имеется два варианта файлов V1 и V2. В "Базовых" файлах есть закладки куда всталять текст из соответствующих "Вставляемых" файлов.
Обратите внимание на изменение нумерации в списках во вставляемых и базовых файлах. Обращаю внимание, что изменение нумерации носит непостоянный характер и не поддается алгоритмизации.

Post's attachments

Samples.rar 102.48 Кб, 4 скачиваний с 2010-01-27 

You don't have the permssions to download the attachments of this post.

17

Re: Самопроизвольное изменение нумерации в нумерованных списках

mikkelle пишет:

Представляю файлы примеров...

Сонвертируйте списки во вставляемом фрагменте в текст.
Конвертируйте только те, которые не собераетесь интегрировать после вставки.
Другого решения я не вижу. Тем более, что все ваши документы созданы на основе одного шаблона и стилей.

Макросы под заказ и готовый пакет - mtdmacro.ru

18

Re: Самопроизвольное изменение нумерации в нумерованных списках

Вождь пишет:

Сконвертируйте списки во вставляемом фрагменте в текст.

ув. Вождь с языка снял!
При конвертации сохраняется форматирование, но исчезают "порочные связи".

19

Re: Самопроизвольное изменение нумерации в нумерованных списках

Вождю и Денису.
Прошу прощения, не понял ваших ответов.
Не сочтите за труд, поясните пожалуйста.

20

Re: Самопроизвольное изменение нумерации в нумерованных списках

mikkelle пишет:

Не сочтите за труд, поясните пожалуйста.

Нужно преобразовать маркеры Вашего списка в простой текст.
Вот таким образом:

ActiveDocument.Range.ListFormat.ConvertNumbersToText wdNumberParagraph
это, если Вы хотите обработать весь документ, и

Selection.Range.ListFormat.ConvertNumbersToText wdNumberParagraph
если нужно преобразовать в текст список лишь выделенного текста.

Прелесть в том, что внешне ничего не меняется. Минус в том, что как со списком, с этим куском текста уже не поработать.

21

Re: Самопроизвольное изменение нумерации в нумерованных списках

Денису.
Спасибо за пояснения.
1. Но если вы видели из примера (особенно варианта 2) то изменения в нумерации происходят как в "базовом" документе так и во вставляемом.
2. А как быть с многоуровневыми списками в которых используются буквенные маркеры?

22

Re: Самопроизвольное изменение нумерации в нумерованных списках

Конвертировать в текст можно даже один параграф списка:

Paragraph.ListFormat.ConvertNumbersToText  NumberType:=Word.wdNumberParagraph

Совет: что бы при объединении документов было меньше проблем, создавайте и используйте стили, у которых в поле «Основан на стиле» стоит значение «Нет».
Полезно знать: Настройка параметров вставки (в том числе списков):
- Word 2003: меню «Сервис» > пункт «Параметры» > откройте вкладку «Правка» > в области «Параметры вырезания и вставки» нажмите кнопку «Настройка»
- Word 2007: кнопка «Office» > кнопка «Параметры Word» > вкладка «Дополнительно» в области «Вырезание, копирование, вставка» нажмите кнопку «Настройка»

Макросы под заказ и готовый пакет - mtdmacro.ru

23

Re: Самопроизвольное изменение нумерации в нумерованных списках

mikkelle пишет:

2. А как быть с многоуровневыми списками в которых используются буквенные маркеры?

Разницы никакой. Цифры останутся цифрами, буквы - буквами. Это работает даже с просто маркированными списками, в итоге получите точки, тире, галочки - любой использованный маркер. Пусть Вас не смущает название метода "ConvertNumbersToText".

24

Re: Самопроизвольное изменение нумерации в нумерованных списках

Совет: что бы при объединении документов было меньше проблем, создавайте и используйте стили, у которых в поле «Основан на стиле» стоит значение «Нет».
Полезно знать: Настройка параметров вставки (в том числе списков):
- Word 2003: меню «Сервис» > пункт «Параметры» > откройте вкладку «Правка» > в области «Параметры вырезания и вставки» нажмите кнопку «Настройка»
- Word 2007: кнопка «Office» > кнопка «Параметры Word» > вкладка «Дополнительно» в области «Вырезание, копирование, вставка» нажмите кнопку «Настройка»

Большое спасибо за совет, однако в практическом плане он ни как помочь не может. Ни одна ни вторая подсказка ни как не влияют на изменение поведения вставляемых и присутствующих списков.
Если хотите поломать голову, то попробуйте определить закономерность в выделении маркера списка (щелчке на номере или букве) в представленных ранее документах до и после операций вставки. Как "причудливо" они выделяются. Мне кажется, что разгадка где-то здесь.

25

Re: Самопроизвольное изменение нумерации в нумерованных списках

Денис пишет:

Разницы никакой. Цифры останутся цифрами, буквы - буквами. Это работает даже с просто маркированными списками, в итоге получите точки, тире, галочки - любой использованный маркер. Пусть Вас не смущает название метода "ConvertNumbersToText".

Деннис, я имел в виду форматирование многоуровневых списков. Номера (маркеры) естественно остаются прежними, а вот форматирование серьезно страдает. Для меня это критично.

26

Re: Самопроизвольное изменение нумерации в нумерованных списках

mikkelle пишет:

Номера (маркеры) естественно остаются прежними, а вот форматирование серьезно страдает. Для меня это критично.

Подойдет такое форматирование?
Файлы, выложенные mikkelle, в которых списки преобразованы в текст макросом «Списки в текст» (см. мой сайт).

Post's attachments

Samples+++.rar 51.07 Кб, 9 скачиваний с 2010-01-29 

You don't have the permssions to download the attachments of this post.
Макросы под заказ и готовый пакет - mtdmacro.ru

27

Re: Самопроизвольное изменение нумерации в нумерованных списках

Вождь пишет:

а вот форматирование серьезно страдает.

Вы это проверили? Спрашиваю, поскольку ни на многих своих документах, ни на присланных Вами разницы в форматировании никакой. Все элементы списка на своих местах, курсив курсивом, отступы отступами. Разве что под форматированием Вы подразумеваете еще что-то...

28

Re: Самопроизвольное изменение нумерации в нумерованных списках

Денис пишет:

Вы это проверили?

Я выложил пример для того, чтобы было видно, что после преобразования списков в текст форматирование именно НЕ СТРАДАЕТ. Вы же это и подтвердили.

Макросы под заказ и готовый пакет - mtdmacro.ru

29

Re: Самопроизвольное изменение нумерации в нумерованных списках

Вождь пишет:
Денис пишет:

Вы это проверили?

Я выложил пример для того, чтобы было видно, что после преобразования списков в текст форматирование именно НЕ СТРАДАЕТ. Вы же это и подтвердили.

Прошу прощения, я собственно обращался к автору темы. Как-то криво вставил цитату... Подтверждаю еще раз, что форматирование не страдает вообще, но преимущества нумерованного списка естественно теряются. Т.е. данный метод, как паллиатив можно применять, если изменений (по крайней мере кардинальных) более не предвидится.

30

Re: Самопроизвольное изменение нумерации в нумерованных списках

Вождю:
Прошу прощения, я немного ошибся. Действительно при работе вашего макроса остается правильное, как бы правильно выразить, начертание или положение текста на странице. Но изменяется форматирование текста определенного стиля.
Если исходить из того, что вставляемый текст большого объема и имеет в себе текст различных стилей, в том числе нумерованных списков (как например заголовки), мы снова возвращаемся к тому, что необходима предварительная обработка вставляемого текста (отделение от общего процесса преобразования заголовков). К тому же, как было подмечено ранее, дальнейшая работа с нумерованными списками представляется затруднительной.
Я ценю проделанную вами работу, и идеи воплощенные в ней вполне можно предлагать корпорации Била Гейтса, но в данном случае, при работе с текстами больших размеров она не подходит. Я сам двигался по тому же пути, но он приводит к серьезному усложнению алгоритма.

31

Re: Самопроизвольное изменение нумерации в нумерованных списках

mikkelle пишет:

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

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

При интеграции, ни о каком конвертировании списков не может быть и речи. Для списков придется писать макрос-таблетку. Сходу, для макроса, могу предложить несколько идей:
- начинать с начала списки, разделенные текстом заданного стиля (Заголовок 1, Заголовок 2 и т.д.)
- начинать с начала списки, перед которыми есть параграф заканчивающийся двоеточием
- и т.д.

Макросы под заказ и готовый пакет - mtdmacro.ru

32

Re: Самопроизвольное изменение нумерации в нумерованных списках

Вождь пишет:

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

Под словом "интегрировать" вы подразумеваете вставку текста через поле связи (например IncludeText)?

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

33

Re: Самопроизвольное изменение нумерации в нумерованных списках

mikkelle пишет:

При этом не должно нарушаться форматирование стилей, и дальнейшая работа с содержимым документа не приносила бы проблем.

Как правильно работать со стилями – это отдельная тема, подробно описанная в документации. Глюки при работе со стилями мне не попадались. Чаще сего - это недопонимание.

Вот со списками глюков навалом.

Макросы под заказ и готовый пакет - mtdmacro.ru

34

Re: Самопроизвольное изменение нумерации в нумерованных списках

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

35

Re: Самопроизвольное изменение нумерации в нумерованных списках

Вождь пишет:

Как правильно работать со стилями – это отдельная тема, подробно описанная в документации. Глюки при работе со стилями мне не попадались. Чаще сего - это недопонимание.

Прошу прощения за не корректное выссказавание. Подразумевалось, что при использовании макроса "Списки в текст" наименование стиля списка остается прежним, а форматирование изменяется (например отключается нумерация)!!!. Если повторно применить стиль к такому конвертированному списку то ...

Админу:
Вопрос с закрытием доступа к изменению стилей пока мне не кажется абсолютной панацеей. Для примера - создать стиль универсальной таблицы мне кажется не реальным. Подразумевается выборочное (по столбцам) изменение положения текста в ячейке и особенно его поворот.
Сам сейчас работаю над коллекцией стилей применяемых для оформления ГОСТовских документов.