Vba word выделить абзац
Visual Basic включает объекты, которые можно использовать для изменения следующих элементов документа: символов, слов, предложений, абзацев и разделов. В следующей таблице содержатся свойства, соответствующие этим элементам документа, и возвращаемые ими объекты.
Это выражение | Возвращает этот объект |
---|---|
Слова ( индекс) | Диапазон |
Символы ( индекс) | Диапазон |
Предложения ( индекс) | Диапазон |
Абзацы ( индекс) | Paragraph |
Разделы ( индекс) | Section |
Когда эти свойства используются без индекса, возвращается объект коллекции с таким же именем. Например, свойство Paragraphs возвращает объект коллекции Paragraphs . Однако при определении элемента в этих коллекциях по индексу возвращается объект во втором столбце таблицы. Например, Words(1) возвращает объект Range . После того как у вас есть объект Range , вы можете использовать любые свойства диапазона или методы для изменения объекта Range . Например, следующая инструкция копирует первое слово в выборе в буфер обмена.
Примечание Элементы в коллекциях Параграфы и Разделы — это особые формы коллекции, в частности объекты Paragraph и Объекты Section, а не объекты Range. На самом деле большинство коллекций в объектной модели Word имеют объекты единой формы, с которыми можно работать. Однако свойство Range (которое возвращает объект Range ) доступно как для объекта Paragraph , так и для объекта Section , а также для большинства других объектов, которые являются детьми коллекций. Например, следующая инструкция копирует первый абзац в активном документе в буфер обмена.
Все свойства элементов документа в предыдущей таблице доступны в объектах Document, Selection и Range . В следующих примерах показано, как можно сверлить эти свойства из объектов Document, Selection и Range . В следующем примере приводится пример первого слова в активном документе.
В следующем примере нижний предел текущего раздела устанавливается до 0,5 дюйма.
В следующем примере дважды пробелы текста в активном документе (свойство Content возвращает объект Range ).
Изменение группы элементов документа
Чтобы изменить диапазон текста, состоящий из группы элементов документа (символов, слов, предложений, абзацев или разделов), необходимо создать объект Range . Метод Range создает объект Range с точки запуска и конечной точки. Например, в следующей инструкции создается объект Range , который ссылается на первые десять символов в активном документе.
С помощью свойств Start и End с объектом Range можно создать новый объект Range , который относится к группе элементов документа. Например, в следующей инструкции создается объект Range ( rngThreeWords ), который ссылается на первые три слова в активном документе.
В следующем примере создается объект Range ( rngParagraphs ), начинающийся в начале второго абзаца и заканчивающийся после третьего абзаца.
Дополнительные сведения о определении объектов Range см. в ссылке Работа с объектами Range.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
В этом разделе Visual Basic примеры, связанные с задачами в следующих разделах.
Применение форматирования к выделенному фрагменту
В следующем примере свойство Selection используется для применения форматирования символов и абзацев к выбранному тексту. Используйте свойство Font для доступа к свойствам и методам форматирования символов и свойству ParagraphFormat для доступа к свойствам и методам форматирования абзаца.
Применение форматирования к диапазону
В следующем примере определяется объект Range , который ссылается на первые три абзаца в активном документе. Диапазон форматируется путем применения свойств объекта Font и объекта ParagraphFormat .
Вставка текста и применение форматирования знаков и абзацев
В приведенном ниже примере добавляется слово "Title" (Заголовок) в верхней части текущего документа. Первый абзац выравнивается по центру с добавлением одного интервала размером 0,5 дюйма после него. Слово "Title" форматируется с использованием шрифта Arial размером 24 пункта.
Изменение интервала перед абзацем между значением 12 пунктов и отсутствием интервала
В приведенном ниже примере выполняется переключение форматирования интервала перед первым абзацем в выделенном фрагменте. Макрос получает текущее пространство перед значением, и если значение равно 12 пунктам, форматирование пробела перед форматированием удаляется (свойство SpaceBefore имеет нулевое значение). Если перед пробелом задано значение, отличное от 12, свойство SpaceBefore имеет значение 12 пунктов.
Включение и отключение полужирного начертания
В приведенном ниже примере включается и отключается полужирное начертание выделенного текста.
Увеличение левого поля на 0,5 дюйма
В приведенном ниже примере левое и правое поле увеличиваются на 0,5 дюйма. Объект PageSetup содержит все атрибуты настройки страницы документа (например, левое поле, нижнее поле и размер бумаги) в качестве свойств. Свойство LeftMargin используется для возвращения и установки параметра левого поля. Свойство RightMargin используется для возврата и задания параметра правого поля.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Эта программа позволяет по нажатию на CommandButton1 найти в документе Word заданное слово и выделить его.
Но как сделать так чтоб слов можно было вводить несколько? чтоб они записывались в массив получается.. и определить абзац с наибольшим количеством таких слов? (поменять шрифт например)
Выделить в файле слово с наибольшим количеством гласных букв
Доброго времени суток. В данной программе мне нужно подсчитать количество слов в тексте после.
Напечатайте строку с наибольшим количеством слов
Tекстовый файл t. Слова не переносятся с одной строки на другую. Слова разделены одним или.
Напечатайте строку файла с наибольшим количеством слов
Дан текстовый файл f. Слова не переносятся с одной строки на другую. Слова разделены одним или.
Вывести строки файла с наибольшим количеством слов
Необходима программа для поиска в текстовом файле строки с найбольшим количеством слов в ней, если.
Решение
Добавлено через 5 минут
Да, чуть не пропустил, искомые слова вводите через пробел, регистр символов не учитывается, найденный абзац выделяется желтым.
Да благодарю, но не очень разобрался с этим циклом
Для чего вообще два счетчика l и counter?
Добавлено через 23 минуты
Ещё..не выходит что-то выделить найденные слова, пробовал так, выделяются не все, из-за чего это может быть?
Решение
Переменная l отслеживает позицию поиска в абзаце, а counter подсчитывает число вхождений искомого слова.
Что касается выделения слов, то, цитата:". и определить абзац с наибольшим количеством таких слов? (поменять шрифт например)".
Т.к. заранее неизвестно какой шрифт будет использоваться в документе то я сделал выделение маркером.
Для того чтобы выделить найденные слова нужно немного переделать макрос, попробуйте сами, у меня, пока, сейчас нет возможности работать с ПК (поиск происходит в цикле do. loop).
П.С. Использование words collection не позволяет производить поиск по абзацам.
Решение
Большое спасибо за помощь
Но вот ещё пару вопросов:
почему counter&, i&, l&, counters() типа Long, а не Integer?
почему ll& без типа? д
ля чего Trim$ для vv?
и ф-ция Len(v) в блоке If проверяет, что строка есть, всмысле что длина строки больше нуля?
1) ll имеет тип long,
2) тип integer вместо long здесь, в принципе, можно использовать, так что, если есть желание, вам это никто не запрещает.
3) использование trim и len обусловлено программными нюансами, которые выявляются в процессе практического программирования, вместо объяснений попробуйте удалить их и протестеруйте.
4) если желаете чему-то научиться то, лучше всего, самостоятельно писать код, читать комментарии и пояснения к чужой программе - не лучший вариант.
Добавлено через 18 минут
Функция Len используется из-за того, что возможны пустые строки, она отсекает такие значения.
Trim применяется по той причине, что vv помимо самого слова может содержать и пробел в конце, а это совсем ненужно.
Вообще-то, во второй части макроса можно использовать вместо двух вложенных циклов for всего один, с применением стандартной функции поиска и замены. Возможно позже я ее выложу, но строк в ней будет больше.
И еще относительно long, здесь он использован по привычке, он может принимать большее максимальное значение, чем integer.
Добавлено через 1 час 16 минут
Выведите на экран строку файла с наибольшим количеством слов
Помогите, пожалуйста, очень нужно написать программу с выводом через файлы txt, но не пойму, в чем.
Файлы. Вывести строку с наибольшим количеством слов из файла
Надо вывести на экран строку с наибольшим количеством слов из файла. Program qwerty; Var f: text;.
Имеется 15 строк, найти строку с наибольшим количеством слов палиндромов
Заранее напишу полное задание: Больше всего меня волнуют слова палиндромы, с остальным надеюсь.
Выделить предложение с наименьшим количеством слов
Задача№5: Выделить предложение с наименьшим количеством слов. Вывести на печать подряд (без.
Стоит обратить внимание, что большая часть свойств и методов являются идентичными. Так, если мы используем некоторое свойство, работая с коллекцией, то оно будет влиять на все основные параметры абзаца в Word, если свойство или метод используются только для конкретного объекта Paragraph, то обрабатываться будет параметр конкретного абзаца. В самой статье я приведу примеры программного кода для сценариев сервера Windows Script Host – VBScript и JScript.
И так, давайте приступим…
Paragraph и Paragraphs – основные параметры абзаца в Word
Как и большинство коллекций и объектов модели Word, коллекция Paragraphs содержит все объекты Paragraph. Прежде чем приступать к обработке абзацев, нужно сначала получить ссылку на коллекцию Paragraphs, это можно сделать с помощью одноименно свойства класса Selection (смотрите статью "Объект Word Selection - выделить весь текст в ворде, свойства") или класса Range (статья "Объект Word Range - Выбор текста"). Также стоит учитывать, что коллекция будет содержать те параграфы, которые входят в выделенный или выбранный диапазон текста.
Общие свойства – параметры форматирования абзацев
Alignment - Позволяет задать или получить значение константы WdParagraphAlignment, которая отвечает за выравнивание текста:
- wdAlignParagraphLeft - 0 – По левому краю.
- wdAlignParagraphCenter - 1 – По центру.
- wdAlignParagraphRight - 2 - По правому краю.
- wdAlignParagraphJustify - 3 – По ширине.
- wdAlignParagraphDistribute - 4 – Распределяет символы так, что бы заполнить по ширине все окно.
- wdAlignParagraphJustifyMed - 5 - По ширине со средней степенью сжатия символов.
- wdAlignParagraphJustifyHi - 7 - По ширине с высокой степенью сжатия символов.
- wdAlignParagraphJustifyLow - 8 - По ширине с низкой степенью сжатия символов.
CharacterUnitFirstLineIndent – Задает или возвращает отступ первой строки.
CharacterUnitLeftIndent – Выступ слева
CharacterUnitRightIndent – Отступ справа
FirstLineIndent - Возвращает или устанавливает значение (в пунктах) для первой линии или отступа.
LeftIndent – Отступ слева в пунктах.
RightIndent – Отступ справа в пунктах.
LineSpacing – Междустрочный интервал.
LineSpacingRule - Возвращает или устанавливает междустрочный интервал, который определяет значение константы WdLineSpacing:
- wdLineSpaceSingle - 0 – одинарный, по умолчанию
- wdLineSpace1pt5 - 1 – 1,5 строки.
- wdLineSpaceDouble - 2 – двойной.
- wdLineSpaceAtLeast - 3 – минимум.
- wdLineSpaceExactly - 4 – точно.
- wdLineSpaceMultiple - 5 - междустрочный интервал определяется количеством линий указано.
LineUnitAfter – Интервал после параграфа.
LineUnitBefore – Интервал перед параграфом.
ReadingOrder - Возвращает или устанавливает такие основные параметры форматирования для абзаца, как порядок чтения без изменения их выравнивания. Содержит значение константы WdReadingOrder:
- wdReadingOrderLtr - 1 – Слева направо
- wdReadingOrderRtl - 0 – Справа налево
SpaceAfter – Интервал в пунктах после параграфа.
SpaceBefore - Интервал в пунктах перед параграфом.
Style - Возвращает или задает такие настройки параметров абзаца, как стиль. Свойство принимает имя стиля, или значение константы WdBuiltinStyle.
Общие методы – настройка параметров абзаца
Indent () – Позволяет добавить отступ на один пункт.
Outdent () - Позволяет удалить отступ на один пункт.
IndentCharWidth (count) – Добавляет отступ на заданное количество символов.
IndentFirstLineCharWidth (count) - Отступ первой строки на заданное количество символов.
Reset () - Удаляет ручное форматирование – не влияет на форматирование стиля.
TabHangingIndent (count) - Устанавливает висячий отступ на заданное значение.
TabIndent (count) - Устанавливает отступ слева на заданное значение.
OpenOrCloseUp () – Вставляет или удаляет интервал в 12 пунктов перед указанным абзацем.
OpenUP () – Вставляет интервал в 12 пунктов перед указанным параграфом.
CloseUP () – Удаляет интервал в 12 пунктов перед указанным параграфом.
OutlineDemote () и OutlinePromote () – Применяют стиль Заголовок к указанному параграфу.
OutlineDemoteToBody () – Применяет нормальный стиль.
Space1 () - Одинарный междустрочный интервал.
Space15 () – Междустрочный интервал в 1.5 строки.
Space2 () – Двойной междустрочный интервал.
Свойство и методы коллекции Paragraps – основные параметры абзаца
Count – Содержит количество параграфов в документе. Только чтение.
Item (count) – Позволяет получить доступ к указанному абзацу в коллекции, вернет объект Paragraph.
Add () - Возвращает объект Paragraph, который представляет параметры форматирования нового абзаца, который является пустым, добавленным в документ.
DecreaseSpacing () - Уменьшает отступ между параграфами на 6 пунктов.
IncreaseSpacing () - Увеличивает отступ между параграфами на 6 пунктов.
Методы объекта Paragraph – параметры форматирования абзацев
Next (count) - Возвращает объект Paragraph, представляющий основные параметры следующего абзаца в Word.
Previous (count) - Возвращает объект Paragraph, представляющий основные параметры предыдущего абзаца в Word.
И так, с теоретической частью мы закончили, теперь можно приступить к программированию. Рассмотрим два простых примера на языке VBScript и JScript, я сначала приведу программный код, а уже в конце дам пояснения.
Пример на языке программирования VBScript:
' ---------------------------------------------------------------------------- ' Коллекция Paragraph и класс Paragraph ' Выравнивание и изменение междустрочного интервала ' Основные параметры абзацев в Word ' Paragraph.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, i, oPars, MyText, j Set oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents oDoc.Add() Set oSel = oWord.Selection Set oPars = oSel.Paragraphs oWord.Visible = True MyText = "параметры форматирования абзаца. " For i=0 to 10 oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText oSel.TypeParagraph Next oDoc(1).Select i=1:j=0 ' настройка параметров каждого абзаца Do While i
Пример на языке программирования JScript:
// ---------------------------------------------------------------------------- // Коллекция Paragraph и класс Paragraph // Выравнивание и изменение междустрочного интервала // Основные параметры абзацев в Word // Paragraph.js // ---------------------------------------------------------------------------- var oWord1, oDoc1, oSel1, oPars1, MyText1 = "параметры форматирования абзаца. ", oRange1; oWord1 = WScript.CreateObject("Word.Application"); oDoc1 = oWord1.Documents; oDoc1.Add(); oSel1 = oWord1.Selection; oWord1.Visible = true; // Вставляем текст for (i=0; i // Создаем ссылку для Range Word // Заодно выбираем весь текст oRange1 = oDoc1(1).Range(); oPars1 = oRange1.Paragraphs; var i = 1, j = 0; // настройка параметров каждого абзаца while (i if (j == 3)< j = 0; // Меняем выравнивание oPars1(i).Alignment=j; j ++ >else < oPars1(i).Alignment=j; j ++ >i ++ >
Хорошо, теорию разобрали, программированием занялись, теперь надо дать пояснения к сценариям:
Объявление переменных – в самом начале мы объявляем переменные, в языке vbscript это делается в блоке dim , а в языке программирования jscript – в блоке var . Обратите внимание, что в vbs мы включили проверку переменных с помощью оператора Option Explicit . Сами имена переменных отличаются, так, для JS скрипта я приписал единицу.
Подключение внешних классов – Далее происходит процесс создания ссылок на внешние классы, которые позволяют создать новый документ, задавать параметры форматирования абзацев, управлять вставкой текста и так далее. Обратите внимание, что для vbs мы использовали ключевое слово set .
Вставка содержимого – В цикле for (смотрите синтаксис для vbscript - "Урок 6 по VBScript: Циклы for…next и for each…next" и jscript - "Урок 9 по JScript - оператор цикла for") происходит вставка несколько раз содержимого переменной MyText параллельно с параграфом.
Настройка параметров абзаца – Тут снова используется цикл for, в котором в заданном порядке происходит форматирование – меняется интервал, выравнивание и так далее. Обратите внимание, что в vbs сценарии мы получили доступ к параграфам через Selection , а в js – через Range .
Спасибо за внимание. Автор блога Владимир Баталий
Для начала давайте вспомним, что выделение фрагмента текста осуществляется следующим образом: в большинстве случаев нужно выбрать несколько фрагментов, для этого сначала выбираем один нужный фрагмент, далее удерживаем клавишу " 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 :
' ---------------------------------------------------------------------------- ' Объект Word Selection - методы ' Пример на языке VBScript - выделение фрагментов Word текста ' Selection-1.vbs ' ---------------------------------------------------------------------------- Option Explicit ' Глобальные переменные dim oWord, oDoc, oSel, i ' Процедура создания нового документа Sub Create_Doc() Set oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents oDoc.Add() Set oSel = oWord.Selection oWord.Visible = True End Sub Sub Insert_After_Before() With oSel .Text = "как выделить фрагмент текста " .InsertAfter " . Конец" .InsertBefore "Начало. " .EndOf .InsertBreak 6 End With End Sub call Create_Doc call Insert_After_Before
Давайте посмотрим, что данный пример делает. При вызове процедуры Insert_After_Before происходит добавление в документ текстовой строки, далее в конец добавляется фраза " . Конец", а в начало - "Начало. ". Потом происходит перевод курсора в конец и добавление перевода строки.
Пример на JScript :
Для VBA мы просто запускаем редактор кода, добавляем новый модуль и прописываем код, в моем случае имя модуля - Module1:
Sub Module1() ' ---------------------------------------------------------------------------- ' выделение в Word фрагментов текста ' ---------------------------------------------------------------------------- Dim oWord1 As Object, oDoc1 As Object, oSel1 As Object, i Set oWord1 = CreateObject("Word.Application") Set oDoc1 = oWord1.Documents oDoc1.Add Set oSel1 = oWord1.Selection oWord1.Visible = True '*************************************** With oSel1 .Text = "как выделить фрагмент текста " .InsertAfter " . Конец" .InsertBefore "Начало. " .EndOf .InsertBreak wdLineBreak End With '*************************************** End Sub
И так, с одной теоретической частью мы закончили и написали программный код, теперь можно приступить к следующей части.
Методы 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.
' VBScript Sub Insert_Caption() oWord3.CaptionLabels.Add "Номер" For i = 0 To 10 oSel3.InsertCaption "Номер", " как выделять фрагменты текста " & i oSel3.InsertBreak 6 Next End Sub
Тут используется цикл for для вставки нескольких фрагментов - "Урок 6 по VBScript: Циклы for…next и for each…next".
Тут тоже используется цикл for, но уже для JS кода - "Урок 9 по JScript - оператор цикла for".
' VBA oWord5.CaptionLabels.Add "Номер" For i = 0 To 10 oSel5.InsertCaption Label:="Номер", Title:=" Фраза VBA Selection " & i oSel5.InsertBreak wdLineBreak Next
Обратите внимание, что имена переменных в примерах отличаются, это пришлось сделать с технических причин – в глазах поисковых систем статья становится заспамленой. Хорошо, давайте двигаться дальше.
Методы Insert… – выделение фрагментов текста в Word
InsertDateTime (DateTimeFormat) – Метод позволяет вставить дату или время в документ, или одновременно оба значения. Помимо параметра DateTimeFormat есть еще четыре, но они практически не используются.
DateTimeFormat – Необязательный параметр, позволяет указать формат даты и времени.
' VBScript Sub Insert_Date With oSel4 .Text = "как выделить фрагмент текста " .EndOf .InsertBreak 6 .InsertDateTime .InsertBreak 6 .InsertDateTime "MMMM dd, yyyy" .InsertBreak 6 .InsertDateTime "MMMM dd, yyyy - H:M:S" End With End Sub
Обратите внимание на оператор with, он позволяет не писать каждый раз имя класса.
Тут логика работы аналогична.
' VBA With oSel5 .Text = " как выделить в Word фрагмент текста " .EndOf .InsertBreak wdLineBreak .InsertDateTime .InsertBreak wdLineBreak .InsertDateTime "MMMM dd, yyyy" .InsertBreak wdLineBreak .InsertDateTime "MMMM dd, yyyy - H:M:S" End 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 является идентичным.
' VBScript Sub Get_Move() With oSel6 ' вставляем в документ фразу сто раз For i = 0 To 10 .Text = "как выделить фрагменты нужного текста " ' Перемещаем курсор в конец .EndOf Next For i = 0 To 300 .MoveLeft Next For i = 0 To 100 .MoveRight Next For i = 0 To 4 .MoveUp Next .MoveStartUntil "Word" For i = 0 To 15 .Move 2, 5 Next End With End Sub
Видим, что в данном коде мы использовали несколько операторов for.
Обратите внимание на приведенные в самом начале статьи примеры кода для языков VBA и VBScript, в макросе мы можем использовать именованные константы объекта Word, но в теле Windows Script Host сценария нет, так как там они не доступны. Описание свойств класса Selection я рассмотрел в этой статье.
Спасибо за внимание. Автор блога Владимир Баталий
Советую ещё почитать:
- Объект Folder - работа с папками Windows
- Работа с исправлениями в документе Word 2007
- Объект Chilkat.Spider - парсинг сайтов
- Редактор Notepad++ - Меню Синтаксис, Опции, Макросы, Запуск и Окна
- СЕОшники - кто они такие, чем питаются и где живут
Читайте также: