Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Visual Basic и Visual Basic for Applications.doc
Скачиваний:
175
Добавлен:
01.05.2014
Размер:
579.07 Кб
Скачать

4.2. Работа в Excel с помощью vba

4.2.1. Объекты Application и семейство Workbooks

В модели объектов более 100 объектов и семейств. Наиболее часто используемые: Application, Workbook, Workbooks, Worksheet, Worksheets и Range.

Объект Application является исходным элементом любой модели Office. Он представляет все приложение в целом. Свойства и методы дан­ного элемента позволяют установить параметры работы программы, хранить информацию об объекте, используемом в данный момент и др.

Семейство WORKBOOKS содержит объекты WORKBOOK. Элемент WORKBOOK - это объект, являющийся файлом Excel - большинство других объектов хра­нятся в элементе WORKBOOK.

Одним из свойств WORKBOOKS является Count, оно доступно только для чтения и хранит количество объектов WORKBOOK в семействе WORKBOOKS.

Объект Workbook представляет рабочую книгу, свойства которой требу­ется использовать в программе. Свойства объекта Workbook:

1. ActiveSheef содержит ссылку на активный лист в заданной рабо­чей книге, если листа нет, то значение Nothing; только для чтения.

2. Author для чтения или установки имени автора рабочей книги:

Sub Name_Those_Workbooks()

Dim registration_name As String

'По умолчанию имя пользователя равно значению _

'Application.UserName либо имя фирмы Application.OrganizationName

registration_name = InputBox("Введите Ваше имя или название _

фирмы:","Регистрация",default:=Application.UserName)

ThisWorkbook.Author = registration_name

MsgBox "This application has been registered to" & _

ThisWorkbook.Author

End Sub

3. Saved имеет значение True, если в раб.книгу не были внесены изменения с момента последнего сохранения; для чтения и для записи; для закрытия книги, которая редактировалась, либо выдать запрос на ее сохранение можно использовать, например

Workbooks("SalesData").Saved = False

Workbooks("SalesData").Close

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

Основные методы Workbook:

1. Activate активизирует требуемую рабочую книгу: Workbook_object.Activate.

2. Close закрытие раб.книги:

Workbook_object.Close(SaveChages, FileName, RouteWorkbook),

где 1-й параметр не обязателен и позволяет задать сохранение рабочих книг; 3-й параметр для пересылки книги другому пользователю.

3. Save и SaveAs сохранение рабочей книги:

Workbook_object.Save

Workbook_object.SaveAs(FileName, FileFormat,Password, _

WriteResPassword, RearOnlyRecommended, CreateBackup, _

AccessMode, ConflictResolution, AddToMRU, TextCodePage, _

TextVisualLayout),

где FileName имя файла, если не указан путь, то сохраняется в текущей папке;

FileFormat для записи в формате, отличном от формата раб.книги Excel;

CreateBackup при True создается резервная копия;

AccessMode режим доступа к рабочей книге: xlShared - общая книга, xlExclusive - монопольный доступ, xlNoChange - запрет на изменение режима доступа;

ConflictResolution способ разрешения конфликтов при одновременном внесении несколькими пользователями изменений в общие книги; не обязателен, если опущен, то значение xlUserResolution - отображение диалогового окна разрешения конфликтов;

TextCodePage и TextVisualLayout дополнительные;

AddToMRU при True файл, сохраненный по SaveAs, вносится в список ранее открывавшихся файлов.

Для обработки событий Workbook не требуется создавать модуль класса или производить другие специальные действия. События возникают в раб.книге при изменении объекта Workbook или редактировании в ней листа. Для вывода списка событий надо: 1) восстановить или свернуть окно раб.книги (если оно развернуто, то вывод списка невозможен), 2) щелкнуть прав.кнопкой по заголовку окна раб.книги, 3) выполнить ИСХОД­НЫЙ ТЕКСТ - запускается редактор VBA, 4) выбрать имя требуемого собы­тия в правом списке окна модуля.

События Workbook:

1. BeforeClose возникает при закрытии раб.книги до вывода запроса на сохранение изменений. Процедура обработки события:

Private Sub Workbook_BeforeClose(Cancel As Boolean),

где параметр Cancel имеет значение False при возникновении события; если процедура обработки присваивает значение True, то раб.книга не закрывается.

2. BeforePrint возникает перед печатью:

Private Sub Workbook_BeforePrint(Cancel As Boolean),

где параметр Cancel имеет значение False при возникновении события; если процедура обработки присваивает значение True, то отмена печати.

3. BeforeSave возникает перед сохранением рабочей книги:

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolen, _

Cancel As Boolean),

если требуется отобразить диалоговое окно СОХРАНЕНИЕ ДОКУМЕНТА, то присвоить параметру SaveAsUi значение True; если Cancel присвоить True, то сохранение отменяется.

4. Deactivate при потере книгой фокуса.

5. NewSheet при добавлении нового листа:

Private Sub Workbook_NewSheet(ByVal Sh As Object),

где Sh - вновь созданный лист.

6. Open при открытии рабочей книги.

7. SheetActivate при активизации любого рабочего листа книги:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

8. SheetCalculate при перерасчете значений на любом рабочем листе или после вывода измененных данных на диаграмме:

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

9. SheetChange при изменении пользователем или внешней ссылкой содержимого ячейки на рабочем листе (на диаграмма нет):

Private Sub Workbook_SheetChange(ByVal Sh As Object, -

ByVal Source Sh As Object),

где Source указывает на диапазон, ячейки которого изменились; Sh ссылка на объект Worksheet, где находится ячейка.

10. SheetSelectionChange при иэменении выделенного диапазона ячеек:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, - ByVal Target Sh As Object)

где Target выбранный диапазон.