Основы офисного программирования и язык VBA


Метод Range


Ранее мы говорили, что объект класса Paragraph имеет свойство Range, иначе говоря, в него вложен объект Range., задающий последовательность символов данного абзаца. Объектов, имеющих свойство Range, немало. Это понятно, ведь не только с абзацами полезно связать диапазон, соответствующий объекту. При обращении к свойству Range таких объектов в качестве результата получаем соответствующий диапазон - ссылку на объект Range.

В ряде случаев можно определить новый объект класса Range, используя метод Range. Заметьте: метод, а не свойство. Так объекты более высокой иерархии, например объект класса Document, имеют метод Range и не имеют соответствующего свойства. Синтаксис метода таков:

Function Range(Start, End) As Range

Он имеет два параметра: Start и End - и возвращает как результат объект класса Range.

Если объект Range уже построен, то значения его параметров Start и End можно переопределить, вызвав его метод SetRange, в котором можно задать новые значения этих параметров.

В следующем примере работы с документом Word демонстрируется как применение свойства Range, так и метода Range. В нем же показано и применение метода SetRange.

Public Sub WorkWithRange() Dim myr As Range, myr1 As Range Dim i As Byte 'Добавляем новый документ Documents.Add With ActiveDocument 'Добавляем 7 абзацев в текст созданного документа For i = 1 To 7 .Paragraphs.Last.Range.Text = "Абзац " & i .Paragraphs.Add Next i 'Используется свойство Range Set myr = .Paragraphs(1).Range 'Выделен первый абзац myr.Select 'Новый объект myr1 задает пустой объект - позицию курсора 'В правой части вызывается метод Range Set myr1 = ActiveDocument.Range(Start:=myr.Start, End:=myr.Start) myr1.Select 'Теперь объект myr1 задает единственный символ -первый символ текста 'Здеесь использован метод SetRange myr1.SetRange Start:=myr1.Start, End:=myr1.End + 1 myr1.Select 'Три абзаца с третьего по пятый выделяются курсивом myr1.SetRange Start:=.Paragraphs(3).Range.Start, End:=.Paragraphs(5).Range.End myr1.Font.Italic = True myr1.Select End With End Sub

Пример 1.7.




Начало  Назад  Вперед



Книжный магазин