2006 г.
Биллиг Владимир Арнольдович Интернет-Университет Информационных Технологий, INTUIT.ru
Назад Оглавление Вперёд Терминальные свойства объекта Workbook
Терминальных свойств, как обычно, множество. Они проще, чем свойства, задаваемые объектами. Среди них достаточно много булевых свойств, позволяющих включать или отключать то или иное свойство рабочей книги. Я приведу сводку некоторых из этих свойств, позволяющую получить общее представление о том, как можно управлять характеристиками рабочей книги Excel с помощью этих свойств.
Таблица 3.6. Терминальные свойства объекта WorkbookТерминальные свойства | Назначение свойства |
---|
AcceptLabelsInFormula | Булево свойство со значением True , если метки могут использоваться в формулах рабочего листа. По умолчанию - True . | HasRoutingSlip | Булево свойство со значением True , если книга может быть направлена по сети другим участникам разработки документа. | Routed | Булево свойство со значением True , если документ был направлен следующему участнику разработки. | MultiUserEditing | Булево свойство со значением True , если книга открыта для разделяемого доступа. | AutoUpdateFrequency | Задает частоту (в минутах), с которой сделанные изменения передаются участникам разделяемого доступа. Если свойство имеет значение 0, то книга будет пересылаться только в момент ее сохранения | AutoUpdateSaveChanges | Булево свойство со значением True , если сделанные изменения автоматически пересылаются всем участникам разработки. Предыдущий параметр должен иметь значение в пределах от 5 до 1440, чтобы это свойство оказало эффект. | ListChangesOnNewSheet | Булево свойство со значением True , если сделанные изменения показываются на отдельной странице при разделенном доступе | KeepChangeHistory | Булево свойство со значением True , если при разделенном доступе сохраняется история сделанных изменений. | ChangeHistoryDuration | Устанавливает число дней, в течение которых сохраняются изменения в их истории. Старые изменения, срок которых превышает заданную установку, из истории удаляются | CreateBackup | Булево свойство со значением True , если при сохранении книги создается ее резервная копия. | CodeName | Рабочие книги, листы и другие объекты Excel имеют два имени - собственное и кодовое. В момент создания объекта они совпадают, например "Лист1 ", но затем каждое из них может быть независимо изменено. Кодовое имя может быть изменено только вручную в окне свойств. Программно оно может быть использовано только для чтения. Важно то, что кодовое имя можно использовать для непосредственного именования объекта, что сокращает цепочку вызовов. Так непосредственно можно обратиться к объекту Лист1.Range(myRange) | FullName | Полное имя рабочей книги, заданное в виде строки, включающее путь к файлу, хранящему книгу. Имеет статус "только для чтения". | FileFormat | Свойство имеет статус "только для чтения" и возвращает константу, задающую формат файла и/или тип рабочей книги | HasPassword | Булево свойство со значением True , если документ имеет пароль защиты | Saved | Булево свойство со значением True , если не делалось никаких изменений с момента последнего сохранения документа. | WriteReserved | Булево свойство со значением True , если документ закрыт для записи. | Новые терминальные свойства объекта Workbook в Excel 2000 | |
---|
EnvelopeVisible | Новое в Excel 2000 терминальное булево свойство, при включении которого появляется панель для отправки электронной почты и заголовок отправляемого сообщения. | VBASigned | Новое в Excel 2000 терминальное булево свойство, которое показывает, имеет ли программный проект данной книги цифровую подпись. Свойство имеет статус "только для чтения". |
Приведу две простые процедуры, которые демонстрируют использование некоторых терминальных свойств. Первая из этих процедур выводит на печать имена рабочей книги и путь к ней:
Public Sub AllNames()
'Печать имен документа
With ThisWorkbook
Debug.Print "Свойство Name - ", .Name
Debug.Print "Свойство CodeName - ", .CodeName
Debug.Print "Свойство FullName - ", .FullName
Debug.Print "Свойство Path - ", .Path
End With
End Sub
Вот как выглядят результаты в окне отладки, полученные в результате работы этой процедуры:
Свойство Name - BookOne.xls
Свойство CodeName - ЭтаКнига
Свойство FullName - E:\O2000\DsCd\Ch11\BookOne.xls
Свойство Path - E:\O2000\DsCd\Ch11
Следующая процедура позволяет по желанию пользователя включить или отключить панель для отсылки почтового сообщения, используя новое свойство EnvelopeVisible:
Public Sub EnvelopeOn()
'Включение и выключение панели и заголовка почтового сообщения
Dim Answer As Long
Answer = MsgBox("Включить панель отправки почтового сообщения?", _
vbYesNo)
If Answer = vbYes Then
ThisWorkbook.EnvelopeVisible = True
Else
ThisWorkbook.EnvelopeVisible = False
End If
End Sub
Методы объекта Workbook
Дадим теперь краткую характеристику основным методам объекта Workbook . Мы уже говорили о том, что создаются и открываются рабочие книги методами коллекции Workbooks - Add , Open и OpenTextFile . А вот закрываются и сохраняются, используя собственные методы. С них мы и начнем описание методов:
Save, SaveAs, SaveCopyAs - позволяют сохранить рабочую книгу, без ее закрытия и удаления из коллекции Workbooks . При первом сохранении следует применять метод SaveAs , чтобы задать имя файла, в котором книга сохраняется. Метод имеет и другие параметры - формат хранения, пароль, статус и другие характеристики. Последний из этой группы методов создает копию рабочей книги.Close - выполняет те же функции, что и Save , но одновременно закрывает книгу и удаляет ее из коллекции.Activate - активизирует рабочую книгу.Route - направляет рабочую книгу по сети всем участникам совместной разработки. Список участников и другие характеристики задаются в свойствах объекта RoutingSlip . Вот пример процедуры, в которой определяется круг участников работы, после чего им пересылается текущая книга.
Public Sub BookRoute()
'Регистрация исполнителей совместной разработки
'в объекте RoutingSlip.
'Посылка книги совместно работающим исполнителям.
With ThisWorkbook
.HasRoutingSlip = True
With .RoutingSlip
.Delivery = xlOneAfterAnother
.Recipients = Array("Илья Биллиг", _
"Михаил Дехтярь")
.Subject = "Collaboration Test"
.Message = "Это книга Excel, пересылаемая в качестве примера"
.ReturnWhenDone = True
End With
.Route
End With
End Sub
Заметьте, для того, чтобы при пересылке книги не задавались лишние вопросы, все исполнители, включенные в список Recipients , также как и сам автор документа, должны быть включены в адресную книгу. Согласно установленному порядку книга будет послана первому исполнителю, указанному в списке, и далее будет пересылаться по заданному списком маршруту. После отсылки книги свойство Routed автоматически будет установлено как True .
AcceptAllChanges, RejectAllChanges - принимает или отвергает все изменения, сделанные участниками совместной разработки документа при разделенном доступе.RefreshAll - обновляет сводные таблицы и все области, содержащие внешние данные.PurgeChangeHistoryNow (Days,SharingPassword) - удаляет из истории изменений все те, чей срок хранения превосходит число дней, заданных параметром Days . Второй параметр задает общий пароль.Protect, ProtectSharing, Unprotect, UnprotectSharing - методы, включающие и выключающие пароли личные и общие рабочей книги.ExclusiveAccess - если книга открыта с разделяемым доступом, то этот метод дает пользователю, вызвавшему его, исключительное право доступа - изменения, сделанные всеми остальными пользователями должны сохраняться в отдельных файлах.ChangeFileAccess(Mode, WritePassword, Notify) - изменяет статус доступа. Новый статус задается параметром Mode , который может принимать одно из двух значений: xlReadWrite и xlReadOnly . Если файл снабжен паролем и получает статус для записи и чтения, то второй параметр WritePassword задает пароль на запись. Если булев параметр Notify имеет значение True , то пользователь получает уведомление, когда файл недоступен.AddToFavorites - добавляет в папку Favorites ярлычок рабочей книги.PivotCaches - возвращает коллекцию областей памяти, отводимых сводным таблицам данной рабочей книги. Элементами этой коллекции являются объекты PivotCache . Каждой сводной таблице - объекту PivotTable отводится своя память (кэш), которую и задает объект PivotCache .RunAutoMacros - запускает на выполнение все автомакросы данной книги.LinkSources([Type]), ChangeLink(Name As String, NewName As String, [Type As XlLinkType = xlLinkTypeExcelLinks]), OpenLinks(Name As String, [ReadOnly], [Type]), LinkInfo(Name As String, LinkInfo As XlLinkInfo, [Type], [EditionRef]), UpdateLink([Name], [Type]) - группа методов, позволяющих работать со ссылками. Ссылки могут быть четырех типов: - на другие рабочие книги Excel ,
- на документы, связанные по протоколу OLE (например, документы Word, на которые ссылается рабочая книга) или протоколу DDE,
- на издателей книги при совместной работе над книгой и ее публикации на сервере,
- на подписчиков книги, опубликованной на сервере и доступной для подписчиков.
Метод LinkSources позволяет получить все ссылки типа, заданного его параметром. Если параметр не указан, то будут выданы ссылки на книги Excel. Следующий метод Change позволяет изменить ссылку, Open - открыть документ по заданной ссылке, Info - получить некоторую информацию о документе, Update - обновить ссылки.
Вот пример работы с этой группой методов объекта Workbook :
Public Sub LinkDocs()
'Установление связей рабочей книги
Dim BookLinks As Variant
Dim i As Integer
With ThisWorkbook
' связи с другими книгами Excel.
BookLinks = .LinkSources(xlExcelLinks)
If Not IsEmpty(BookLinks) Then
Debug.Print "Существуют ссылки на рабочие книги Excel!"
For i = LBound(BookLinks) To UBound(BookLinks)
Debug.Print "Ссылка" & i & " : ", BookLinks(i)
If BookLinks(i) = "BookTwo" Then
.OpenLinks BookLinks(i)
.ChangeLink BookLinks(i), "BookOne"
End If
Next i
Else: Debug.Print "Ссылки на рабочие книги отсутствуют!"
End If
BookLinks = .LinkSources(xlOLELinks)
If Not IsEmpty(BookLinks) Then
Debug.Print "Существуют ссылки на OLE - документы!"
For i = LBound(BookLinks) To UBound(BookLinks)
Debug.Print "Ссылка" & i & " : ", BookLinks(i)
Next i
If .LinkInfo("Word.Document.8|E:\O2000\Remarks.doc!'", _
xlUpdateState, xlOLELinks) = 1 Then
Debug.Print "Автоматическое обновление данных с OLE - документами!"
End If
Else: Debug.Print "Ссылки на OLE - документы отсутствуют!"
End If
BookLinks = .LinkSources(xlPublishers)
If Not IsEmpty(BookLinks) Then
Debug.Print "Существуют ссылки на издателей документа!"
For i = LBound(BookLinks) To UBound(BookLinks)
Debug.Print "Ссылка" & i & " : ", BookLinks(i)
Next i
Else: Debug.Print "Ссылки на издателей отсутствуют!"
End If
BookLinks = .LinkSources(xlSubscribers)
If Not IsEmpty(BookLinks) Then
Debug.Print "Существуют ссылки на подписчиков документа!"
For i = LBound(BookLinks) To UBound(BookLinks)
Debug.Print "Ссылка" & i & " : ", BookLinks(i)
Next i
Else: Debug.Print "Ссылки на подписчиков отсутствуют!"
End If
End With
End Sub
Вот как выглядят результаты отладочной печати, полученные при работе этой процедуры:
Существуют ссылки на рабочие книги Excel!
Ссылка1 : BookTwo
Ссылка2 : E:\O2000\DsCd\Ch11\BookOne.xls
Существуют ссылки на OLE - документы!
Ссылка1 : Word.Document.8|E:\O2000\Remarks.doc!'
Автоматическое обновление данных с OLE - документами!
Ссылки на издателей отсутствуют!
Ссылки на подписчиков отсутствуют!
Новые методы объекта Workbook
У объекта Workbook в Excel 2000 появились два новых метода:
Sub ReloadAs(Encoding As MsoEncoding), Sub WebPagePreview() .
Оба метода, так или иначе, связаны с общей тенденцией публикации документов Excel в Интернет. Рабочие книги, публикуемые в Интернет и интранет, хранятся, естественно в формате HTML. При их чтении могут возникнуть проблемы с кодировкой. Метод ReloadAs(Encoding As MsoEncoding) позволяет перезагрузить книгу в формате HTML, используя нужную кодировку, заданную параметром метода, значением которого может быть, например, константа msoEncodingCyrillic . Метод WebPagePreview позволяет перед публикацией книги отобразить ее на дисплее в том виде, как будет выглядеть соответствующая Web-страница, открываемая в интернет для работы с рабочей книгой.
Методы объекта Workbook предназначены, как можно видеть, для выполнения общих операций над документом и по существу не определяют специфических для Excel действий. Чтобы познакомиться со спецификой, следует пойти вглубь иерархии объектов.
События объекта Workbook
Со всеми событиями, которые может обрабатывать объект Workbook , мы уже знакомы. Всего таких событий 20, из них 9 событий связаны непосредственно с самим объектом Workbook , 8 - возникают на страницах рабочей книги и связаны также с объектом Sheet , три события связаны с объектом Window . Я напомню, что при возникновении события сообщение о нем операционная система посылает, как правило, нескольким объектам. Все они, каждый по-своему, могут обрабатывать это событие. Подробно обо всем этом рассказано при рассмотрении событий объекта Application .
Назад Оглавление Вперёд
|
|