Объект Word Selection — выделить весь текст в ворде, свойства

Объект Word Selection — выделить весь текст в ворде, свойства Объектная модель Microsoft Word

Здравствуйте дорогие читатели блога scriptcoding.ru. Сегодня мы рассмотрим свойства объекта 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:

' ----------------------------------------------------------------------------' Класс Word Selection' Создание, ввод и выбор' выделение текста в ворде' Selection.vbs' ----------------------------------------------------------------------------OptionExplicit dim oWord, oDoc, oSel, SelText, MyText, i, SEnd, SStart Set oWord = CreateObject("Word.Application")Set oDoc = oWord.DocumentsoDoc.Add()Set oSel = oWord.SelectionoWord.Visible = True MyText="Пример работы с объектом Word Selection в VBScript, выделение всего текста в ворде " ' вставляем в документ фразу сто разFor i = 0 To 100oSel.Text = MyText' Перемещаем курсор в конец содержимогоoSel.EndOfNext ' Выделяем весь текст в вордеoWord.Documents(1).Select' задержка в пять секундWScript.Sleep 5000 With oSel ' Определяем позиции SStart = oSel.Start SEnd = oSel.End  ' Перемещаем курсор в конец .EndOf .Text = SStart & "" & SEnd .EndOf  ' Выделяем заданный диапазон .Start= SStart +400 .End= SEnd -400  ' задержка в пять секунд WScript.Sleep 5000  ' Отменяем проверку .NoProofing = true  ' Выводим значения выделить весь текст в документе ворд MsgBox "Information - " & .Information(19) & vbCrLf &_ "StoryType - " & .StoryType & vbCrLf &_ "Type - " & .Type & vbCrLf &_ "IPAtEndOfLine - " & .IPAtEndOfLineEndWith

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

// ----------------------------------------------------------------------------// Объект Word Selection// Создание, ввод и выбор// выделение текста в ворде// Selection.js// ----------------------------------------------------------------------------var oWord1, oDoc1, oSel, MyText, i, SEnd, SStart; oWord1 = WScript.CreateObject("Word.Application");oDoc1 = oWord1.Documents;oDoc1.Add();oSel = oWord1.Selection;oWord1.Visible=true; MyText="Пример работы с объектом Word Selection в JScript, выделение всего текста в ворде " // вставляем в документ фразу сто разfor(i=0; i<=100; i++){oSel.Text= MyText;// Перемещаем курсор в конец текста oSel.EndOf();} // Выделяем весь текст в вордoWord1.Documents(1).Select();// задержка в пять секундWScript.Sleep(5000); with (oSel){// Определяем позиции SStart = Start; SEnd = End;  // Перемещаем курсор в конец EndOf(); Text = SStart +""+ SEnd; EndOf();  // Выбираем заданный диапазон выделить весь текст в документе ворд Start= SStart +400; End= SEnd -400;  // задержка в пять секунд WScript.Sleep(5000);  // Отменяем проверку текста NoProofing =true;  // Выводим значения WScript.Echo("Information - "+ Information(19)+"nStoryType - "+ StoryType +"nType - "+ Type +"nIPAtEndOfLine - "+ IPAtEndOfLine)}
выделить весь текст в документе ворд

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

DeclareSub Sleep Lib "kernel32" (ByVal dwMilliseconds AsLongSub Module2()Dim oWord2 AsObjectDim oDocument AsObjectDim oSel AsObject Set oWord2 = CreateObject("Word.Application")oWord2.Visible = TrueSet oDocument = oWord2.Documents.AddSet oSel = oWord2.Selection MyText = "Пример работы с объектом Word Selection в Visual Basic for Application - выделить весь текст в ворде "  With oSel For i = 0 To 100.Text = MyText.EndOf Next oWord2.Documents(1).Select Sleep 3000  SStart = .Start SEnd = .End  .EndOf .Text = SStart & "" & SEnd .EndOf  .Start = SStart + 400 .End = SEnd - 400 ' выделить весь текст в документе ворд  Sleep 3000  .NoProofing = TrueEndWithEndSub

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

DeclareSub Sleep Lib "kernel32" (ByVal dwMilliseconds AsLong)

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

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий