Vba выделение текста word

Обновлено: 06.07.2024

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

Сведения о других задачах редактирования и примеры из них см. в следующих темах:

Определение выбора текста

Обрушение выбора или диапазона

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

В следующем примере диапазон отменяется до точки окончания (после первого слова) и добавляется новый текст.

Расширение выбора или диапазона

В следующем примере используется MoveEnd].. /.. /.. /api/Word.Selection.MoveEnd.md) метод объекта Selection, чтобы расширить конец выбора, чтобы включить три дополнительных слова. MoveLeft, * MoveRight].. /.. /.. /api/Word.Selection.MoveRight.md), ** MoveUp](.. /.. /.. /api/Word.Selection.MoveUp.md) и **Down также можно использовать для расширения объекта иона **Se.

В следующем примере используется MoveEnd].. /.. /.. /api/Word.Range.MoveEnd.md) метод объекта Range для расширения диапазона, чтобы включить первые три абзаца в активный документ.

Переопределение выбора или диапазона

Используйте метод GetRange для переопределения существующего объекта Selection или объекта Range. Дополнительные сведения см. в дополнительных сведениях "Работа с объектом Selection" или "Работа с объектами Диапазона".

Изменение текста

Можно изменить существующий текст, изменив содержимое диапазона. Следующая инструкция изменяет первое слово в активном документе, установив Текст].. /.. /.. /api/Word.Range.Text.md) свойства объекта nge на "The".

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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Методы класса Word.Selection – выделение текста в Word

Я приведу по два примера программного кода на языках JScript, VBScript и VBA. Хотя по сути, код под макрос (VBA) и сценарий VBScript особо не отличается. Для тех, кто забыл: для создания макроса в документе Microsoft Office нужно вызвать редактор Visual Basic for Application (комбинация клавиш Alt + F11), далее, добавить в проект новый модуль (макрос).

Методы с префиксом Clear… позволяют очистить выделенный материал от форматирования (абзацы, стили, символы и так далее):

ClearCharacterAllFormatting () - Все форматирование.

ClearCharacterDirectFormatting () - Форматирование знаков.

ClearCharacterStyle () - Форматирование знаков, применяемых через стили.

ClearFormatting () – Все форматирования (параграфы, стили и так далее).

ClearParagraphAllFormatting () - Форматирование абзаца.

ClearParagraphDirectFormatting () - Форматирование абзацев, применяемых вручную.

ClearParagraphStyle () - Форматирование абзацев, применяемых через стили.

Collapse (Direction) – Позволяет убрать выделение текста Word и переместить указатель в начало или конец. VBA Selection. Если параметры отсутствуют, то просто убирается выделение. Параметр Direction содержит значение константы WdCollapseDirection :

  • wdCollapseEnd - 0 – Указатель вконец
  • wdCollapseStart - 1 – Указатель вначале

ConvertToTable (Separator, NumRows, NumColumns, InitialColumnWidth, Format, ApplyBorders, ApplyShading, ApplyFont, ApplyColor, ApplyHeadingRows, ApplyLastRow, ApplyFirstColumn, ApplyLastColumn, AutoFit, AutoFitBehavior, DefaultTableBehavior) – Довольно мощный метод, который позволяет преобразовать выделенный Word текст в таблицу.

Separator - Символ-разделитель, может быть знаком или значением константы WdTableFieldSeparator:

  • wdSeparateByParagraphs - 0 - абзаца.
  • wdSeparateByTabs - 1 - табуляции.
  • wdSeparateByCommas - 2 - запятая.
  • wdSeparateByDefaultListSeparator - 3 - разделитель списка по умолчанию.

NumRows - Количество строк.

NumColumns - Количество столбиков.

InitialColumnWidth - Начальная ширина каждого столбца, в пунктах.

Format – Определяет формат таблицы и содержит значение константы WdTableFormat.

ApplyBorders - TRUE - применять границы.

ApplyShading - TRUE - применить затенение.

ApplyFont - TRUE применять свойства шрифтов.

ApplyColor - TRUE применять цветовые свойства.

ApplyHeadingRows - TRUE - применить свойства заголовок-строка.

ApplyLastRow - TRUE - применить свойства последней строке.

ApplyFirstColumn - TRUE - применить свойства первого столбцов.

