Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
объектная модель Excel.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Пользовательские функции

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

Function Sq(x As Double) As Double

Sq = x ^ 2

End Function

Вот, собственно говоря, и все, пользовательская функция создана. По умолчанию она попадает в раздел Определенные пользователем списка Категория окна Мастер функций. Найдем, например, квадрат значения 2,5. Для этого:

  1. Выберите ячейку А2.

  2. Введите число 2,5 в ячейку А2.

  3. Выберите ячейку В2, в которой найдем значение функции.

  4. Выберите команду Вставка►Функция.

  5. В первом окне Мастера функций в списке Категория выберите Опреде­ленные пользователем, а в списке Выберите функцию укажите Sq. Нажмите кнопку ОК.

  6. Во втором окне Мастера функций в поле х введите ссылку на ячейку А2 и нажмите кнопку ОК.

Математические функции

При создании функций пользователя полезно знать, какие встроенные математические функции имеются в VBA. На самом деле таких функций совсем не много:

  • Abs (number) — абсолютная величина числа;

  • Atn(number) —арктангенс;

  • Cos(number) — косинус;

  • Exp (number) — экспонента, т. е. результат возведения основания натурального логарифма в указанную степень;

  • Log (number) — натуральный логарифм;

  • Rnd(number) — случайное число из интервала [0; 1);

  • Sgn(number) — знак числа;

  • Sin(number) — синус;

  • Sqr (number) — квадратный корень из числа;

  • Tan(number) — тангенс;

  • Fix (number), Int (number) — обе функции Int и Fix отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями Int и Fix состоит в том, что для отрицательного значения параметра number функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, a Fix — ближайшее отрицательное целое число, большее либо равное указанному.

Надстройки

При создании функции или макроса, достаточно часто используемых, их рекомендуется разместить в файле надстройки, т. е. в файлах с расширением xla. Основным преимуществом подобной операции является то, что настройки позволяют использовать функции в любой рабочей книге без ее спецификации. Например, если функция Sq расположена в книге FunCollection.xls, то в другой рабочей книге на нее надо ссылаться следующим образом

=FunCollection.xlsl!Sq(Al)

в то время как, если эта функция расположена в надстройке, то на нее можно ссылаться только по имени

= Sq(Al)

Для создания надстройки:

  1. Расположите функции в модуле рабочей книги.

  2. В редакторе VBA выберите команду Tools ► VBAProject Properties. На вкладке Protection окна VBAProject - Project Properties установите флажок Lock project for viewing и в поля Password и Confirm password введите и подтвердите пароль. Нажмите кнопку ОК. Теперь без знания пароля никто не сможет просматривать ваш код и вносить в него изменения.

  3. Выберете команду Файл ► Сохранить как и в появившемся окне Сохранение документа в списке Тип файла выберите Надстройка Microsoft Excel. В поле Имя файла укажите имя файла, а в списке Папка специфицируйте каталог расположения надстройки. Нажмите кнопку Сохранить. Рабочая книга будет сохранена как XLA-файл.

Установить надстройку можно следующим образом:

  1. Выберите команду Сервис ► Надстройка.

  2. В появившемся диалоговом окне Надстройка при помощи кнопки Обзор добавьте ссылку на искомый XLA-файл и нажмите кнопку ОК.

Распространять приложения, использующие надстройки, конечно, надо вместе с соответствующими XLA-файлами.