У цій статті я приведу основні дії, необхідні для створення власних формул або призначених для користувача функцій (UDF), використовуваних в електронній таблиці Excel. Відразу варто зробити застереження, що всі призначені для користувача формули зберігаються в окремих програмних модулях Excel і працюють тільки в межах конкретного файлу. Щоб використовувати раніше створені формули в інших файлах необхідно імпортувати в ці файли раніше розроблений Вами програмний модуль. Але, про це пізніше. Зараз розглянемо процес створення самого модуля формул.
Встановіть прапорець навпроти відповідної опції ( «Відображати вкладку Розробник ...»):
Тепер на вашій стрічці інструментів з'явилася потрібна нам вкладка:
Ця вкладка дає можливість працювати з макросами і призначеним для користувача кодом, що, власне, нам і потрібно. Натисніть на кнопку «Показати код» (View code):
На лівій панелі з'явиться наш новий програмний модуль, в якому ми будемо прописувати призначені для користувача формули (функції). За замовчуванням модуль називається «модуль1» (Module 1). Клацніть по ньому двічі.
Тепер приступимо до написання самої користувальницької функції. Напишіть в модулі наступний код:
Public Function МОЯФОРМУЛА (a As Range, b As Range, c As Range)
МОЯФОРМУЛА = (a.Value + b.Value) * c.Value
End Function
Наша функція буде виробляти прості арифметичні операції додавання і множення з нашими змінними a. b і c. які будуть представлені трьома осередками в таблиці.
Тепер наша формула готова до роботи. Модуль, який ми тільки що створили і зберегли прив'язаний тільки до конкретної книзі, тому будьте уважні при використанні декількох книг Excel одночасно. Бували випадки, коли програмний модуль починав працювати некоректно навіть в файлі, до якого він був прив'язаний, після відкриття файлу з альтернативним призначеним для користувача програмним модулем. Некоректність роботи полягає в тому, що навіть при наявності необхідного програмного модуля, всі призначені для користувача формули в документі перестають працювати. Подібна проблема вирішується створенням нового документа Excel з новим модулем - в який необхідно скопіювати текст вашої функції (ВАЖЛИВО. Копіюється тільки текст, експортування програмного модуля в новий документ не допомагає). Така проблема викликає певні незручності і зустрічається не у всіх, але все ж, щоб запобігти появі подібних проблем і плутанини між призначеними для користувача модулями - настійно рекомендується відкривати одночасно тільки ОДИН файл з одними функціями. Повторюся, що у більшості користувачів ця проблема не виникає і причини її виникнення залежать від рівня безпеки і рівня доступу користувача в системі.
Перевіряємо роботу нашої формули:
Створений програмний модуль можна експортувати (зберегти на диску) і підтягнути з іншого Excel файлу (імпортувати). Це досить зручно якщо створені Вами формули знадобляться Вам при роботі з іншими книгами, а саме - Вам не доведеться переписувати функції заново.