9 Июнь 2008

6. Создание, сохранение и закрытие рабочих книг

Для того чтобы создать новую рабочую книгу, используется метод Add кол­
лекции Workbooks:

\Workbooks.Add(Template)

Аргумент Template задает имя файла, который будет использован в качест­ве шаблона новой рабочей книги, или одну из предопределенных констант xlWBATemplate (их можно увидеть в Object Explorer). Когда в качестве аргумента задается константа, в новой рабочей книге будет содержаться только один рабо­чий лист заданного типа. Если аргумент Template опущен, создается новая ра­бочая книга, содержащая то количество рабочих страниц, которое указано в свойстве Application.SheetslnNewWorkbook (по умолчанию — 3). Метод Add возвращает ссылку на новую рабочую книгу, которая может быть, если это не­обходимо, присвоена переменной соответствующего типа:

Dim MyWorkbook As Excel.Workbook

Set MyWorkbook=Workbooks.Add(Template)

Для открытия существующей на диске рабочей книги используется метод Open. Его упрощенный синтаксис:

Workbooks.Open(Fi1епате)

Обязательный аргумент Filename задает путь и имя открываемого файла. Метод Open имеет большое число дополнительных аргументов, которые опреде­ляют открытие только для чтения, ввод требуемого пароля (если книга защище­на) и то, добавлять ли этот файл в список последних открытых файлов (в меню File приложения Excel).

Для сохранения рабочей книги, которой уже было присвоено имя, использу­ется метод Save объекта Workbook. Этот метод не имеет аргументов. Для сохра­нения новой рабочей книги в первый раз с присвоением ей имени или для со­хранения книги под другим именем используется метод SaveAs. Его упрощен­ный синтаксис:

MyWorkbook. SaveAs (Fi 1 епате)

Аргумент Filename определяет имя файла, включая его путь. Метод SaveAs имеет также множество необязательных дополнительных аргументов, которые управляют назначением файлу пароля или формата. Эти подробности хорошо описаны в онлайновой справке.

Для сохранения копии рабочей книги под другим именем, не изменяя при этом имя текущей книги, используется метод SaveCopyAs:

^Workbook. SaveCopyAs (Fi 2 eName)

Перед тем как рабочая книга будет сохранена и ей будет присвоено имя, в свойстве Name будет содержаться имя, присвоенное по умолчанию приложением Excel (Bookl, Book2, и т.п.). После того как имя будет назначено, оно будет со­держаться в свойстве Name. Свойство Name нельзя изменить напрямую — для этого обязательно использовать метод SaveAs. Объект Workbook содержит еще два свойства, которые связаны с его именем. Как только рабочая книга была со­хранена, свойство FullName будет содержать полное имя файла (вместе с путем), а свойство Path будет содержать только путь.

Для закрытия рабочей Книги используется метод Close: MyWorkbook.С1ose{SaveChanges, FileName, RouteWorkbook)

Все три аргумента не являются обязательными. SaveChanges задает вариант действий для случая, когда рабочая книга содержит несохраненные изменения. Возможными значениями являются True (для сохранения изменений) и False (для игнорирования изменений). Если этот аргумент опущен, пользователю бу­дет предложено сохранить изменения.

FileName — это имя файла, в который сохраняется рабочая книга. Если этот аргумент опущен, используется текущее имя. Если такового не существует, пользователю будет предложено его ввести.

RouteWorkbook относится только к тем рабочим книгам, которые имеют спи­сок распространения (routing slip), но еще не были распространены; устанавли­вается в значение True, если необходимо отправить рабочую книгу следующему получателю, в противном случае устанавливается в False. Если этот аргумент опущен, пользователю выводится соответствующий запрос.

5. Объектная модель Excel

Основой объектной модели Excel является объект Worksheet, представляю­щий один рабочий лист в файле. Каждый объект Worksheet является частью коллекции Worksheets, которая принадлежит объекту Workbook, представляю­щему файл рабочей книги Excel. Так как в приложении Excel одновременно мо­жет быть открыто несколько рабочих книг, существует также и коллекция Workbooks, содержащая по одному объекту Workbook на каждый открытый файл. Как и во всех приложениях пакета Office, объект Application находится в вершине иерархии объектов и доступен в качестве неявной ссылки при работе в Excel.

Существует еще один тип листов в рабочих книгах Excel — лист диаграммы (объект Chart) — особая таблица, которая содержит только диаграмму. Коллек­ция Charts объекта Application реализует доступ ко всем диаграммам всех от­крытых файлов, а коллекция charts объекта Workbook — только к диаграммам данной рабочей книги. Диаграммы также могут быть внедрены в рабочие листы вместо того, чтобы иметь собственный лист. Такие диаграммы не являются ча­стью коллекции charts, а вместо этого доступны в составе коллекции Chartob-jects объекта Worksheet. Коллекция Sheets осуществляет доступ ко всем рабо­чим листам, как к таблицам, так и к диаграммам.

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

Еще одной важной составной частью объектной модели Excel является объект Chart. Существует один объект chart, содержащийся в коллекции charts для каждой диаграммы в рабочей книге. Каждому объекту Chart подчинено множе­ство объектов, представляющих составные части диаграммы, такие как оси и ле­генда.

4. Поиск и замена текста

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

Оба объекта — Selection и Range -~ имеют свойство Find, которое содержит ссылку на объект Find. Ее можно использовать для поиска в выделении или диапазоне. Общая процедура представлена ниже.

Определяется выделение или (более часто) диапазон, который содержит
документ, в котором должен быть выполнен поиск.

Устанавливаются свойства объекта Find, в которых задаются детали поиска.

Вызывается метод Execute объекта Find для выполнения поиска.

(Свойства, выде­ленные звездочкой, совместно используются и объектом Replacement.)

Объект Replacement используется, когда производится поиск с заменой. Он имеет свойства, помеченные звездочкой в табл. 5.5, которые можно использовать для задания текста замены или форматирования. На примерах далее будет пока­зано, как работать с этими объектами.

Объект Find имеет два метода, о которых необходимо знать. Метод ClearAll-Formatting удаляет все параметры форматирования, которые ранее были уста­новлены. При этом следующая операция поиска будет исключительно текстовой. Хорошей практикой считается вызов этого метода при каждом использовании объекта Find. Это гарантирует удаление установок форматирования предыдущих операций. Метод Execute выполняет операции поиска и замены в соответствии с установленными параметрами. Этот метод принимает множество необязательных аргументов, которые соответствуют свойствам объекта Find. Другими словами, параметры операции поиска можно задать либо непосредственной установкой свойств объекта Find, либо передачей соответствующих аргументов методу Exe­cute (или и тем, и другим). Таким образом, следующие два фрагмента програм­мы являются эквивалентными (в них подразумевается, что Range 1 — это ссылка на объект Range):

With Rangel.Find

.Forward=True

.Text=”Bill Clinton”

.Wrap=wdFindContinue

.Execute End With

Rangel.Find.Execute Forward:=True,Text:=”Bill Clinton”, _ Wrap:=wdFindContinue

3. Объекты Selection и Range. Свойства и методы

написано в рубрике: Информационные технологии (Т) — Метки: , , , — Михаил @ 21:20

Объект Selection представляет собой выделенный текст в документе. Этот объект всегда существует, даже если никакого текста не выделено. Доступ к этому объекту осуществляется посредством объектов window, Application и Pane, а не с помощью объекта Document. Это может показаться странным, но все работает именно таким образом из-за того, что объект Selection связан с тек­стом, который выделен на экране. Но так как этот объект является глобальным, к нему можно получить доступ непосредственно в Word.

С помощью свойства Туре объекта Selection можно определить тип текущего выделения. Все значения, которые может иметь это свойство, определяются гло­бальными константами (которые можно просмотреть в Object Browser, как было описано в главе 4). Их имена достаточно понятно описывают тип выделения. Например, wdSelectionRow соответствует выделенной строке в таблице. Два ти­па выделения, которые используются наиболее часто — это wdSelectionNormal, соответствующий выделению обычного текста, и wdSelectionIP, соответствую­щий отсутствию выделенного текста. (В этом случае объект Selection совпадает с точкой ввода).

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

Теперь давайте рассмотрим несколько примеров. Следующий фрагмент пере­мещает точку вставки в конец основного текста документа:

If Selection.StoryType=wdMainTextStory Then Selection.Move Unit:=wdStory, Count:=1 End If

2. Создание, сохранение и закрытие документов

Открытие и закрытие документов

Для создания нового документа используется метод Add коллекции Documents. Его синтаксис следующий:

Dim MyDoc as Word.Document

Set MyDoc = Documents.Add{Template, NewTemplate)

Аргумент Template задает имя шаблона, на котором будет основываться но­вый документ. Аргумент NewTemplate определяет, будет ли сам новый документ шаблоном (NewTemplate=True) или обычным документом (NewTemplate=False). Эти два аргумента метода не являются обязательными. Если они опущены, соз­дается обычный документ, основанный на шаблоне Normal.

Создать новый документ и присвоить ему имя можно одновременно, например:

Dim MyDoc As Word.Document Document s.Add.SaveAs(Fi1eName) Set MyDoc=Documents(Fi1eName)

Если документу во время его создания не присваивается имя, это имя следует присвоить при первом его сохранении, как будет показано в следующем разделе. Для открытия с диска существующего документа используется метод Open:

Dim MyDoc As Word.Document

Set MyDoc = Documents.Open(FileName)

Аргумент FileName задает путь и имя файла открываемого документа. Если заданный файл не существует или не является допустимым документом Word, возникает ошибка. Существуют средства, которые можно использовать для предотвращения ошибки типа “file not found“. Одним из них является объект Dialog, который позво­ляет пользователю выбрать нужный файл. Вторым является объект FileSearch, который используется для про­верки существования заданного файла перед попыткой открыть его.

Сохранение и закрытие документов

Метод Close объекта Document используется для закрытия документа. Его синтаксис представлен ниже (предполагается, что MyDoc — ссылка на документ):

MyDoc.Close(SaveChanges, OriginalFormat, RouteDocument)

Аргумент SaveChanges определяет, должен ли перед закрытием документ быть сохранен. Возможными значениями его могут быть следующие константы: wdDoNotSaveDocument (не сохранять документ), wdPromptToSaveChanges (запро­сить сохранение изменений) и wdSaveChanges (сохранить изменения).

Аргумент OriginalFormat задает формат, в котором будет сохранен доку­мент. Возможны следующие варианты значений: wdOriginalDocumentFormat (исходный формат документа), wdPromptUser (запросить пользователя) и wdWordDocument (формат документа Word).

Аргумент RouteDocument может иметь значения True и False (по умолча­нию), он определяет, должен ли документ отсылаться следующему получателю в списке распределения (routing). Значение True,не будет иметь смысла, если до­кумент не имеет присоединенного к себе списка рассылки.

Все открытые документы можно закрыть, используя метод Close коллекции Documents. Его аргументы — те же, что и для вышеописанного метода объекта Document.

< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 >

© ?????? �????????-???????????�., 2008. ??? ????? ????????.
??????????? ?????????? ?????? ??? ??????? ???????? ?????? ?? ????????.
Powered by WordPress