Слово выбора текста Vba

Обновлено: 04.07.2024

Частая задача при использовании Visual Basic – указать область в документе, а затем выполнить с ней какие-либо действия, например вставить текст или применить форматирование. Объект Range относится к непрерывной области в документе.

Использование Word VBA

Работа с объектами документа

Вставить текст в документ

Используйте метод InsertBefore или метод InsertAfter объекта Selection или объекта Range для вставки текста до или после выделения или диапазона текста. В следующем примере текст вставляется в конец активного документа.

Редактировать текст

Применить форматирование к тексту

Изменить часть документа

Работа с объектами диапазона

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

Найти и заменить текст или форматирование

Найти и заменить можно с помощью объектов «Найти и заменить». Объект Find доступен из объекта Selection и объекта Range.

Пройтись по коллекции

Существует несколько различных способов зацикливания элементов коллекции. Однако рекомендуемый метод зацикливания коллекции — использовать метод For Each. Следующая петля. В этой структуре Visual Basic повторяет блок инструкций для каждого объекта в коллекции. В следующем примере отображается имя каждого документа в коллекции Documents.

Распространенные проблемы

Ошибка "запрошенный элемент коллекции не существует" возникает при попытке доступа к несуществующему объекту.

Ошибка "объект не поддерживает это свойство или метод" возникает при попытке использовать метод или свойство, которые не поддерживает указанный объект.

Взаимодействие пользователя

Для взаимодействия с пользователями вы можете использовать стандартные диалоговые окна MsgBox и InputBox, отображать встроенные диалоговые окна Word или настраиваемые диалоговые окна или формы (синонимы: UserForms. MSForms).

Примечание: при установке Code VBA добавляются следующие инструменты для взаимодействия с пользователем: Userform Builder, SelectionBox и DatePicker

Отображение пользовательского диалогового окна

Чтобы отобразить диалоговое окно из Visual Basic, используйте метод Show. В следующем примере отображается диалоговое окно с именем UserForm1.

Инициализировать свойства элемента управления

Вы можете инициализировать элементы управления во время выполнения, используя код Visual Basic в макросе. Например, вы можете заполнить поле со списком, установить текстовые значения или установить переключатели.

События элементов управления и диалоговых окон

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

mkhuebner Windows 7 64-битная Office 2010 64-битная

Я пытаюсь создать макрос Word 2010, который находит, выбирает и переформатирует одно слово в документе, начиная с текущей позиции курсора. Во время записи макроса я пытался использовать Поиск в меню (Ctrl-F), но в моем макросе ничего не записывается для операции поиска, хотя курсор перемещается и выделяет найденное слово. Я пробовал использовать приведенный ниже код, но это также не перемещает текущую позицию курсора в это слово. Может ли кто-нибудь сказать мне, как записать операцию поиска текста в макросе Word, или еще сказать мне, какой правильный код VBA для этого? Заранее спасибо!

Selection.Find.Text = "Сводка"
Selection.Find.Execute
Selection.Style = ActiveDocument.Styles("Body Text")
Selection.Font.Bold = wdToggle< /p>

макропод Windows 7 32-разрядная Office 2010 32-разрядная

В вашем коде предполагается, что вы хотите переключить атрибут жирного шрифта для «Синопсис» в стиле «Основной текст», а не просто сделать все жирным или не полужирным. В этом случае вы можете использовать такой макрос:

Однако, если вы хотите сделать весь такой текст полужирным, макрос можно сделать гораздо более эффективным и простым:

Если вы хотите сделать шрифт не полужирным, измените:
.Replacement.Font.Bold = True
на:
.Replacement.Font.Bold = False

mkhuebner Windows 7 64-битная Office 2010 64-битная

Спасибо. Должен ли код быть таким сложным? Все, что я хочу сделать, это найти следующее слово «Синопсис» после текущей позиции курсора и изменить его стиль на основной текст и сделать его полужирным.

макропод Windows 7 32-разрядная Office 2010 32-разрядная

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

измените его стиль на основной текст и сделайте его полужирным< /td>

Это не то, что делает код, который я разместил. Основываясь на том, что вы опубликовали, опубликованный мной код ищет «Синопсис», который уже находится в стиле «Основной текст». Кроме того, вы не можете переформатировать только одно слово из многих в абзаце с помощью стиля «Основной текст», так как этот стиль является стилем абзаца. Конечно, это не имеет значения, если «Синопсис» — единственное слово в соответствующих абзацах.

