Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

Событийные процедуры

Событийные процедуры записываются на процедурном листе, связанном с объектом. Каждый объект имеет свои собственные события.

Чтобы вставить событийную процедуру для объекта Workbook

  • выделите объект ThisWorkbook (Эта книга) в окне проекта;

  • перейдите на лист процедур, нажав клавишу F7. Можно выполнить команду View Code или сделать двойной щелчок на объект ThisWorkbook;

  • на процедурном листе в окне выбора объектов (вверху слева) выберите объект Workbook;

  • в окне выбора событий (вверху справа) выберите событие. Автоматически вставляется процедура со стандартным именем, которое состоит из названия объекта и названия события, разделенных нижним подчеркиванием (_), например, для события Open событийная процедура имеет имя Workbook_Open;

  • запишите текст процедуры.

Пример

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

Private Sub Workbook_NewSheet(ByVal Sh As Object)

Dim s As String

s = InputBox("Enter the sheet's name")

Sh.Name = s ‘переименование нового листа

Sh.Move before:=Sheets(1) ‘лист становится первым в книге

End Sub

При выборе события NewSheet автоматически появляется процедура Workbook_NewSheet с параметром Sh. Значение параметра, являющееся ссылкой на объект – новый лист, передается процедуре во время ее выполнения. Метод Move перемещает вставленный лист. Параметр before этого метода определяет новое месторасположение листа – начало рабочей книги.

Объекты Sheets, WorkSheets и WorkSheet

Коллекция Sheets представляет собой совокупность листов различных типов – рабочих листов (коллекция Worksheets) и листов диаграмм (коллекция Charts). Таким образом, каждый элемент коллекции Sheets является элементом коллекции WorkSheets или коллекции Charts и наоборот, любой элемент коллекции WorkSheets или коллекции Charts принадлежит коллекции Sheets.

Некоторые свойства и методы объектов Sheets, WorkSheets и WorkSheet

Свойства и методы

Примеры и комментарии

Объекты Sheets, WorkSheets

Свойство Count (R/O Long)

MsgBox "Количество рабочих листов в активной книге " & ActiveWorkbook.WorkSheets.Count высвечивает количество рабочих листов в рабочей книге

Метод Add

Sheets.Add, WorkSheets.Add добавляет новый лист заданного типа в рабочую книгу

Объекты Sheets, WorkSheets,Sheet, WorkSheet

Методы Copy, Move

Копирует, перемещает указанные листы или группу листов в новое место Worksheets(1).Move after:=Worksheets(Worksheets.Count) первый лист становится последним

Объекты Sheet, WorkSheet

Метод Activate

WorkSheets("January").Activate активизирует указанный рабочий лист

Метод Delete

ActiveWorkbook.Worksheets(1).Delete удаляет первый рабочий лист

Свойство Name (R/W String)

Возвращает или устанавливает имя листа. WorkSheets(WorkSheets.Count).Name ="LastSheet" переименовывает последний рабочий лист

Объекты WorkSheet

Свойство Columns (R/O)

Возвращает коллекцию столбцов Worksheets(1).Columns(1).Font.Bold = True устанавливает п/ж шрифт для первой колонки первого рабочего листа

Свойство ScrollArea

(R/W String)

Определяет границы интервала, внутри которого возможно перемещение по ячейкам. При установке значения "пустая строка" доступны все ячейки рабочего листа Worksheets(1).ScrollArea = "A1:F10" разрешает доступ только к ячейкам A1:F10

Свойство Shapes (R/O)

Возвращает коллекцию Shapes – коллекцию графических объектов рабочего листа: рисунки, автофигуры и т.д.

ActiveSheet.Shapes(1).AutoShapeType = 21 первый графический объект на активном листе меняет свой тип на "сердечко"

Свойство Rows(R/O)

Возвращает коллекцию строк

Worksheets("Sheet1").Rows(3).Delete удаляет третью строку

Метод Calculate

ActiveWorksheet.Calculate производит вычисления во всех ячейках указанного рабочего лист

Метод CheckSpelling

Используется для проверки правописания с аргуменами и без аргументов ActiveSheet.CheckSpelling ignoreUppercase:= True не проверяет слова, записанные только прописными буквами