ApplyLastColumn - TRUE - применить свойства последнего столбца.

AutoFit - TRUE - уменьшить ширину столбцов таблицы как можно больше.

AutoFitBehavior - Устанавливает правила авто-подбора (если DefaultTableBehavior содержит значение wdWord8TableBehavior, то этот аргумент игнорируется, VBA Selection), содержит значения константы WdAutoFitBehavior:

  • wdAutoFitContent - 1 - автоматически размер
  • wdAutoFitFixed - 0 - фиксированный размер
  • wdAutoFitWindow - 2 - автоматический размер по ширине активного окна

DefaultTableBehavior - Значение, указывающее, следует ли автоматически изменять размер ячеек таблицы по содержимому. Selection VBA. Содержит значение константы WdDefaultTableBehavior:

  • wdWord8TableBehavior - 0 - отключает Авто-подбор (по умолчанию)
  • wdWord9TableBehavior - 1 - включить Авто-подбор

Выделение блока текста в Word, VBA Selection

Хорошо, с теоретической частью мы закончили, теперь можно приступить к программированию.

Примера на языке VBScript – выделение текста в редакторе Word

В данном примере в цикле For (смотрите статью "Урок 6 по VBScript: Циклы for…next и for each…next"), который выполняется шесть раз, происходит вставка перевода на новую строку, вставка текстовой фразы и перемещаем курсов к конец строки. С помощью оператора with мы можем экономить размер программного кода – не нужно лишний раз писать имя класса. Вконце происходит выделение текста Word и преобразование его в таблицу.

Примера на языке JScript – выделение текста в редакторе Word

Логика работы данного программного кода аналогичны предыдущему примеру, тут мы уже использовали цикл for языка JS, читайте в статье "Урок 9 по JScript - оператор цикла for". Тут тоже использовался оператор with, обратите внимание, что имена переменных изменились, а в конце каждой строки кода прописана точка с запятой.

Примера на языке Visual Basic for Application – выделение текста в редакторе Word

Хорошо, давайте продолжим рассматривать методы класса Selection.

выделение текста в редакторе Word, Selection VBA

EndOf () – Перемещает курсор в конец выделения.

StartOf () – Перемещает курсор в начало выделения.

SetRange (start, end) – Позволяет задать начальное и конечное значение для выделения текста Word.

TypeText () – Выполняет ту же функцию, что и свойство Text – ввод информации.

TypeParagraph () - Метод вставляет параграф.

Copy (), Cut (), Paste (), Delete () – Копирует, вырезает, вставляет и удаляет выделенный текст в Word.

CopyAsPicture () – Копирует выбранный материал как изображение.

И так, теперь рассмотрим программный код с данными методами.

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

Ну и в заключение, привожу программный код для макроса:

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

Спасибо за внимание. Автор блога Владимир Баталий

Представляет текущий выделенный фрагмент в окне или области. Выделенный фрагмент представляет выбранную (или выделенную) область в документе или представляет точку вставки, если в документе ничего не выбрано. В области окна документа может быть только один объект Selection, а в приложении только один объект Selection может быть активным.

Этот метод изменился. При использовании команд выделения VBA, таких как Selection.BoldRun , для выделения пользователей с примечаниями больше не применяется полужирное форматирование для текста, выделенного пользователем, или для команды Selection.TypeTxt ; также при выделении пользователей с примечаниями больше не вставляется текст.

Примечания

Используйте свойство Selection, чтобы возвратить объект Selection. Если для свойства Selection не используется квалификатор объекта, Microsoft Word возвращает выделение из активной области окна активного документа. В следующем примере копируется текущий выделенный фрагмент из активного документа.

В следующем примере удаляется выделенный фрагмент из третьего документа в коллекции Documents. Документ необязательно должен быть активен для доступа к текущему выделенному фрагменту.

В следующем примере показано, как скопировать выделенный фрагмент из первой области активного документа и вставить его во вторую область.

Свойство Text является свойством по умолчанию объекта Selection. Используйте это свойство, чтобы задать или вернуть текст в текущем выделенном фрагменте. В следующем примере текст в текущем выделенном фрагменте назначается переменной strTemp , после чего удаляется последний символ, если он является знаком абзаца.

