Vba word вставляет текст в указанное место

Обновлено: 05.07.2024

Информация, иллюстрации и код, содержащиеся в моих "Советах по Microsoft Word", предоставляются бесплатно и без каких-либо рисков или обязательств.

Однако работа принадлежит мне. Если вы используете его в коммерческих целях или извлекаете выгоду из моих усилий в виде заработанного дохода или сэкономленного времени, то пожертвование, каким бы небольшим оно ни было, поможет обеспечить постоянную доступность этого ресурса.

Если вы хотите сделать пожертвование, используйте соответствующую кнопку пожертвования для доступа к PayPal. Спасибо!

На этой странице справки Microsoft Word и советов по Microsoft Word показано, как использовать VBA для вставки текста "на" или "внутри" закладки, а также показаны преимущества вставки "внутри" закладки.

Предыстория/Обсуждение

Как вы, возможно, знаете, закладки обозначают местоположение в документе. Возможно, вы не знаете, что закладка определяет диапазон документа.

  • Вы можете перейти к этому диапазону (Ctrl+g).
  • Вы можете поместить вещь перед этим диапазоном.
  • Вы можете поместить что-то после этого диапазона.
  • Вы можете поместить элементы в этот диапазон.

Для этой страницы советов я создам две пустые закладки с именами bmAtBookmark и bmInBookmark.

вставить текст в закладку 1

вставить текст в закладку 2

