Макрос word выделение слов

Обновлено: 07.07.2024

Pelena, Вы знаете, появилась другая проблема. Список слов большой:
("более", "менее", "не более", "не менее", "наиболее", "наименее", "меньше", "больше", "не меньше", "не больше", "ниже", "выше", "не ниже", "не выше", "не хуже", "не лучше", "должен быть", "должна быть", "должно быть", "должны быть", "не должен быть", "не должна быть", "не должно быть", "не должны быть", "должен иметь", "должна иметь", "должно иметь", "должны иметь", "не должен иметь", "не должна иметь", "не должно иметь", "не должны иметь", "должен равняться", "должна равняться", "должно равняться", "должны равняться", "не должен равняться", "не должна равняться", "не должно равняться", "не должны равняться", "должен обеспечиваться", "должна обеспечиваться", "должно обеспечиваться", "должны обеспечиваться", "не должен обеспечиваться", "не должна обеспечиваться", "не должно обеспечиваться", "не должны обеспечиваться", "возможно", "вероятно", "примерно", "возле", "либо", "может", "в основном", "и другое", "в пределах", "ориентировочно", "до", "от", "возможно", "иным", "иные", "иной", "иная", "или", "или иным", "или иные", "или иной", "или иная", "или эквивалент", "или эквивалентно", "или эквивалентное", "или эквивалентны", "или эквивалентные", "или эквивалентных", "прочий", "прочая", "прочие", "около", "расположен около", "ориентировочно", "примерно", "приближающегося", "приблизительно")

