Excel. Трюки и эффекты - страница 41

Шрифт
Интервал


Ниже приведен пример функции с обработчиком ошибок (она пытается записать текст в файл на гибком диске А:):

Function dhWriteToFloppy(strText As String) As Boolean

' Включение обработчика ошибок

On Error GoTo ErrHandler

' Выполнение операций с дискетой

Open «A:\Text.txt» For Output As 1

Write #1, strText

Close 1

' Действия выполнены успешно

dhWriteToFloppy = True

ExitFunc:

' Выход из функции до обработчика ошибок

Exit Function

ErrHandler:

' Закрытие файла, если его все-таки удалось открыть

Close 1

Dim strErrMessage As String

' Идентификация ошибки и формирование текста сообщения

Select Case Err.Number

Case 71

strErrMessage = «Нет диска в дисководе»

Case 70

strErrMessage = «Диск защищен от записи»

Case 61

strErrMessage = «Нет места на диске»

Case Else

strErrMessage = Err.Description

End Select

' Отображение сообщения об ошибке

MsgBox strErrMessage, vbExclamation, «Ошибка»

' Продолжение выполнения программы

dhWriteToFloppy = False

Resume ExitFunc

End Function

Если запись удается, то функция возвращает значение True. Если возникает ошибка, то выдается соответствующее сообщение, после чего функция возвращает значение False. На примере функции dhWriteToFloppy следует заметить, что при нормальном выполнении программы (без возникновения ошибок) обработчик ошибок выполняться не должен, что достигается выходом из функции до обработчика с помощью инструкции Exit Function.

Классы в VBA

Язык программирования VBA является объектно-ориентированным, хотя и не поддерживает наследование и полиморфизм. VBA-программист может работать с встроенными классами, а также создавать и использовать свои собственные классы.

Создание класса на VBA

Создание класса на VBA отличается от других языков программирования (таких как C++), в которых описание классов во многом аналогично описанию структур.

В VBA для каждого класса в проект должен быть добавлен отдельный модуль, в который помещается код, реализующий работу класса, – модуль класса. Добавление нового модуля класса осуществляется с помощью команды меню Insert → Class Module (Вставить → Модуль класса) редактора Visual Basic. Имя модулю класса присваивается с помощью окна Properties (Свойства), которое показано на рис. 1.3.

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