|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.07.2009, 11:08 | #1 |
Форумчанин
Регистрация: 09.07.2009
Сообщений: 111
|
Как убить лишние стили в документе Word 2003
Подскажите, пожалуйста, способ избавиться от лишних стилей в документе Word 2003. Есть документ, который используется как шаблон. В него зашиты несколько пользовательских стилей. Разные люди вставляют в него разные тексты из самых разных источников, так что в итоге получается документ, набитый тремя десятками самых разных стилей. Задача в том, чтобы проверить документ и уничтожить все стили, кроме встроенных и пользовательских из списка.
Речь идёт именно об удалении стилей, а не об "очистке формата". (По организационным причинам использовать шаблон, защищать документ и т.п. нельзя). После того, как текст обработан, в нём активны только десять собственных стилей. Вкладка «Стили» показывает, что не используются, но доступны разные «Стандартный HTML», «Знак», «Строгий», «Arial, 11 пт», «основной + полужирный» и т.п. Это всё мусор, его надо убить. Сделал макрос: *** Sub стилеубийца () ' Определяем, какого рожна ищем Dim DeadStyle As Word.Style For Each DeadStyle In ActiveDocument.Styles ' Ищем пользовательский стиль. Если он не встроенный и не используется, If DeadStyle.BuiltIn = False And DeadStyle.InUse = False Then ' убиваем вдребезги пополам DeadStyle.Delete End If ' Ищем следующий Next DeadStyle ' Рапортуем о результатах MsgBox "Всех убили!" End Sub *** Старательно ищет, но ничего не находит. Условие DeadStyle.InUse почему-то равно True. Вручную мусор убивается свободно, а вот как бы это автоматизировать? |
09.07.2009, 22:02 | #2 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
При убитии стилей, соответственно текст потеряет свое оформление.
Как вы будете потом определять, каким образом должен быть оформлен текст? Удалить стили из документа очень просто: Сервис - Шаблоны и надстройки - Организатор - Вкладка Стили - В левом поле "Из Название документа" выделяете все стили (щелкаете по первому стилю, с помощью бегунка переходите к последнему стилю, щелкаете по последнему стилю, удерживая нажатой кн. Шифт - Все стили будут выделены) - Нажимаете удалить - Будут появлятся сообщения о том, что нельзя удалить встроенные стили - Затем переходите в левое поле - Также выделяете все стили и нажимаете Копировать. В этом документе остануться только стили из вашего шаблона. |
10.07.2009, 00:23 | #3 | |
Пользователь
Регистрация: 02.06.2009
Сообщений: 49
|
Цитата:
1) Логичнее было бы поставить оператор Or вместо And, поскольку в данном случае проверяется условие: если стиль не встроенный и не используемый, тогда его нужно удалить; 2) Если сделать так, как в пункте 1, то получите сообщение об ошибке потому, что свойство .InUse доступно только для чтения. Т.е. получится удалить только стили со свойством .BuiltIn=False
Android & Linux
|
|
10.07.2009, 06:05 | #4 | ||
Форумчанин
Регистрация: 09.07.2009
Сообщений: 111
|
Цитата:
Цитата:
|
||
10.07.2009, 06:14 | #5 | |
Форумчанин
Регистрация: 09.07.2009
Сообщений: 111
|
Цитата:
Если стиль НЕвстроенный, но используется - его надо оставить. По идее, макрос должен это делать. Но он считает, что таких стилей в документе нет. Видимо, я слишком многого не понимаю в программировании. |
|
10.07.2009, 17:16 | #6 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Документ используется как шаблон, или является шаблоном?
вот что я придумал. Должно получиться. Оказывается, что работать со стилями можно, в общем и нужно, через Органайзер. Стили документа нужны только для определения их имени. Код:
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 10.07.2009 в 17:21. |
11.07.2009, 07:15 | #7 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
То, что я выше написал - необдуманно. После такого действия всё оформление слетит.
|
11.07.2009, 10:21 | #8 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
После запуска этого макроса открывается документ с именем Normal, и сообщение об ошибке:
Run-time error 5512. Стиль с таким именем не существует. Ошибка в этом месте: Application.OrganizerDelete oTmpl.Name, DeadStyle.NameLocal, wdOrganizerObjectStyles А еще вот такая штука. Я взял все удалил из документа (котрол А - делит), остался только знак абзаца, а справа в списке стилей, под названием Используемые целый перечень стилей, как это можно объяснить? Вот цитата из Справки по Ворду (О, боже, справка, справка, - когда же ты будешь помогать юзерам?): Выберите Доступное форматирование для восстановления стандартного режима, Используемое форматирование для отображения только форматирования, используемого в документе... У меня документ с одним абзацем - это получается, что все 100 стилей, отображаемые в списке стилей, применены к этому знаку абзаца? Последний раз редактировалось Busine2009; 11.07.2009 в 10:37. |
11.07.2009, 10:31 | #9 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Закрой и открой документ
Лучше день потерять — потом за пять минут долететь!©
|
|
11.07.2009, 10:34 | #10 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
Что мне пришло в голову впервую очередь - это закрыть и открыть документ. Но все-равно, в списке отображается куча (не могу подобрать более подходящего слова) стилей.
Я вот даже новый документ открываю, и у меня все-равно показывает Что используется куча стилей. Может у меня настройки шаблона какие-то специфические (может где-то галочку поставил). Последний раз редактировалось Busine2009; 11.07.2009 в 10:36. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Многоуровневый список и стили в Word 2007 | CaptainNemo | Microsoft Office Word | 12 | 08.06.2009 23:45 |
Стили MS WORD 2007 | max38934 | Microsoft Office Word | 4 | 04.06.2009 02:25 |
как вставить ссылку на ячейку в документе Excel в Word? | ruavia3 | Microsoft Office Excel | 3 | 19.03.2009 21:32 |
как вставить ссылку в Word на ячейку в документе Excel? | ruavia3 | Microsoft Office Word | 2 | 19.03.2009 21:24 |
Фон в документе Microsoft Word | AleksP | Microsoft Office Word | 8 | 14.09.2008 17:55 |