Объект Selection содержит различные методы и свойства, с помощью которых можно свернуть, развернуть или иным способом изменить текущий выделенный фрагмент. В следующем примере точка вставки перемещается в конец документа и выбираются последние три строки.

Объект Selection содержит различные методы и свойства, с помощью которых можно редактировать выделенный текст в документе. В следующем примере показано, как выделить первое предложение в активном документе и заменить его новым абзацем.

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

Объект Selection содержит различные методы и свойства, с помощью которых можно изменить форматирование текущего выделенного фрагмента. В следующем примере показано, как изменить шрифт текущего выделения с Times New Roman на Tahoma.

Используйте такие свойства, как Flags, Information и Type, чтобы получить сведения о текущем выделенном фрагменте. Следующий пример можно использовать в процедуре, чтобы определить, есть ли в активном документе выделенный фрагмент; при его отсутствии оставшаяся часть процедуры пропускается.

Даже если выделенный фрагмент свертывается в точку вставки, он не обязательно должен быть пустым. Например, свойство Text будет по-прежнему возвращать символ справа от точки вставки; этот символ также отображается в коллекции Characters объекта Selection. Однако вызов методов, таких как Cut или Copy, из свернутого выделения приводит к ошибке.

Пользователь может выделить область в документе, не представляющую смежный текст (например, при использовании клавиши ALT с кнопкой мыши). Так как поведение такого выделения может быть непредсказуемым, можно включить в код шаг, который проверяет свойство Type выделенного фрагмента перед выполнением каких-либо операций над ним ( Selection.Type = wdSelectionBlock ).

Аналогично, выделенный фрагмент, включающий ячейки таблицы, также может привести к непредсказуемому поведению. Свойство Information сообщит, находится ли выделенный фрагмент в таблице ( Selection.Information(wdWithinTable) = True ). В следующем примере определяется, является ли выделенный фрагмент нормальным (например, это не строка или столбец в таблице, не является вертикальным блоком текста); его можно использовать для тестирования текущего выделенного фрагмента перед выполнением каких-либо действий над ним.

Объекты Range используют много таких же методов и свойств, что и объекты Selection, поэтому использование объектов Range предпочтительнее для управления документом, если нет причин физически изменять текущий выделенный фрагмент. Дополнительные сведения об объектах Selection и Range содержатся в статьях Работа с объектом Selection и Работа с объектами Range.

Методы

Свойства

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Класс Word Selection

Помним, что бы вручную выделить весть текст в Ворд , достаточно нажать комбинацию клавиш "Ctr + A". Мы рассмотрим некоторые свойства объекта Word.Selection. Говорю "некоторые", так как большинство используются редко, в случае чего – документация MSDN всегда под рукой. И так, сам объект Selection выполняет двойную функцию – с одной стороны он позволяет вставлять фразу в только что созданный документ, с другой стороны – позволяет обрабатывать выделение всего текста в ворде. Описание методов класса Selection можно просмотреть тут и тут.

Свойства класса Word.Selection – выделить весь текст в Ворде

В конце статьи я приведу три примера программного кода – два под Windows Script Host (язык VBScript и JScript) и один под Visual Basic for Application.

И так, сначала давайте познакомимся со свойствами:

Start и End – Если текст уже выделен, то Start и End будут содержать начальную и конечную позиции выделения. Так как они доступны и для записи, то можно задать диапазон для выделения всего текста в ворде.

Flags – Позволяет установить или получить параметры выбора. Flags может быть установлено в одной из следующих констант wdSelectionFlags:

  • wdSelActive - 8 - активное выделение.
  • wdSelAtEOL - 2 – конец строки.
  • wdSelOvertype - 4 – замена символов.
  • wdSelReplace - 16 - выбор был заменен.
  • wdSelStartActive - 1 - начало активного документа.

Само свойство возвращает сумму констант wdSelectionFlags.

Information (Type) - Получить информацию относительно выделения или заданного диапазона. Только чтение. Параметр Type содержит значения константы wdInformation (я указал только основные значения):

  • wdActiveEndAdjustedPageNumber – 1 - Номер страницы.
  • wdActiveEndSectionNumber – 2 - Количество разделов.
  • wdActiveEndPageNumber – 3 – Номер страницы начиная с начала.
  • wdNumberOfPagesInDocument – 4 – Количество страниц в документе
  • wdHorizontalPositionRelativeToPage – 5 - Горизонтальная позиция от левого края выделения к левому краю страницы в пунктах.
  • wdVerticalPositionRelativeToPage – 6 – Вертикальная позиция от верхнего края выделения к верхнему краю страницы в пунктах.
  • wdFirstCharacterColumnNumber – 9- Позиция первого слова в выделении начиная с начала документа.
  • wdFirstCharacterLineNumber – 10 – Позиция строки, с которой начинается выделение, начиная с начала.
  • wdFrameIsSelected – 11 – TRUE, если выделен весть текст в ворде.
  • wdZoomPercentage - 19 – Масштаб в процентах
  • wdCapsLock – 21 – TRUE если включен CapsLock.
  • wdNumLock - 22 – TRUE если включен NumLock.
  • wdRevisionMarking – 24 - Возвращает True, если отслеживание изменений в силу.

Все константы будут содержать значение -1, если информация выходит за пределы допустимой области.

IPAtEndOfLine —True - указатель ввода расположен в конце строки (в крайнем правом положении при выравнивании).

NoProofing — Отменяет (значение TRUE) для выбранного фрагмента проверку орфографии и грамматики.

StoryType – Возвращает тип истории для указанного выбора (только чтение). Константа WdStoryType:

  • wdCommentsStory - 4 – Комментарии.
  • wdEndnoteContinuationNoticeStory - 17 - Сноска продолжения уведомления.
  • wdEndnoteContinuationSeparatorStory - 16 – Сноска продолжения разделителя.
  • wdEndnoteSeparatorStory - 15 - Сноска разделитель.
  • wdEndnotesStory - 3 – Примечания.
  • wdEvenPagesFooterStory - 8 - Четные страницы футера.
  • wdEvenPagesHeaderStory - 6 - Четные страницы заголовка.
  • wdFirstPageFooterStory - 11 –Первый футер страницы.
  • wdFirstPageHeaderStory - 10 – Первый заголовок страницы.
  • wdFootnoteContinuationNoticeStory - 14 - Сноска продолжения уведомления.
  • wdFootnoteContinuationSeparatorStory - 13 - Сноска продолжения разделителя.
  • wdFootnoteSeparatorStory - 12 - Сноска разделитель.
  • wdFootnotesStory - 2 – Сноски.
  • wdMainTextStory - 1 - Основной текст.
  • wdPrimaryFooterStory - 9 - Первичный футер.
  • wdPrimaryHeaderStory - 7 - Первичный заголовок.
  • wdTextFrameStory - 5 - Текст рамки.

Text – Получить или указать материал, который будет вставлен на месте выделения, или просто там, где расположен курсор. Чтение/Запись

Type – Возвращает тип выделения, константа WdSelectionType:

  • wdNoSelection - 0 – Отсутствует.
  • wdSelectionBlock - 6 – Блок.
  • wdSelectionColumn - 4 – Столбец.
  • wdSelectionFrame - 3 – Рамка.
  • wdSelectionInlineShape - 7 – Рядовая форма.
  • wdSelectionIP - 1 – Пункт.
  • wdSelectionNormal - 2 – Нормальный.
  • wdSelectionRow - 5 – Строка.
  • wdSelectionShape - 8 – Форма.

Начинаем программировать – выделить весь текст в ворде

выделение всего текста в документе ворд

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

Пример на языке VBScript:

Пример на языке JScript:

выделить весь текст в документе ворд

Пример под Visual Basic for Application:

И так, с теоретической частью мы разобрались, и даже немного попрограммировали, теперь стоит дать некоторые пояснения к программному коду. В последнем примере для VBA в самом начале есть такая строка:

Дело в том, что функция Sleep (смотрите статью "Объект WScript - методы sleep, quit и echo и 8 свойств") доступна только в сценариях VBS и JS, что бы сделать задержку для макроса, мне пришлось обратиться к системной функции Windows. Для вставки материала в документ используется цикл for, его смотрите описание синтаксиса для JScript - "Урок 9 по JScript - оператор цикла for" и для VBScript - "Урок 6 по VBScript: Циклы for…next и for each…next". В остальном коде я думаю, разобраться несложно, если есть вопросы, задавайте, буду рад ответить.

Спасибо за внимание. Автор блога Владимир Баталий

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