Статьи из блога
Поиск заголовков и вставка разрывов страниц перед ними
Алексей спрашивает:
Столкнулся со след. проблемой. Имеется документ на 25 000 стр. Этот документ получился в результате выгрузки из БД.
Как в этом документе сделать так чтобы определенные заголовки начинались с новой страницы, а не по окончании пред. текста. То есть, этот загловок начинается с середины, а мне нужно, чтобы с новой страницы.
Для начала вы должны определить, каким стилем у вас оформлены заголовки в тексте. Обычно это Заголовок 1, Заголовок 2 или другой стиль.
После того, как вы определили стиль заголовка, можете применить следующий макрос. Он ищет по тексту заголовки, оформленные стилем "Заголовок 1", а затем вставляет разрыв страницы перед найденным заголовком, оформленным этим стилем. Обратите внимание, что макрос ищет определенные заголовки, оформленные конкретным стилем - в примере это стиль "Заголовок 1". Если у вас эти заголовки оформлены другим стилем, или вообще не оформлены каким-либо стилем, то ничего изменено не будет.
Sub headBreak() With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Forward = True .Wrap = wdFindContinue .Text = "" .Style = ActiveDocument.Styles("Заголовок 1") .Execute End With Selection.Collapse wdCollapseStart Selection.InsertBreak Type:=wdSectionBreakNextPage End Sub
UPD: Либо воспользуйтесь советом, приведенным в комментариях
Метки: макросы | параметры страницы | поиск и замена | разделы | разрывы | стили
Просмотров: 27737
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Word 97. Слияние документов как один из способов упростить свою работу
- Абзац с цветным фоном
- Автозаполняемые колонтитулы
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Автоформат документов
- Белый текст на синем фоне в Word 2007
- Буквица
- Быстрая смена ориентации страниц документа
- Быстрое изменение стиля форматирования текста
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрое удаление границ у таблицы
- Быстрый ввод текста с помощью команды =rand()
Комментариев: 38
Если заголовки действительно оформлены стилями, то нужно просто в свойствах этого стиля поставить свойство «Начинать с новой страницы.»
Сразу же об этом подумал, только прочитав анонс в ридере.
Если же надо искать определённые заголовки (например, Заголовок 1, в котором есть слово «Аларма»), то при поиске и замене нажать Больше, выбрать Формат - Стиль.
P.S. Вместо двух капч можно поставить одну – dimoningru-captcha
Спасибо.
Одна капча не справляется.
А если не оформлены эти заголовки совершенно никаким стилем? То как посоветуете поступить? Пробовал создать стиль заголовка и применить его к документу, но ничего не получилось, а ведь документов действительно много и приходится руками изза незнания может быть простых вещей, подскажите.
Антон, если не оформлены, то придется руками искать эти заголовки и применять к ним соответствующие стили.
Зачем создавать стиль заголовока? Шаблон уже содержит предустановленные стили заголовков. Можете воспользоваться ими или подредактировать их по своему усмотрению.
Почему у вас не получилось создать стиль и применить его? В чем трудность?
Тогда это не заголовки, а просто текст. Word не знает, что это у вас заголовок. Нужно ему об этом сказать, т.е. оформить их стилем. Других вариантов нет. Или делать по-человечески, или мучаться с каждым документом.
Другой вопрос, как оформить стилем. Если каждый ваш «заголовок» имеет совершенно четкое и оригинальное оформление, то можно макросом искать текст, оформленный нужным образом и применять к нему стиль нужного заголовка.
Спасибо за оперативность Антон Кокин и Александр Витер,честно говоря не ожидал! По поводу
очень в тему,значит мне необходимо найти подходящий стиль(на самом деле вид не должен менятся это плат.документ) и применить его к каждому похожему будущему заголовку, тогда вопрос, каккой макрос поможет мне найти заголовки и заменить их стиль, а затем начать следующее плат.поручение с новой строки? Заранее благодарен за помощь
Находить стиль не нужно. Выделите текст, оформленный как нужно, и на его основе создайте стиль. А макрос можно будет предложить, видя исходный документ
Но как-то ведь они оформлены? Часто заголовки выделяют жирным. Ищите жирный текст и заменяйте на стиль Заголовок.
Не оформлены жирным? По правилам точка в конце заголовка не ставится - ищите любую букву + знак абзаца.
Часто заголовок отделяют двойными абзацами, если нет форматирования, тоже поможет ускорить поиск.
Поробуйте
dimoning.ru-captcha
скажите, скажем я нашел с помощью любой буквы и знака абзаца нужный фрагмент, то как мне выделить всю строку?
строку или абзац?
Мышкой или же воспользоваться макросом для выделения текущей строки:
спасибо огромное.
еще вопросик, скажите пожалуйста, как выделить в тексте все таблицы и оформить из одним стилем.
я автоформатом таблиц задаю нужный стиль, но применяется только к одной таблице.
извините, если не в том разделе спрашиваю.
помогите пожалуйста. в макросах плохо разбираюсь, поэтому сначала записываю действие потом его редактирую. Здесь поиском нахожу символ буквы + символ абзаца и заменяю на стиль "заголовок 1". Проходит нормально. Заголовки становятся нужным стилем. Но когда запускаю занова макрос - заголовки обрамляются черной линией и это уже становится на "заголовок 1", а "заголовок+ 15рт и так далее". не могли бы объяснить, в чем дело? почему так происходит?
darklumen, удалите эту строку:
а что делать , если заголовок содержится на 2 и более строках. как выполнить выделение и форматирование более 1 строки?
=)
У вас один заголовок разделен на две части знаком абзаца? С какой целью? Если это один заголовок (стиль), который просто продолжается естественным образом на второй и третьей строках, то он будет отформатирован как один заголовок.
Либо же попытайтесь заменить знак абзаца на знак разрыва строки.
нет, это один большой заголовок, не влезающий на 1 строку.
скажем, я ищу необходимую строку по символу и знаку абзаца, чтобы применить стиль ко всему заголовку, но для этого мне необходимо выделить его весь.
Ваш заголовок уже имеет стиль. Получается, вы хотите переопределить стиль для этого заголовка (текста, оформленного стилем заголовка)?
В таком случае, мне непонятен вопрос. Вы сами, кстати, и отвечаете на него, сообщив, что:
Находите, выделяете и форматируете, как желаете. Уточните, что и как вы хотите получить?
разобрался. спасибо. все понял.
но пока разбирался появилось еще 2 вопросика:
1) как преобразовать все буквы заголовка в прописные?
2) и как сделать сквозную нумерацию заголовков без точки?
извините, если достал расспросами!
1. Выбираете нужный стиль, заходите в его настройки (в опции Шрифт) и устанавливаете там опцию "Все прописные".
2. Вам нужно опять же изменить стиль нумерации. Почитайте вот эту заметку на сайте - http://wordexpert.ru/page/stili-spiskov-v-redaktore-word-2007 (ну и первую часть, если у вас 2003 редактор.
а скажите, что написать в макросе чтобы оглавление вставить именно на какую-то конкретную страницу?
А в чём проблема? В содержании или в конкретной странице? Вот так можно вставить оглавление с двумя уровнями заголовков в местоположение курсора:
Простите, не подскажите как сделать перенос строк в макросе?
и еще вопрос: как сделать резервное копирование, чтобы пользователь сам выбирал место куда сохранить исх файл.
т.е: открываем файл - жмем макрос - текст дублируется на новый документ - появляется окно "сохранить как" - а дальше макрос выполняет свои какие-то действия....
собственно, как обработать появления окна "сохранить как" в макросе?
заранее благодарен. =)
Поставьте нижнее подчеркивание после оператора и продолжайте код с новой строки.
Есть два варианта.
Вариант 1. После нажатия кнопки «Сохранить» документ просто будет сохранён:
Вариант 2. Обладает большей гибкостью. Можно задать заголовок, расширения файлов, текст кнопки, вид окна. После положительного ответа на диалог, его результат можно обработать:
спасибо огромное! )
я имел ввиду, как программно написать расстановку переносов в тексте? =)))))
извините, я понимаю, что уже надоел всвоими вопросами, но у меня опять проблема с форматированием заголовков в тексте.
Этим макросом я создаю свой стиль заголовка, приэтом применяется нумерация цифрами без точки.
--------------------------------------
Этим макросом я нахожу все заголовки в тексте и применю вышесделанный стиль на все найденные заголовки.
НО в результате, отступы все поехали, нумерация не проставлена. Макросы делал макрорекодером, все нормально было. В чем проблема? Голова уже не соображает.. =(((
Согласитесь, перенос строк и расстановка переносов немного разные вещи.
Вот строка для установки расстановки переносов в тексте:
Или вы что-то другое имели в виду?
именно это! огромное спасибо.
и прошу прощения за мое неумение излагать свои мысли!=))))
darklumen, в записанных макросах я не нашёл строк, которые добавляют нумерацию к заголовками. К сожалению, не всё, что вы делаете, записывается макрорекордером.
Я, честно говоря, никогда программно стили не создавал и нумерацию не задавал, но попробую разобраться.
darklumen, а с какой целью вы создаете стиль программно? Вам это нужно для шаблона (нумерованные заголовки по ГОСТу)?
И как у вас оформлены заголовки в тексте, которые вы ищете? В макросе это не определено.
ГОСТ 7.1-2003 «Общие требования к текстовым документам»
Подчеркивать заголовки не допускается. Слова в заголовках не переносятся, точки в конце не ставятся. Заголовки пишутся без кавычек.
Разделы имеют порядковые номера в пределах всей записки. Заголовки разделов (глав) пишутся прописными буквами. Обозначаются арабскими цифрами без точки 1, 2 и т.д. и начинаются с абзацного отступа (1,27 см). Расстояния между текстом и заголовками равно двум 1,5-м интервалам.Каждый раздел пояснительной записки рекомендуется начать с нового листа.
вот примерно это я и пытаюсь сделать в макросе. т.е. как я понимаю, сначала мы создаем свой стиль, соответвующий параметрам. Затем ищем заголовки по любой букве и знаку абзаца (без точки). и к тому, что найдено в документе применяем этот стиль.
может я слишком все усложняю и есть другое решение?
Думаю, что усложняете. Я тоже работаю по ГОСТу и у меня давным давно сделан шаблон с нужными заголовками, нумерацией заголовков. Кстати, об этом я даже написал заметку: http://wordexpert.ru/page/sozdanie-stiley-dlya-zagolovkov-i-mnogourovnevyih-spiskov-v-word
Для форматирования заголовков совсем не нужно выделять строку, это можно сделать с помощью "горячих клавиш": 1. установите курсор на строке, где должен быть заголовок. 2. нажмите комбинацию клавиш: "Alt"+ "1"(ряд цифр в верху) (цифра 1= заголовок первого типа, цифра 2= второго, 3=третьего). PS: для ворда версий 2000-2003 (в 2007 не пробовал)
Помогите, пожалуйста. Хочу написать макрос макрорекордером по замене стиля одного заголовка на другой, но у меня не получается.
Делаю: Найти: —> Формат —> Стили —>Заголовок1, Заменить на: —>Формат —> Стили —>Заголовок1 —> Шрифт (выбираю) —> Заменить всё. И ничего не получается.
Подозреваю, что строки надо заполнить какими-то подстановочными знаками, иначе воспринимает, что "пусто" поменять на "пусто". И где надо ставить флажки?