Что касается изменения шрифта на жирный, если «Синопсис» является единственным словом в соответствующих абзацах, вам лучше изменить шрифт стиля «Основной текст» на жирный, чем переопределить формат стиля. Точно так же, если «Синопсис» — это только одно из многих слов в абзаце, вам лучше применить стиль символа «Сильный» к «Синопсису», чем переопределять формат стиля. Например:

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

В этих примерах мы предполагаем, что читатель имеет хотя бы базовые знания VBA, поэтому мы не будем вдаваться в основы создания и запуска скриптов. Этот код был протестирован в Microsoft Word и Excel 2007. Для других версий Word и Excel могут потребоваться некоторые изменения.

Функция, демонстрирующая запись VBA в документ Microsoft Word

Следующий код иллюстрирует использование объекта VBA Word.Application и связанных свойств. В этом примере мы создаем новый документ Word, добавляем текст.

Некоторые слова VBA

ParagraphFormat Представляет все форматирование абзаца.

вывод в MS Word:


Вставка оглавления в документ Word с помощью Excel VBA

В этом примере мы создаем оглавление в документе Word с помощью Excel VBA

Некоторые слова VBA

ActiveDocument.TablesOfContents.Add Свойство TablesOfContents для возврата коллекции TablesOfContents. Используйте метод Add, чтобы добавить в документ оглавление.

Некоторые параметры TablesOfContents

Диапазон Диапазон, в котором должно отображаться оглавление. Оглавление заменяет диапазон, если диапазон не свернут.

UseHeadingStyles True, чтобы использовать встроенные стили заголовков для создания оглавления. Значение по умолчанию — Истина.

UpperHeadingLevel Начальный уровень заголовка для оглавления. Соответствует начальному значению, используемому с переключателем \o для поля оглавления (TOC). Значение по умолчанию – 1.

LowerHeadingLevel Конечный уровень заголовка для оглавления. Соответствует конечному значению, используемому с переключателем \o для поля оглавления (TOC). Значение по умолчанию — 9.

вывод таблицы Word в MS Word:


Запись вкладок Microsoft Word

Функция, которая записывает содержимое с вкладками в документ Microsoft Word. Обратите внимание, что в каждой итерации мы изменяем значение ведущего символа (символы, которые вставляются в пустую область, созданную вкладкой).

Некоторые слова VBA

.TabStops.Add Используйте свойство TabStops для возврата коллекции TabStops. В приведенном выше примере nprogram добавляет позицию табуляции, расположенную на 0, 2,5 и 5 дюймах.

вывод в MS Word:


Написание таблиц Microsoft Word

В этом примере мы создаем таблицу Microsoft с помощью Excel VBA

Некоторые слова VBA

Table.Add Объект таблицы, представляющий новую пустую таблицу, добавленную в документ.

Диапазон Диапазон, в котором должна отображаться таблица. Таблица заменяет диапазон, если диапазон не свернут.

NumRows Количество строк, которые вы хотите включить в таблицу.

NumColumns Количество столбцов, которые вы хотите включить в таблицу.

DefaultTableBehavior Устанавливает значение, указывающее, изменяет ли Microsoft Word автоматически размеры ячеек в таблицах, чтобы они соответствовали содержимому ячеек (AutoFit). Может быть одной из следующих констант: wdWord8TableBehavior (автоподбор отключен) или wdWord9TableBehavior (автоподбор включен). Константа по умолчанию — wdWord8TableBehavior.

AutoFitBehavior Задает правила автоподбора размеров таблиц Word. Может быть одной из констант WdAutoFitBehavior.

вывод в MS Word:


Написать маркерный список Microsoft Word

В этом примере мы пишем с помощью маркированного списка и контурных чисел с помощью Excel VBA

вывод в MS Word:


< /p>

Еще один пример записи таблиц в Microsoft Word

В этом примере мы создадим документ Word с 20 абзацами. Каждый абзац будет иметь заголовок с элементом стиля заголовка

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

ОБЗОР

В этой статье представлено несколько примеров макросов 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 для приложений см. в следующей статье базы знаний Майкрософт:

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