Свойства и методы объектов Options, Dialogs, Selection и Range объектной модели MS Word

Характеристика роли коллекций во всех приложениях Office 2000. Главные объекты Range, их задачи и принцип действия. Сущность Selection как пример косвенной адресации, основные отличия и его применение в работе. Особенности и задачи макросов, их виды.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 29.10.2013
Размер файла 18,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. Свойства и методы объектов Options, Dialogs, Selection и Range объектной модели MS Word

1.1 Объекты Range

Роль коллекций во всех приложениях Office 2000 велика. Если одновременно могут существовать несколько объектов (экземпляров) одного и того же класса, то существует и объединяющий их класс - коллекция, в которой собраны все экземпляры. Класс коллекция позволяет работать с последовательностью элементов - экземпляров класса.

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

1.2 Что определяет объект Range?

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

xlApp.Range("A1:A2") = 2

xlApp.Range("B1") = "=A1+A2"

xlApp.Range("B2") = "=A1*A2"

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

1.3 Метод Range

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

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

1.4 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.5 Объекты Selection

Еще один общеупотребительный объект - Selection. Как и Range, этот объект присутствует в большинстве приложений Office 2000. Он задает выделенную область документа Word, рабочего листа Excel, область в окне презентации. Его особенность в том, что в каждом окне (точнее, в каждом подокне) может существовать только один объект Selection. Каждое новое выделение некоторой области в подокне отменяет или модифицирует старое. Этим он отличается от объектов Range, несколько экземпляров которых могут существовать одновременно. Selection, как и объект Range, задает непрерывную область элементов. Но есть и принципиальное отличие: объект Selection не является диапазоном, заданным своим началом и концом, - это некоторая область, например таблица или ее столбец.

Но объекты Selection и Range имеют и много общего. Прежде всего, оба предназначены для того, чтобы задавать некоторую область элементов, и позволяют выполнять действия над элементами этой области. Возможности этих объектов для работы с элементами области примерно одинаковы. Так, у приложения Word свойства и методы данных классов объектов совпадают на 90%. Вот почему почти каждую задачу, которую можно решить в терминах объекта Selection, можно решить и в терминах объекта Range. Macrorecorder (о нем еще будет подробный разговор) любит использовать объект Selection в своей работе, и очень часто программист "подправляет" программу, переписывая ее для повышения эффективности в терминах свойств и методов объекта Range.

Отметим еще одну связь (ее можно назвать двойственностью) между этой парой объектов. У объекта Range есть метод Select, который выделяет заданный диапазон, создавая объект Selection, после чего можно использовать свойства и методы этого объекта. Также и объект Selection имеет метод Range, который определяет диапазон, связанный с областью выделения, после чего можно работать с этим диапазоном, используя свойства и методы объекта Range. Перепишем наш пример, где использовался объект Range, задействовав объект Selection:

Первоначально объект Selection создается как результат вызова метода Select объекта Range. После этого можно работать с этим объектом. При изменении диапазона объекта Selection приходится работать не с параметрами Start и End, как это делается для объектов Range, а использовать специальные методы Move, часть из которых мы применили в нашем примере. Вот их краткое описание:

метод MoveLeft сжимает область выделения до точки и передвигает ее в начало диапазона. В примере точка вставки перемещается к началу первого абзаца;

метод Move сжимает область выделения до точки и передвигает ее в нужное место. В примере точка вставки перемещается на два абзаца;

метод MoveDown расширяет область выделения. Параметр Unit указывает единицы, в которых ведется отсчет при расширении области (у нас - в абзацах); параметр Count задает число этих единиц. Параметр Extend указывает, нужно ли расширение или перемещение области, сжатой в точку вставки.

1.6 Метод Select и свойство Selection

Рассматривая в приложении Word объект Range, мы видели, что он может быть получен как результат вызова метода Range объектов одних классов и свойства Range объектов других классов. Свойством Range обладают объекты более низких уровней иерархии - коллекции слов и ячеек, абзацы и строки. Считается, что в каждый такой объект вложен объект Range, задающий диапазон, связанный с объектом. При вызове свойства этот существующий объект возвращается, и с ним можно работать. У объектов верхнего уровня иерархии: Application, Windows - встроенного диапазона нет, но зато есть метод Range, позволяющий создать новый объект этого класса.

С объектом Selection ситуация аналогична. И здесь свойство Selection возвращает уже существующий объект, а метод Select позволяет создать новый объект. Но здесь ситуация двойственна - объекты, имеющие свойство Range, обладают методом Select и, наоборот, объекты верхнего уровня иерархии имеют свойство Selection. Объяснение очевидно: объект Selection существует в единственном экземпляре в каждом подокне, и поэтому объекты более низких уровней иерархии просто не могут иметь встроенное свойство Selection. Им могут обладать только объекты класса Pane (подокно), Windows и Application.

