Тут ви знайдете деякі відносно прості користувацькі функції таблиці Excel VBA, які також дуже корисні. Ці функції називаються функціями-оболонками, оскільки вони складаються з коду, обгорнутого навколо внутрішніх елементів VBA. Іншими словами, вони дозволяють використовувати функції VBA у формулах робочого аркуша.
Функція User()
' Повертає ім'я поточного користувача
Користувач = Application.UserName
Кінцева функція
Ця функція, по суті, дозволяє вашим формулам отримати доступ до властивості UserName об’єкта Application.
Функція NumberFormat
Ця функція просто відображає числовий формат для комірки. Це може бути корисно, якщо вам потрібно переконатися, що група комірок має однаковий числовий формат.
Функція NumberFormat(Cell)
' Повертає числовий формат клітинки
NumberFormat = Cell(1).NumberFormat
Кінцева функція
Помітили використання клітинки (1)? Якщо в якості аргументу використовується багатокомпонентний діапазон, використовується лише перша клітинка.
Ви можете легко написати подібні функції, які повертають колір тексту клітинки, колір фону, шрифт тощо.
Функція ExtractElement
Ця функція обгортки повертає підрядок із текстового рядка, який містить кілька елементів, розділених символом роздільника. Наприклад, ця формула повертає cow, який є третім елементом у рядку, який використовує пробіл як роздільник. Аргументами, звичайно, можуть бути посилання на клітинки.
=ExtractElement("собака кінь корова кіт", 3, " ")
Ось код, який є оболонкою для функції Split у VBA:
Функція ExtractElement(Txt, n, вер)
' Повертає n-ий елемент текстового рядка, де
Елементи ' відокремлюються заданим символом роздільника
ExtractElement = Split(Application.Trim(Txt), вер)(n - 1)
Кінцева функція
На зображенні нижче показано функцію ExtractElement, яка використовується у формулах робочого аркуша. Стовпець A містить текстовий рядок, стовпець B містить номер елемента, який потрібно витягти, а стовпець C містить роздільник (комірки, які здаються порожніми, містять пробіл).
Використання функції ExtractElement для повернення елемента з рядка.
Функція SayIt
Ця проста функція є оболонкою для методу Speak об’єкта Application.Speech. Він використовує синтезований голос, щоб «вимовляти» аргумент.
Функція SayIt(txt)
' Промовляє аргумент
Application.Speech.Speak txt, True
Кінцева функція
Ось приклад:
=IF(C10>10000,SayIt("Занадто бюджет"),"OK")
Формула перевіряє клітинку C10. Якщо значення більше 10 000, функція промовляє текст: «Перевищено бюджету». Якщо значення менше 10 000, функція відображає текст OK (і нічого не говорить).
Використовуйте помірно. Якщо ви використовуєте цю функцію кілька разів, це може бути дуже заплутаним. Крім того, пам’ятайте, що ця функція оцінюється щоразу під час обчислення робочого аркуша, тому голос може дуже дратувати, якщо ви вносите багато змін. Ця функція, ймовірно, більше підходить для розважальних цілей.
Функція IsLike
Оператор Like у VBA – це дуже гнучкий спосіб порівняння текстових рядків. Перевірте це в довідковій системі VBA. Ця функція надає цю силу формулам вашого робочого аркуша:
Функція IsLike (текст, шаблон)
' Повертає true, якщо перший аргумент схожий на другий
IsLike = текст, як шаблон
Кінцева функція