Определение диапазонов с помощью метода Range

Определение диапазонов с помощью метода Range

Если существующие объекты не содержат текст, с которым вы хотите работать, создайте собственный объект Range. В любом открытом документе вы сможете определить столько объектов Range, сколько вам нужно. При этом используется метод Range документа, который требует от вас указания начальной и конечной точек диапазона в терминах расположения символа в документе. Например, ознакомьтесь со следующим примером:

ActiveDocument.Range(Start:= 10, End:=2 0)

Приведенное выше выражение представляет собой объектную ссылку на диапазон, который начинается с 11-го символа и заканчивается 20-м символом. Значение расположения символа на самом деле означает место слева от данного символа. Например, значение, равное 0, соответствует первому символу в документе, а значение 10 указывает на точку между 10-м и 31-м символами. Word считает все символы в документе, включая скрытые и непечатаемые знаки.

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

Объект Range создать совсем несложно (если вам известны положения начального и конечного символов, которые вы решили включить в диапазон).

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

Для определения диапазона, базирующегося на одном из подобных критериев, используйте свойства Start или End объекта Selection, Range или Bookmark, чтобы определить месторасположение в документе интересующего вас символа. Если вам необходимо создать состоящий из десяти символов диапазон, который будет начинаться с вкладки Forget MeNot, вам пригодится следующая инструкция;

With ActiveDocument

Set myEkMark = .Bookmarks("ForgretMeNot")

Set homeOnTheRange = _

.Fange( Start := myBkMark, End := myBkMark + 10)

End With

Ниже приведен еще один пример, иллюстрирующий использование свойства Range для поиска абзаца, определения в нем некоторого слова, а также создания нового диапазона, начинающегося с этого слова. В данном случае аргумент End опущен, поэтому диапазон начинается с указанного слова и продолжается до окончания документа:

With ActiveDocument

Set firstWord = .Paragraphs(160).Range.Words(3)

Set RangeTop = .Range( Start := first Word.Start )

End With

В разделе "Поиск и замена текста с помощью VBA в Word", дальше в настоящей главе, я покажу, что использование ключевого слова Find совместно с диапазоном или выделенной областью определяет объект, который будет содержать только найденный текст. После того как инструкция Find найдет в диапазоне или выделенной области фразу, свойства Start и End того же диапазона или выделенной области теперь будут указывать на начало и конец найденного текста.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Вариации метода Main()

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Вариации метода Main() Предыдущий вариант Main() был определен с одним параметром (массивом строк) и возвращал данные типа int. Однако это не единственно возможная форма Main(). Для построения точки входа приложения можно использовать любую из следующих сигнатур (в предположении,


Генерирование метода HelloWorld()

Из книги Adobe Photoshop CS3 автора Завгородний Владимир

Генерирование метода HelloWorld() Наконец, рассмотрим задачу генерирования метода SayHello(). Первой задачей здесь оказывается получение типа MethodBuilder из переменной helloWorld-Class. После этого определяется указанный метод и получается ILGenerator, позволяющий добавить соответствующие


Реализация Web-метода TellFortune()

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Реализация Web-метода TellFortune() Ваш Web-сервис XML MagicEightBall будет имитировать классическую говорящую игрушку, сообщающую предсказания. Для этого добавьте в класс Service следующий метод (существующий Web-метод HelloWorld() можно удалить).[WebMethod]public string TellFortune(string вопросПользователя) { string[]


Описание Web-метода с помощью свойства Description

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Описание Web-метода с помощью свойства Description Как и в случае атрибута [WebService], свойство Description атрибута [WebMethod] позволяет описать функциональные возможности Web-мeтoдa.public class Service: System.Web.Services.WebService { [WebMethod(Description = "Вычитание целых чисел.")] public int Subtract (int x, int y) { return x – y;


Несовпадение цветовых диапазонов

Из книги MySQL: руководство профессионала автора Паутов Алексей В

Несовпадение цветовых диапазонов Несмотря на то что все три режима (RGB, CMYK, L*a*b) называются полноцветными, возможности их все же разнятся. В первую очередь это касается цветового охвата – иными словами, того, насколько разные цвета могут отображаться в той или иной


10.6. Выбор метода

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

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


10.6. Выбор метода

Из книги VBA для чайников автора Каммингс Стив

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


3.2.1. RANGE Partitioning

Из книги C++. Сборник рецептов автора Диггинс Кристофер


10.1.16. Применение метода readpartial

Из книги автора

10.1.16. Применение метода readpartial Метод readpartial появился сравнительно недавно с целью упростить ввод/вывод при определенных условиях. Он может использоваться с любыми потоками, например с сокетами.Параметр «максимальная длина» (max length) обязателен. Если задан параметр buffer, то


Знакомство с объектами Range

Из книги автора

Знакомство с объектами Range Если вы редактируете документ самостоятельно, вы должны поместить указатель мыши в нужное место либо выделить определенный фрагмент, прежде чем добавлять, удалять или форматировать текст. Однако в Word объекты Range избавляют вас от подобной


Использование свойства Range

Из книги автора

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


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

Из книги автора

Использование в коде объектов Range для работы с ячейками Весьма неожиданно, что в Excel нет объекта Cell (Ячейка). Поэтому при написании кода следует руководствоваться следующим подходом: для указания ячейки в VBA-коде используется объект Range. В Excel объект Range может заключать в


Определение объекта Range

Из книги автора

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