Рассмотрим синтаксис метода Select:

Sub Select()

Sub Select([Replace])

В первом случае создается новая область выделения - объект Selection, во втором - область выделения можно расширить или заменить в зависимости от значения параметра Replace. Заметьте: метод Select реализован не как функция, явно возвращающая результат, а как процедура (Sub), которая объекта Selection не возвращает. Создание этого объекта - результат побочного эффекта этой процедуры. Созданный объект связывается с объектами верхнего уровня иерархии: окном и приложением. Его можно получить, обратившись к глобальному свойству Selection. Но Вы не можете получить ссылку на этот объект, а, следовательно, не можете создать переменную этого класса, так, как это могли делать при работе с объектами класса Range (вспомните переменную MyRange из наших примеров). Это предохраняет нас от соблазна "обмануть систему" и иметь две переменные - два объекта Selection одновременно.

Типичный и правильный способ работы с объектом Selection таков:

Создается или выбирается объект, область которого должна быть выделена.

Для этого объекта вызывается метод Select, возвращающий в качестве результата объект Selection.

Проводится работа с объектом Selection в области выделения.

Если нужно перейти к новой области выделения, то либо область выделения перемещается (как в нашем примере), либо повторяются действия, начиная с первого пункта.

Рассмотрим пример, в котором пользователь переключается между двумя областями выделения

Sub WorkWithTwoReg()

'Переключение между двумя областями выделения документа

'Создание двух областей

Dim myRange1 As Range

Dim myRange2 As Range

Dim i As Byte

Dim Answer As Variant ' Выбор пользователя

'Добавляем новый документ

Documents.Add

With ActiveDocument

'Добавляем 7 абзацев в текст созданного документа

For i = 1 To 7

.Paragraphs.Last.Range.Text = "Абзац " & i

.Paragraphs.Add

Next i

Set myRange1 = .Range(Start:=.Paragraphs(2).Range.Start, _

End:=.Paragraphs(3).Range.End)

Set myRange2 = .Range(Start:=.Paragraphs(6).Range.Start, _

End:=.Paragraphs(7).Range.End)

Answer = InputBox(prompt:=" Выберите область выделения (1/2)", _

Default:=1)

If Answer = 1 Then

myRange1.Select

'Макрос ItInSel работает с первой выделенной областью

ItInSel

Else

myRange2.Select

'Макрос ItInSel работает со второй выделенной областью

ItInSel

End If

End With

End Sub

В этом макросе почти все применяемые средства хорошо знакомы. До сих пор мы не пользовались только стандартным для Visual Basic методом InputBox, который открывает диалоговое окно, позволяющее принять ввод пользователя.

Заметьте, что работу в выделенной области осуществляет процедура ItInSel. Ее можно было сделать довольно сложной, но мы ограничились одним оператором:

Public Sub ItInSel()

Selection.Font.Italic = True

End Sub

Анализируя этот макрос, обратите внимание на два обстоятельства:

Если мы хотим постоянно работать с некоторыми областями, имеет смысл создать соответствующие им объекты. "Хранителями" областей выступают объекты класса Range В нашем примере это переменные myRange1 и myRange2. Объекты Selection появляются в последнюю минуту, когда область нужно выделить и начать с ней работать.

Работа с объектом Selection может быть предпочтительнее, так как явные ссылки заменяются косвенными. Это позволяет создать процедуру, не зависимую от области. Подобную ситуацию демонстрирует вызов процедуры ItInSel.

оffice range адресация макрос

1.7 Активные объекты и метод Activate

Объект Selection является примером косвенной адресации. Он задает некоторую выделенную область, и его свойства и методы позволяют изменять состояние этой области. Другой пример косвенной адресации - активные элементы. Как в подокне может быть только один выделенный элемент, так и активный элемент может быть единственным в своем классе - одно активное окно, один активный документ или рабочий лист. Обычно активный элемент находится в фокусе клавиатуры, именно ему направлен ввод пользователя. Сделав активным новый элемент, мы отменяем, деактивируем элемент, ранее находившийся в фокусе клавиатуры.

Метод Activate делает активным элемент, его вызвавший. Этим методом обладают элементы верхних уровней иерархии: Application, Window, Pane, Document, WorkBook, Worksheet, Chart и др. В приложениях Word и PowerPoint эти объекты обладают также булевым свойством Active, имеющим статус "только для чтения". При активизации объекта свойство Active получает значение True, при деактивации - False. Значение свойства позволяет понять, в каком состоянии находится тот или иной объект этих приложений.

