Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 7 ]
- Александр П.
- сержант
- Неактивен
- Зарегистрирован: 18.02.2010
- Сообщений: 10
Тема: Удаляем не нужные стили
Задача состоит в том что бы удалить не используемые стили из документа (о встоенных, то есть не удаляемых не говорим).
Когда документ правится в нём нередко появлются стили, которые потом не используются, но в документе они есть.
Есть ли какой-нибудь способ выявлеия таких стилей с последующим удалением.
Если в ручную просматривать каждый стиль, то тут тоже есть сложность: если стиль используется в колонтитуле, то указывается, что он не используется. Если он является родительским, а сам на прямую не используется, то тоже указывается, что он не используется.
Как сделать, чтобы нужное осталось, а остальное удалить.
- Akhiles
- сержант
- Неактивен
- Зарегистрирован: 14.01.2010
- Сообщений: 15
Re: Удаляем не нужные стили
А какой в этом смысл? В размере файла не выиграешь сильно, а Word настраивается так, что показываются только используемые стили!! Если есть смысл ограничить форматирование, опять таки можно (в 2007-ом) разрешить использовать конкретных стилей? На кой их удалять?
Нет дверей которые не открываются. Любая задача имеет минимум 2 решения.
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Удаляем не нужные стили
Этот вопрос неоднократно поднимался. Я делал макрос, удаляющий неиспользуемые в документе стили, попробуйте:
Sub DeleteUnusedStyles()
Dim oSt As Style, sMsg As String, oStrRange As Range
For Each oSt In ActiveDocument.Styles
On Error Resume Next
If Not oSt.BuiltIn Then'Если стиль не встроенный
For Each oStrRange In ActiveDocument.StoryRanges
With oStrRange.Find
.Style = oSt.NameLocal 'Ищем все вхождения текста, оформленного заданным стилем
.Execute
If (Not .Found) And Err.Number = 0 Then 'Если не нашли такой текст, и нет ошибок, то стиль удаляем
sMsg = sMsg & "Удален """ & oSt.NameLocal & """" & vbCr: oSt.Delete
ElseIf CBool(Err.Number) Then 'Если есть ошибка, то сообщаем об этом
sMsg = sMsg & "Невозможно удалить """ & oSt.NameLocal & """" & ". Причина: " & Err.Description & vbCr
Err.Clear
End If
End With
Next oStrRange
End If
Next
MsgBox sMsg, vbInformation, "Результаты удаления стилей"
End Sub
Лучше день потерять — потом за пять минут долететь!
- Александр П.
- сержант
- Неактивен
- Зарегистрирован: 18.02.2010
- Сообщений: 10
Re: Удаляем не нужные стили
Спасибо за макрос попробую.
Они очень мешают. Особенно когда пытаешься использовать стили из другова документа.
Если они с одинаковыми именами (очень часто бывает, видно на имена фантазии не хватает), то приоретет будет иметь тот, который находится в документе, а не вносимый.
Отредактировано Александр П. (26.02.2010 16:35:02)
- Александр П.
- сержант
- Неактивен
- Зарегистрирован: 18.02.2010
- Сообщений: 10
Re: Удаляем не нужные стили
Жаль, но макрос не работает.
Вернее работает, но уж очень круто!
Я его запустил на пробу в небольшом документе. Он убрал стили: незадействованые; стили, которые используются в колонтитулах; и стиль, который был создан ручным форматированнием (для таблицы).
Ладно вроде ничего страшного. Создаю именной стиль применяю его. Запускаю макрос, он его опять удалил. Получается, что после применения макроса, стили созданные после этого всё равно удаляются.
Отредактировано Александр П. (01.03.2010 10:38:48)
- Зарегистрирован: 10.01.2010
- Сообщений: 63
Re: Удаляем не нужные стили
Александр П. пишет:работает, но уж очень круто!
Макрос ищет встроенные "фирменные" стили Word. Остальные удаляет.
Можно попробовать заменить в этой строке
viter.alex пишет: If Not oSt.BuiltIn Then
свойство BuiltIn на InUse (встроенные, созданные и используемые)
Отредактировано Денис (04.03.2010 21:05:56)
- sanddark
- рядовой
- Неактивен
- Откуда: Москва
- Зарегистрирован: 22.11.2016
- Сообщений: 1
Re: Удаляем не нужные стили
Макрос не работает т.к. проверяет не весь документ.
Сообщений [ 7 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Удаляем не нужные стили
Кто-то воспринимает компьютер, как рабочий инструмент, кто-то считает его окном в мир, кто-то в восторге от всех глубин и тайн высокоинтеллектуальной железки, а кому-то и дела нет, как он там внутри устроен, лишь бы работал. Наш сайт о Microsoft Office Word даст ответ про: word 2003 содержание.
Но всем, так или иначе, приходилось вспомнить, что «вначале было слово». Вряд ли найдется хоть один человек, кто, имея компьютер, ни разу ничего не напечатал. На портале о Microsoft Office Word вы узнаете про: снять якорь с колонтитула в 2007\.
А какая для этого программа стоит у большинства? Правильно - Microsoft Word.
Вы считает себя экспертом или просто научились набирать 33 буквы на клавиатуре, открывать и сохранять документ? На портале о Microsoft Office Word вы узнаете про: как в ворде убрать режим форматирования.
Работаете по-старинке с 2003 или у вас новейшая версия? Для всех полезной будет информация, которой в достатке на форуме сайта Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: формы в word 2007.
На нашем форуме можно прочитать о том, как необычно применить привычные функции, и что есть новенького, с чем вы не сталкивались. Наш сайт о Microsoft Office Word даст ответ про: ключик для office 2010.
Оригинальные решения, позволяющие экономить время, ответы на вопросы по любой версии. Если хотите заняться программирование, то перечень литературы к вашим услугам. Наш сайт о Microsoft Office Word даст ответ про: как убрать пробелы при сноске.
Просто полезных книг на форуме упоминается тоже много.
Кстати, о программировании. Это не такая жуткая вещь, как кажется. На портале о Microsoft Office Word вы узнаете про: что за файлы в папке local settings\temporary internet files\content.word.
Мини-программирование в виде макросов может освоить любой ребенок. На форуме вы найдете, как их описания, так и готовые решения. Наш сайт о Microsoft Office Word даст ответ про: как закрепить линию в ворде, чтобы при написании на ней она не съезжала.
А кому не охота возиться, оставляйте заявку – зубры помогут. Удачи вам!