А они не влазят в 1 строчку все, а на две он их разбивать не хочет. Не знаю как их всех туда запихать.(

Pelena, Вы знаете, появилась другая проблема. Список слов большой:
("более", "менее", "не более", "не менее", "наиболее", "наименее", "меньше", "больше", "не меньше", "не больше", "ниже", "выше", "не ниже", "не выше", "не хуже", "не лучше", "должен быть", "должна быть", "должно быть", "должны быть", "не должен быть", "не должна быть", "не должно быть", "не должны быть", "должен иметь", "должна иметь", "должно иметь", "должны иметь", "не должен иметь", "не должна иметь", "не должно иметь", "не должны иметь", "должен равняться", "должна равняться", "должно равняться", "должны равняться", "не должен равняться", "не должна равняться", "не должно равняться", "не должны равняться", "должен обеспечиваться", "должна обеспечиваться", "должно обеспечиваться", "должны обеспечиваться", "не должен обеспечиваться", "не должна обеспечиваться", "не должно обеспечиваться", "не должны обеспечиваться", "возможно", "вероятно", "примерно", "возле", "либо", "может", "в основном", "и другое", "в пределах", "ориентировочно", "до", "от", "возможно", "иным", "иные", "иной", "иная", "или", "или иным", "или иные", "или иной", "или иная", "или эквивалент", "или эквивалентно", "или эквивалентное", "или эквивалентны", "или эквивалентные", "или эквивалентных", "прочий", "прочая", "прочие", "около", "расположен около", "ориентировочно", "примерно", "приближающегося", "приблизительно")

А они не влазят в 1 строчку все, а на две он их разбивать не хочет. Не знаю как их всех туда запихать.(
svoyak

А они не влазят в 1 строчку все, а на две он их разбивать не хочет. Не знаю как их всех туда запихать.(
Автор - svoyak
Дата добавления - 01.09.2017 в 05:21

Объект Word Selection - как выделить фрагмент текста

Для начала давайте вспомним, что выделение фрагмента текста осуществляется следующим образом: в большинстве случаев нужно выбрать несколько фрагментов, для этого сначала выбираем один нужный фрагмент, далее удерживаем клавишу " Ctrl " и выбираем остальные фрагменты. Теперь перейдем к теме публикации…

Методы Insert… – выделение фрагментов текста в Word

как выделить фрагмент в тексте

Примеры будут как для редактора VBA, так и для сценариев Windows Script Host, и так, начнем…

Методы с префиксом Insert. позволяют вставить текст в документ:

InsertAfter (text) и InsertBefore (text) – Вставка текста (text) в конец или в начало выделения. При отсутствии выделения вставка производится там, где находится курсор. Сам материал остается выделенным.

InsertBreak (type) - Вставляет страницу, колонку или секцию. Параметр type содержит значение константы WdBreakType:

  • wdTextWrappingBreak - 11 - Конец текущей строки и продолжение вставки ниже изображения, таблицы или другого объекта. Материал продолжается на следующей пустой строке, которая не содержит таблицу, совмещенную с левой или правой границей.
  • wdLineBreakClearRight - 10 - Перевод на новую строку.
  • wdLineBreakClearLeft - 9 - Перевод на новую строку.
  • wdColumnBreak - 8 - Разрыв колонки.
  • wdPageBreak - 7 - Вставка новой страницы.
  • wdLineBreak - 6 - Перевод на новую строку.
  • wdSectionBreakOddPage - 5 - Начало нового раздела со следующей нечетной страницы.
  • wdSectionBreakEvenPage - 4 - Начало нового раздела со следующей четной страницы.
  • wdSectionBreakContinuous - 3 - Новый раздел без разрыва страницы.
  • wdSectionBreakNextPage - 2 - Начало нового раздела со следующей страницы.

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

Программный код на VBScript :

Давайте посмотрим, что данный пример делает. При вызове процедуры Insert_After_Before происходит добавление в документ текстовой строки, далее в конец добавляется фраза " . Конец", а в начало - "Начало. ". Потом происходит перевод курсора в конец и добавление перевода строки.

Пример на JScript :

Для VBA мы просто запускаем редактор кода, добавляем новый модуль и прописываем код, в моем случае имя модуля - Module1:

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

Методы Insert… – выделение фрагментов текста в Word

InsertCaption (Label, Title, TitleAutoText, Position, ExcludeLabel) - Вставляет заголовок сразу после или перед указанным выбором. Обязательным является только параметр Label.

Label – Нумерационный заголовок. Параметр может быть строкой или значением константы WdCaptionLabelID:

  • wdCaptionEquation - Уравнение
  • wdCaptionFigure - Рисунок
  • wdCaptionTable – Таблица

Если метка (Label) не определена, то возникнет ошибка. Для определения метки надо использовать метод Add коллекции CaptionLabels , например:

Title – Заголовок, который будет отображаться справа от метки.

TitleAutoText – Авто-заголовок, перекрывает параметр Title.

Position - Указывает, будет ли вставлен заголовок выше или ниже. Может быть одной из констант WdCaptionPosition:

  • wdCaptionPositionAbove - 0 - Метка название добавляется выше.
  • wdCaptionPositionBelow - 1 - Метка название добавляется ниже.

ExcludeLabel - TRUE - отключить метку, заданную в параметре Label. FALSE - включить метку. Дополнительно.

Ниже я приведу примеры, что бы не дублировать программный код, я привел только содержимое процедуры Sub Insert_Caption.

Тут используется цикл for для вставки нескольких фрагментов - "Урок 6 по VBScript: Циклы for…next и for each…next".

Тут тоже используется цикл for, но уже для JS кода - "Урок 9 по JScript - оператор цикла for".

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

Методы Insert… – выделение фрагментов текста в Word

как можно выделить фрагмент текста

InsertDateTime (DateTimeFormat) – Метод позволяет вставить дату или время в документ, или одновременно оба значения. Помимо параметра DateTimeFormat есть еще четыре, но они практически не используются.

DateTimeFormat – Необязательный параметр, позволяет указать формат даты и времени.

Обратите внимание на оператор with, он позволяет не писать каждый раз имя класса.

Тут логика работы аналогична.

Хорошо, осталось рассмотреть последнюю третью часть статьи.

Методы Insert… – выделение фрагментов текста в Word

InsertFile (FileName) – Позволяет вставить содержимое указанного файла в документ, параметр FileName хранит имя или путь к файлу, если путь отсутствует, то будет подразумеваться текущий каталог.

InsertNewPage - Вставляет новую страницу в место, где находится указатель.

InsertParagraph - Заменяет выделение знаком абзаца.

InsertParagraphAfter - Вставляет знак абзаца после выделения .

InsertParagraphBefore - Вставляет новый абзац перед выделением.

Методы с префиксом Move. также встречаются едва ли не в любой программе, связанной с вводом текста в Word. Самые важные и удобные из этих методов:

MoveLeft (), MoveRight (), MoveUp (), MoveDown () – Методы дают возможность переместить курсор влево, вправо, вверх и вниз. Все четыре метода принимают следующие параметры (Unit, Count, Extend), являющиеся необязательными:

Unit - Блок, по которым выбор должен быть перемещен. Параметр Unit содержит значения константы wdUnits.

Count – Единица перемещения. Значение по умолчанию 1.

Extend - Может быть либо wdMove (по умолчанию) или wdExtend.

MoveEnd (), MoveStart () – Перемещение курсора в конец или начало выделения, параметры - Unit, Count.

MoveStartUntil (), MoveStartWhile (), MoveEndUntil (), MoveEndWhile () – Позволяют переместить курсор к заданному символу или последовательности символов. Параметры Cset (обязательный) и Count (дополнительный):

Cset - Один или несколько символов. Аргумент является чувствительным к регистру.

Count – Задает целое или отрицательное значение, на которое происходит перемещение курсора.

Move (Unit, Count) – Фактически, тут мы может указать направление (Count) и текстовую единицу (Unit).

Логика работы для следующих примеров остается та же – меняется только код вызываемой процедуры. Фактически, код для языка VBScript и VBA является идентичным.

Видим, что в данном коде мы использовали несколько операторов for.

Обратите внимание на приведенные в самом начале статьи примеры кода для языков VBA и VBScript, в макросе мы можем использовать именованные константы объекта Word, но в теле Windows Script Host сценария нет, так как там они не доступны. Описание свойств класса Selection я рассмотрел в этой статье.

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

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

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

Методы класса 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.

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

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