
- •Программирование в среде Microsoft Office 2000
- •1. Основные сведения о vba
- •1.2. Макрорекордер в Office 2000
- •2.Основные сведения о программировании на vba
- •2.1. Алфавит и лексика языка vba
- •2.2.Правила записи текста программы на vba.
- •2.4. Данные в vba
- •2.4.1. Типы данных в vba
- •Т ипы данных в vba
- •Встроенные типы данных показаны в таблице 2.1.
- •2.4.2.Объявление переменных и констант простых типов
- •2.4.3. Массивы
- •2.5.Использование стандартных диалоговых окон для организации ввода-вывода данных
- •2.5.1.Функция MsgBox
- •2.5.2.Функция InputBox
- •2.6. Управляющие конструкции vba
- •2.6.1.Условный оператор if
- •2.6.2.Оператор выбора Select Case
- •2.6.3.Оператор цикла For … Next
- •2.6.4.Оператор цикла While…Wend
- •2.6.5.Оператор цикла Do…Loop
- •2.6.6. Оператор перехода GoTo
- •2.7. Основные сведения об объектах
- •2.7.1.Основные понятия объектно-ориентированного программирования.
- •2.7.2. Особенности использования объектов.
- •2.7.3. Коллекции в vba
- •2.7.4. Объект Application
- •2.7.5. Объекты Range и Selection
- •2.7.6. Оператор With для операций с одним объектом.
- •2.8.Обработка ошибок
- •3.Программирование в приложениях ms Office 2000.
- •3.1.Объекты excel, их свойства и методы.
- •3.1.1. Объектная модель excel
- •3.1.2. Коллекция Workbooks
- •3.1.3. Объект Workbook
- •3.1.4.Объект Worksheet
- •3.1.5.Объект Chart
- •3.1.6.Объекты Range и Selection
- •3.1.7. Пример решения задачи в excel на основе построения vba-кода.
- •3.2. Объекты word, их свойства и методы.
- •3.2.1. Модель объектов word
- •3.2.2.Объект Appication
- •3.2.3. Объект Document
- •3.2.4. Классы, задающие структуризацию текста документа.
- •3.2.5. Классы, составляющие части документа
- •3.2.5.1. Объект Range
- •3.2.5.2. Объект Selection
- •3.2.6. Классы, представляющие структуру документа
- •3.3. Автоматизация работы в Access на основе использования Access vba
- •3.3.1. Средства автоматизации работы в Access.
- •3.3.2. Объектная модель Microsoft Access
- •3.3.3.Особенности программирования в Access vba
- •3.3.3.1. Модель программирования Access
- •3.3.3.2. Особенности работы с объектами в Access vba.
- •3.3.4. Манипулирование в Access объектами Application
- •3.3.5. Объекты доступа к данным
- •3.3.5.1. Объекты dao
- •3.3.5.2. Объекты ado
- •3.3.6. Использование объектов доступа к данным в Access
- •3.3.6.1. Соединение с текущей базой данных
- •3.3.6.2. Открытие базы данных
- •3.3.6.3. Создание базы данных
- •3.3.6.4. Выполнение операций с записями
- •3.3.6.5. Перемещение по набору записей
- •3.3.6.6. Поиск записей в объектах Recordset
- •3.3.7. Пример решения задачи в Access на основе построения vba-кода
- •3.4.Совместная работа приложений Microsoft Office 2000
- •4.Список рекомендуемой литературы
3.2.5. Классы, составляющие части документа
Наиболее часто в Word возникает необходимость редактирования части документа (фрагмента). Получить фрагмент документа можно с помощью классов объектов Range и Selection.
3.2.5.1. Объект Range
Объект Range позволяет задать произвольный диапазон, представляющий собой последовательность индексированных элементов.
Диапазон может быть стянут в точку, тогда объект Range будет определять единственный элемент. Если объект Range представляет собой последовательность элементов, то необходимо задать индексы первого и последнего элемента.
Одновременно в тексте может быть задано несколько диапазонов. Каждый из них определяется позициями первого и последнего элемента.
Объект Range может быть получен через метод Range или свойство Range других объектов.
Рассмотрим, как можно получить объект Range, используя метод Range на примере объекта Document.
Формат метода Range объекта Document следующий:
Function Range([Start], [End]) As Range,
где параметры Start и End определяют начало и конец диапазона.
Если объект Range используется в процедуре многократно, то имеет смысл создать переменную типа объект Range .
Например, указав в процедуре:
Set Rng = ActiveDocument.Range(Start:=0, End:=20),
мы переменной Rng_1 присваиваем объект Range, представляющий собой первые 20 символов активного документа.
Свойство Range имеется у многих объектов, в том числе и у рассмотренных выше Paragraphs и Sections. Можно использовать это свойство для одного или нескольких одинаковых элементов, или для всей кол лекции данного элемента.
Например, если задать индекс для свойства Paragraphs, то из коллекции Paragraphs будет получен нужный объект:
Set имя_перем = ActiveDocument.Paragraphs(index).Range
Получив ссылку на объект Range, можно использовать свойства и методы объекта для манипуляции с соответствующим диапазоном.
Рассмотрим некоторые свойства объекта Range:
Start – начальная символьная позиция диапазона.
End – конечная символьная позиция диапазона.
Text – позволяет получить или изменить содержимое объекта.
Font – обеспечивает доступ к свойствам и методам, обеспечивающим форматирование символов.
ParagraphFormat - обеспечивает доступ к свойствам и методам, обеспечивающим форматирование абзацев.
StoryType – определяет тип области, в которой находится диапазон. Всего определены 11 типов областей (области основного текста, колонтитулов, сносок и т.д), которым соответствуют wdStoryType – константы свойства StoryType.
Пример 3.9.
Public Sub Rang1()
Set Rng_1 = ActiveDocument.Paragraphs(1).Range
With Rng
.Style = wdStyleHeading1 ‘ стиль – заголовок1
.Font.Size = 18
End With
End Sub
В примере манипуляции выполняются над первым абзацем, наиболее часто требуется выполнять действия над группой элементов. Создать такой объект можно, используя свойства Start и End объекта Range.
Пример 3.10.
Public Sub Rang2()
Set rng_2 = ActiveDocument.Paragraphs(1).Range
With ActiveDocument
rng_2.Start = .Paragraphs(1).Range.Start
rng_2.End = .Paragraphs(5).Range.End
End With
With rng_2
.Style = wdStyleHeading1
.Font.Size = 18
End With
End Sub
В примере 3.10 в помощью свойств Start и End объект rng_2 (первый абзац) переопределен (пять первых абзацев) и отформатирован.
Свойства Start и End объект Range могут использоваться также и для задания значений параметров Start и End при создании объекта Range методом Range. В следующем примере переменной rng_3 присваивается созданный методом Range объект, начальная граница которого задается свойством Start объекта Range (первый символ первого абзаца), а конечная - свойством End объекта Range (последний символ десятого абзаца). В примере определено три объекта Range.
Пример 3.11.
Public Sub Rang3()
Set Rng_3 = aDoc.Range(Start:=aDoc.Paragraphs(1).Range.Start, _
End:=aDoc.Paragraphs(10).Range.End)
With Rng_3
.Bold = True ‘ полужирное начертание
.Font.Name = "Arial"
.Font.Size = 16
End With
End Sub