Вставить текст в закладку с помощью VBA очень просто. Одна строка кода — это все, что вам нужно (см. InsertAtBookmarkI и InsertAtBookmarkII на панели кода ниже:

При выполнении InsertAtBookmarkI все выглядит нормально.

вставить текст в закладку 3

Сложность возникает, когда вы хотите вставить дополнительный или измененный текст в закладку. Выполните InsertAtBookmarkII выше и просмотрите результат:

вставить текст в закладку 4

Вставка текста "в" закладку требует всего нескольких дополнительных строк кода, но результат того стоит. См. InsertInBookmarkI и InsertInBookmarkII в области кода ниже:

При выполнении InsertInBookmarkI вставляемое содержимое ограничивается диапазоном закладок.

вставить текст в закладку 5

Если вы хотите добавить дополнительный текст, выполните InsertInBookmarkII.

вставить текст в закладку 6

Примечание. Изменение или определение диапазона закладок с помощью процедуры VBA уничтожает закладку! Вот почему добавление текста «в» закладку требует следующих дополнительных шагов:

  • Определить объект диапазона и установить его равным существующему диапазону закладок.
  • Используйте свойство range .Text для определения текста закладки (это уничтожит исходную закладку)
  • Повторно создайте закладку с тем же именем, используя объект диапазона, чтобы определить местоположение воссозданной закладки.

Теперь вы должны увидеть, что, помещая текст "в" тиски "в" закладку, вы позволяете пользователю документа что-то сделать, а затем передумаете и сделаете что-то другое, не испортив документ.

Удалите текст после закладки bmAtBookmark и выполните процедуру InsertAtBookmarkIII, представленную ниже.

Как и прежде, результат в документе выглядит нормально. Теперь вы передумали, поэтому запустите код еще раз, результат не так хорош.

вставить текст в закладку 7


В первый раз выглядит нормально.

вставить текст в закладку 8


Нерешительность, нерешительность. приводит к плохим результатам.

Теперь попробуйте следующий код и посмотрите, не довольны ли вы результатом:

Если вы будете часто писать в диапазоны закладок или если у вас есть проект, включающий несколько диапазонов закладок, вам следует рассмотреть возможность использования в вашей процедуре вызова отдельной процедуры только для записи в диапазон закладок. Это может исключить использование повторяющегося кода в ваших процедурах.

Вставка содержимого файла в закладку

Вставить содержимое файла с помощью метода .InsertfFile в закладку немного сложно. Это связано с тем, что при использовании объекта диапазона с методом .InsertFile (например, oRng.InsertFile "D:\FileToInsert.docx"), диапазон оказывается свернутым в начале вставленного текста в конце, как и следовало ожидать.

Вы можете использовать следующий метод для решения этой проблемы:

См. раздел Установка макросов для получения инструкций по настройке и использованию макросов, представленных на этой странице справки Microsoft Word и советов по Microsoft Word.

Вот оно! Я надеюсь, что вы нашли эту страницу советов полезной и информативной.

Хотите ли вы оплатить консультационную работу или сделать пожертвование для поддержки этого сайта?

PayPal — это безопасный и простой способ оплаты в Интернете.

Используйте кнопку "Пожертвовать" в соответствующей валюте, чтобы сделать платеж или пожертвование.

На этой странице

ОБЗОР

В этой статье представлено несколько примеров макросов Visual Basic для приложений, использующих свойство Selection и объект Range для вставки текста в документ.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Microsoft предоставляет примеры программирования только для иллюстрации, без явных или подразумеваемых гарантий. Это включает, но не ограничивается, подразумеваемые гарантии товарного состояния или пригодности для конкретной цели. В этой статье предполагается, что вы знакомы с демонстрируемым языком программирования и инструментами, которые используются для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут помочь объяснить функциональность конкретной процедуры, но они не будут изменять эти примеры, чтобы обеспечить дополнительную функциональность или создавать процедуры в соответствии с вашими конкретными требованиями.

Использование объекта Selection и метода TypeText

Вставляет указанный текст. Если свойство ReplaceSelection имеет значение True, выделение заменяется указанным текстом. Если свойство ReplaceSelection имеет значение False, указанный текст вставляется перед выделением.

Для получения дополнительных сведений о свойстве ReplaceSelection в редакторе Visual Basic щелкните Справка Microsoft Visual Basic в меню Справка, введите Свойство ReplaceSelection в поле помощника Office или мастера ответов, а затем нажмите кнопку Поиск, чтобы просмотреть раздел.

Использование объекта Range

В следующем примере все содержимое документа заменяется словом "Заменено" независимо от текущей позиции точки вставки.

Использование объекта Range или Selection с методом InsertAfter/InsertBefore

Пример метода InsertAfter:

Вставляет указанный текст в конец диапазона или выделения.
Пример метода InsertBefore:

Вставляет указанный текст в начало диапазона или выделения. После применения этого метода диапазон или выделение расширяются, чтобы включить новый текст.

Вставка комментария в документ с помощью объекта Range или Selection

Вставка поля в документ с помощью объекта Range или Selection

Вставляет поле в текущую позицию точки вставки.
В этом примере вставляется поле формулы. Результат форматируется знаком доллара.

Репликация текста, включая формат, текстового диапазона

Это свойство возвращает объект Range с форматированием символов и текстом из указанного диапазона или выделения. Форматирование абзаца включается в объект Range, если в диапазоне или выделении есть метка абзаца. При установке этого свойства текст в диапазоне заменяется форматированным текстом. Если вы не хотите заменять существующий текст, используйте метод Collapse перед использованием этого свойства.

Размещение текста в верхнем или нижнем колонтитуле

ПРИМЕЧАНИЕ. Свойство HeaderFooter требует, чтобы выделение располагалось в верхнем или нижнем колонтитуле, иначе произойдет ошибка.
В следующем примере изменяется текст как основного верхнего, так и основного нижнего колонтитула для первого раздела активного документа.

Использование объекта Range или Selection для вставки даты с помощью поля Time

В этом примере показано, как вставить поле "Время" для текущей даты. Возможным результатом может быть «18 ноября 1996 года».

Использование объекта Range или Selection для вставки нового абзаца

Использование объекта Range или Selection для вставки символа

Использование объекта Range или Selection для вставки из буфера обмена

В этом примере текст, помещенный в буфер обмена, вставляется в текущую позицию точки вставки.

Для получения дополнительных сведений об использовании объекта диапазона в редакторе Visual Basic щелкните Справка Microsoft Visual Basic в меню Справка, введите Объект диапазона в поле помощника Office или мастера ответов, а затем нажмите кнопку Поиск, чтобы просмотреть тему.

Для получения дополнительных сведений об использовании объекта выбора в редакторе Visual Basic щелкните Справка Microsoft Visual Basic в меню Справка, введите Объект выбора в поле помощника Office или мастера ответов, а затем нажмите кнопку Поиск, чтобы просмотреть тему.< /p>

Для получения дополнительной информации о том, как использовать пример кода в этой статье, щелкните номер статьи ниже, чтобы просмотреть статью в базе знаний Майкрософт:

ССЫЛКИ

Дополнительные сведения о получении справки по Visual Basic для приложений см. в следующей статье базы знаний Майкрософт:

Вас также может заинтересовать наше интерактивное руководство по VBA для Excel. Хотя некоторые примеры/упражнения относятся к Excel VBA, большая часть содержания является общей для всех VBA, и вам может быть полезно изучить такие понятия, как операторы If, циклы, окна сообщений и т. д.

VBA PDF (бесплатная загрузка)

Загрузите наше бесплатное руководство по Microsoft Word VBA! Или учебные пособия по VBA для других программ Office!

 учебник по word vba pdf

Примеры Word VBA «Шпаргалка»

Ниже вы найдете простые примеры кода VBA для работы с Microsoft Word.

Выбрать/Перейти

Закладки

С ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=”Name”
.DefaultSorting = wdSortByName
.ShowHidden = False
End With

Selection.GoTo What:=wdGoToBookmark, Name:="BookmarkName"
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.InsertAfter "Новый текст"
ActiveDocument. Bookmarks.Add Range:=Selection.Range, _
Name:="BookmarkName"

Документ

Столбцы

Затемнить varNumberPages как вариант
varNumberPages = _
ActiveDocument.Content.Information(wdActiveEndAdjustedPageNumber)

Программирование VBA стало проще

automacro

Прекратите искать код VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области кодирования и множеством функций, позволяющих сэкономить время для всех пользователей!

Вставить

Циклы

Подчинить абзацы
Размер i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.Count For i = 1 To iParCount
ActiveDocument.Paragraphs(i).Alignment = wdAlignParagraphLeft < br />Далее я

Абзац

Подчинить абзацы
Размер i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.Count For i = 1 To iParCount
ActiveDocument.Paragraphs(i).Alignment = wdAlignParagraphLeft < br />Далее я

Учебник по работе с макросами Word VBA

Это руководство по использованию VBA с Microsoft Word. В этом учебном пособии вы узнаете, как написать простой макрос и взаимодействовать с документами, диапазонами, выделенными фрагментами и абзацами.

Примечание. Если вы новичок в макросах/VBA, вам также может быть полезна эта статья: Как писать макросы VBA с нуля.

VBA — это язык программирования, используемый для автоматизации программ Microsoft Office, включая Word, Excel, Outlook, PowerPoint и Access.

Макросы – это блоки кода VBA, которые выполняют определенные задачи.

Когда вы записываете макрос, Word записывает код VBA в макрос, позволяя вам повторять свои действия. Вы можете просмотреть список всех доступных макросов, выбрав Вид > Макросы.

макросы слов вид

После записи макроса вы сможете редактировать макрос из списка макросов:

 список макросов word vba

При нажатии кнопки "Изменить" открывается редактор VBA. Используя редактор VBA, вы можете редактировать записанные макросы или писать макросы Word с нуля. Чтобы получить доступ к редактору VBA, используйте сочетание клавиш ALT + F11 или щелкните Visual Basic на ленте разработчика.

word vba редактор

Пример простого макроса Word

Это простой пример макроса Word VBA. Он выполняет следующие задачи:

Как автоматически вставить один и тот же текст в несколько мест в документе Word?

Предположим, есть текстовая строка, которую вы часто используете, и вы хотите вставить ее в несколько мест этого документа Word. Чтобы ввести его снова и снова вручную, можно потерять много времени. Существуют ли какие-либо быстрые и хорошие способы повторения указанной текстовой строки в документе в любом месте? В этой статье я расскажу о некоторых полезных методах решения этой проблемы в Word.

Если вы часто используете текстовую строку, чтобы вставить ее в несколько мест в файле Word, панель автотекста Kutools for Word может оказать вам услугу.

  • 1. Добавьте определенную текстовую строку в область автотекста;
  • 2. Щелкните текстовую строку, чтобы вставить ее как обычный текст или изображение в нужное место.

doc автоповтор текста 9

Kutools for Word: с более чем 100 удобными надстройками Word, которые можно бесплатно попробовать без ограничений в течение 60 дней. Нажмите, чтобы скачать и бесплатно попробовать прямо сейчас!

Автоматическая вставка одного и того же текста в нескольких местах с помощью функции закладок

Чтобы вставить текстовую строку, которую вы часто использовали в нескольких местах документа Word, вы можете вставить закладку, а затем создать перекрестную ссылку, чтобы вставить ее в любом месте, сделайте следующее:

<р>1. Выберите текстовую строку, которую вы хотите вставить несколько раз, а затем нажмите «Вставить» > «Закладка», см. снимок экрана:

doc автоповтор текста 1

<р>2. В диалоговом окне «Закладка» введите имя для этого текста в поле «Имя закладки», а затем нажмите кнопку «Добавить», см. снимок экрана:

doc автоповтор текста 2

<р>3. Затем перейдите в место, куда вам нужно вставить эту текстовую строку, а затем нажмите «Ссылки» > «Перекрестная ссылка», см. снимок экрана:

doc автоповтор текста 3

<р>4. В диалоговом окне «Перекрестная ссылка»:

(1.) Выберите «Закладка» в раскрывающемся списке «Тип ссылки»;

(2.) Выберите параметр «Текст закладки» в раскрывающемся списке «Вставить ссылку»;

(3.) В списке Для какой закладки выберите имя закладки, которую вы только что вставили;

(4.) Затем нажмите «Вставить», чтобы вставить его.

doc автоповтор текста 4

<р>5. Вы можете поместить курсор в любое место и нажать кнопку «Вставить», чтобы вставить текстовую строку, не закрывая диалоговое окно.

Примечание. Если исходная текстовая строка изменена, вам просто нужно выделить все содержимое документа, а затем нажать клавишу F9, чтобы обновить все поля в документе.

Автоматическая вставка одного и того же текста в нескольких местах с помощью Kutools for Word

Если у вас есть Kutools for Word, с его функцией «Автотекст», вы можете вставить текстовую строку в панель «Автотекст», а затем вставить текст из панели «Автотекст» в файл Word в любом месте в любое время.

После установки Kutools for Word сделайте следующее:

<р>1. Выберите текстовую строку, которую вы хотите повторить, а затем нажмите Kutools > Автотекст, см. снимок экрана:

doc автоповтор текста 5

doc автоповтор текста 6

<р>2. На панели автотекста нажмите кнопку, введите имя и укажите категорию для этого текста, как показано на следующем снимке экрана:

doc автоповтор текста 7

<р>3. Затем нажмите кнопку «Добавить», чтобы добавить текстовую строку на панель автотекста. Теперь вам просто нужно поместить курсор в то место, куда вы хотите вставить этот текст, а затем щелкнуть поле текстовой строки на панели «Автотекст», чтобы вставить его. Смотрите скриншот:

doc автоповтор текста 8

Совет. Если вы просто хотите вставить текст в виде обычного текста или изображения, щелкните стрелку в поле текстовой строки и выберите нужный тип.

Читайте также: