Статьи из блога
Макрос вставки текста перед каждым абзацем
Александр спрашивает:
Как вставить (автоматически!) по всему документу в начале каждой строки один и тот же текст? Вручную это очень долго если документ много строк.
Можно воспользоваться следующим макросом для вставки некоего текста перед первым предложением каждого абзаца.
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
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Создание макроса из готового кода
Рубрика: Стили и форматирование, Макросы
Метки: макросы | форматирование
Просмотров: 27254
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | форматирование
Просмотров: 27254
Подписаться на комментарии по 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