Добрый день, уважаемые читатели блога! Продолжаем серию уроков по Microsoft Excel и сегодня мы отойдём от привычного создания макросов, рассмотрения приёмов, различных тонкостей.
Поговорим о пользовательских функциях, то есть о функциях, которые может создавать сам пользователь, оперируя переменными Excel.
Перед нами стоит задача — отобразить текст в ячейке (произвольный) в обратном порядке. Пример: «Привет!», — в соседней ячейке появится: «!тевирП».
В таком случае можно использовать макрос, но количество действий, его (макроса) постоянный вызов не улучшат, а затруднят работу с таблицей.
Воспользуемся возможностью создания своих функций. Благо для этого нам подойдёт алгоритм создания макроса.
Добавляем новый модуль в наш документ:
- Вкладка «Разработчик», блок кнопок «Код», кнопка «Visual Basic»;
- Далее «Insert» — > «Module».
Добавим следующий текст в наш модуль:
Function dhReverseText(strText As String) As String
Dim i As Integer
For i = Len(strText) To 1 Step -1
dhReverseText = dhReverseText & Mid(strText, i, 1)
Next i
End Function
Разберём где у нас что:
- «Function dhReverseText(strText As String) As String» — название функции и объявление её типом строка;
- «Dim i As Integer» — объявление переменной i;
- «For i = Len(strText) To 1 Step -1» — для каждой переменной i типа строка устанавливаем обратный порядок расположения символов (Len — возвращает количество символов в ячейке);
- «dhReverseText = dhReverseText & Mid(strText, i, 1)» — указываем функции, что двигаться нужно от конца к началу;
- «Next i» — обработка следующего символа.
Прелестью такого подхода является работа с функцией, мы можем вводить её как простую формулу.
Результат будет такой.
Мы создали первую собственную функцию!
Вам также может понравиться статья — Вставка гиперссылок на листы таблицы.