Статьи из блога
Макрос вставки текста перед каждым абзацем
Александр спрашивает:
Как вставить (автоматически!) по всему документу в начале каждой строки один и тот же текст? Вручную это очень долго если документ много строк.
Можно воспользоваться следующим макросом для вставки некоего текста перед первым предложением каждого абзаца.
1 2 3 4 5 6 7 8 9 | Sub insertBefore() 'Вставка текста из поля ввода перед каждым абзацем Dim par As Paragraph Dim Str As String Str = InputBox( "Введите текст" , "Ввод текста в начало каждого абзаца" ) 'Диалог с полем ввода текста For Each par In ActiveDocument.Paragraphs par.Range.insertBefore (Str & vbTab) 'Вставляем текст из поля ввода и добавляем табуляцию Next End Sub |
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Создание макроса из готового кода
Рубрика: Стили и форматирование, Макросы
Метки: макросы | форматирование
Просмотров: 27365
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | форматирование
Просмотров: 27365
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 3 способа очистки списка недавно открытых документов
- Word 2007: полотно, рисунки, линии
- Word 97. Слияние документов как один из способов упростить свою работу
- Абзац с цветным фоном
- Автозаполняемые колонтитулы
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Автоформат документов
- Буквица
- Быстрая смена ориентации страниц документа
- Быстрое изменение стиля форматирования текста
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрое удаление границ у таблицы
- Быстрый ввод текста с помощью команды =rand()
- Быстрый поиск форматированного текста
- В чем различие между Автозаменой и Автотекстом
- В чем различие между стилями Обычный (Normal) и Основной текст (Body Text)?
- Ввод повторяющихся фрагментов текста в Word 2007
- Ввод часто повторяющихся фрагментов текста
- Вставка будущей даты
Комментариев: 7
Если "перед первым предложением каждого абзаца", то проще обычной заменой: знак абзаца заменяем на знак абзаца + текст . Но челевеку, похоже, надо перед каждой строчкой?
А как можно вставить 3 строки после нахождения определенного слова.
Например я хочу находить в документе слова ПРИВЕТ и ниже этих слов вставить 3 строчки (ВАСЯ ПЕТЯ МИША). Слов "ПРИВЕТ" в тексте много.
Вот так должно все выглядеть.
ПРИВЕТ
ВАСЯ
ПЕТЯ
МИША
Ctrl + H
В поле Найти: привет
В поле Заменить: ^&^pВАСЯ^pПЕТЯ^pМИША
Простите забыл один момент.
Необходимо чтобы поиск и вставка текста начиналась с того текста где стоит курсор, а не с начала документа.
Нужно чтобы это был макрос. Так как вместо слов ВАСЯ ПЕТЯ МАША будут предложения. И такие замены необходимо делать очень часто. Я думаю что проще будет запускать макрос чем делать это через писк и замену. БЛАГОДАРЮ ВАС ЗА ОТВЕТ. Этот вариант меня тоже спасет. И еще я не ожидал, что так быстро ответите. СПАСИБО.
Здравствуйте. Не нашел на сайте решение моей задачи. Суть в следующем - есть книга на английском. Я хочу разбить её по абзацам и под каждым абзацем на английском получить машинный перевод на русский, чтобы потом спокойно читать текст в оригинале, при необходимости просматривая перевод - т.е. что-то наподобие системы чтения Ильи Франка. Пока что делал всё вручную - расставлял пустые строки под каждым абзацем с учетом исходного форматирования, выделял абзац, сочетанием назначенных мной клавиш получал перевод в Microsoft Translator, а потом нажимал в нем на кнопку "Вставить". Вопрос - не подскажите ли, как можно автоматизировать данную процедуру, т.к. для 100 страничной книжки делать всё это вручную долго и нудно? Хотя бы так, чтобы при нажатии на кнопку весь текст делился на абзацы с пустыми пробельными строками между ними, потом я бы выделял абзац, нажимал одно сочетание клавиш и под этим абзацем появлялся бы машинный перевод на русский? Ну или 2-мя сочетаниями - один для перевода, а другой для вставки переведенного фрагмента под абзацем с оригинальным текстом. Буду очень признателен.
Добрый день подскажите, видоизменил код, он работает, но с одним но! Вставляет не в конце абзаца, а уже на след. абзац. Не кодил в VBA уже больше 5 лет, а сейчас вспоминать нет времени нужен как можно скорее макрос.
Код: Sub insert()
Dim par As Paragraph
Dim Str As String
Dim Str2 As String
Dim myRange As Range
Str = "
"
Str2 = "
"For Each par In ActiveDocument.Paragraphs
par.Range.insertBefore (Str & vbTab)
Next
For Each par In ActiveDocument.Paragraphs
.Range.InsertAfter (Str2) ЭТА ЧАСТЬ КОДА
Next
'Заменяем кавычки на код, для экранирования при переносе в БД
Set myRange = ActiveDocument.Range
myRange.Find.Execute FindText:=Chr(34), ReplaceWith:=""", Replace:=wdReplaceAll
End Sub
Что получается:
Технология MVA для дисплеев обеспечивает широкий угол обзора и высокий уровень контрастности
Светодиодный дисплей Philips
Что надо:
Технология MVA для дисплеев обеспечивает широкий угол обзора и высокий уровень контрастности
Светодиодный дисплей Philips