Чтобы обратиться к выделенному объекту, достаточно иметь одно глобальное свойство Selection, поскольку в каждый текущий момент существует только один выделенный элемент. Активных элементов одновременно существует несколько, по одному в каждом классе. Поэтому для обращения к активному элементу надо указывать его класс. Поэтому для каждого класса имеется свое глобальное свойство. Чтобы обратиться к активному элементу некоторого класса Z, нужно вызвать соответствующее глобальное свойство ActiveZ, например ActiveDocument или ActiveWindow. В наших примерах мы неоднократно уже использовали обращение к активному документу - ActiveDocument. Рассмотрим еще один пример, в котором пользователь в приложении Excel выбирает рабочий лист. В зависимости от его выбора активизируется указанный лист, и в двух первых ячейках появляется приветствие, текст которого также зависит от выбора пользователя:

Public Sub Actis()

Dim Answer As Integer

Answer = InputBox(Prompt:="Выберите номер страницы для Вашей работы(1/2/3)", _ Default:=1)

'Активизирует рабочий лист, выбранный пользователем

ActiveWorkbook.Sheets(Answer).Activate

'Работа с активным листом

ActiveSheet.Cells(1, 1) = "Привет,"

Select Case Answer

Case 1: ActiveSheet.Cells(1, 2) = "Михаил!"

Case 2: ActiveSheet.Cells(1, 2) = "Владимир!"

Case Else: ActiveSheet.Cells(1, 2) = "Люди!"

End Select

End Sub

На этом мы заканчиваем первое знакомство с общеупотребительными объектами Office 2000. В заключение мы хотим рассказать уже не о каких-либо конкретных объектах, а об удивительном программном средстве, позволяющем работать с ними. Речь пойдет о Macrorecorder.

Размещено на Allbest.ru


Подобные документы

  • Изучение понятия, видов и методов создания стандартных макросов Microsoft Office Word - набора инструкций, которые сообщают программе, какие действия следует выполнить, чтобы достичь определенной цели. Функции макрорекордера. Редактирование макросов.

    курсовая работа [1,1 M], добавлен 18.04.2011

  • Если в документе Word есть вставленный объект, то Word называют приложением-клиентом. В приложения Microsoft Office можно вставлять растровые и векторные рисунки, а встроенный в Word графический редактор позволяет создавать графические объекты.

    реферат [190,9 K], добавлен 08.01.2009

  • Графические возможности текстовых процессоров Microsoft Office Word и Open office.org. Вставка в документы рисунков и других объектов. Встраивание и связывание объектов. Преобразование текста посредством Microsoft WordArt. Виды графических объектов.

    реферат [4,3 M], добавлен 17.06.2015

  • Средства автоматизации в офисных приложениях. Различные подходы создания отчётов в Word. Управление офисными приложениями в проектах Delphi. Стандартные и пользовательские макросы. Управление объектами Word и Excel 2000. Создание цифрового сертификата.

    дипломная работа [1,1 M], добавлен 27.01.2013

  • Пользовательский интерфейс редактора Word 2000. Работа с документом на уровне файловых операций. Интеграция OLE-объектов в Word. Создание и редактирование файлов HTML. Средства рисования и решение задач в Word. Редактирование текста и оформление таблиц.

    реферат [75,4 K], добавлен 16.07.2010

  • Автоформат при вводе. Работа со смарт-тегами. Работа с компонентами среды разработки Borland C++, их свойства, методы и правила их использования. Страница событий инспектора объектов. Создание интерфейса, эмулирующего пункт меню Microsoft Office Word.

    курсовая работа [524,5 K], добавлен 09.06.2015

  • Обмен данными между приложениями Word и Excel в MS Office как основа их интеграции. Основные способы обмена данными между программами в MS Office. Связывание и внедрение объектов. Сравнительный анализ основных способов. Простое (статическое) копирование.

    методичка [599,5 K], добавлен 10.11.2013

  • Применение Microsoft Office Access для создания базы данных "Гостиница" с целью ведения списка постояльцев и учета забронированных мест. Методы построения таблиц, запросов, форм, отчетов, макросов и модулей. Реализация концептуальной и логической модели.

    курсовая работа [418,1 K], добавлен 14.06.2011

  • Устройство и назначение составных элементов компьютера - системного блока, жесткого и гибкого дисков, клавиатуры, монитора, плоттера, сканера. Классификация программного обеспечения. Интерфейс и инструкция по работе с Microsoft Office Word 2007.

    дипломная работа [5,1 M], добавлен 17.01.2011

  • Характеристики и возможности редактора MS Office Word 2007: интерфейс, окно формул, стандартные блоки; сохранение документов в формате PDF, XML; сравнение документов, их совместное использование; вставка и группировка фигур; объекты SmartArt, WordArt.

    контрольная работа [6,6 M], добавлен 21.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.