Оценить:
 Рейтинг: 3.6

Excel. Трюки и эффекты

Год написания книги
2011
<< 1 ... 17 18 19 20 21 22 23 24 >>
На страницу:
21 из 24
Настройки чтения
Размер шрифта
Высота строк
Поля

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. В качестве примера с помощью этого класса будет реализовано хранение ссылки на объект, а также хранение некоторой информации об объекте.

Рис. 1.3. Назначение имени классу

Свойства класса

Свойства для классов в VBA могут быть реализованы двумя способами. Первый способ – это использование в модуле класса общих переменных-членов (объявленных с атрибутом Public). Добавим таким способом свойство в созданный ранее класс Class1, в котором будет храниться строка с описанием данных, содержащихся в объекте-экземпляре этого класса:

Public strTag As String

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

Для получения значения свойства предназначена функция, объявленная с использованием Property Get:

[Public | Private] [Static] Property Get Имя_свойства ([Аргументы]) _

[As Имя_типа]

[Инструкции]

[Имя_свойства = Выражение]

[Exit Property]

[Инструкции]

[Имя_свойства = Выражение]

End Property

Для присвоения значения свойству, не являющемуся ссылкой на объект, предназначена процедура, объявленная с использованием Property Let:

[Public | Private] [Static] Property Let Имя_свойства ([Аргументы,]Значение)

[Инструкции]

[Exit Property]

[Инструкции]

End Property

Для присвоения значения свойству, являющемуся ссылкой на объект, предназначена процедура, объявленная с использованием Property Set:

[Public | Private] [Static] Property Set Имя_свойства ([Аргументы,]Значение)

[Инструкции]

[Exit Property]
<< 1 ... 17 18 19 20 21 22 23 24 >>
На страницу:
21 из 24