Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA 4 Пишем функцию.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
122.37 Кб
Скачать

Правила написания текста программы

В одной строке пишется один оператор, поэтому не нужны специальные символы «конец оператора».

Оператор может быть очень длинным и продолжаться вправо за край экрана. С таким оператором неудобно работать. В любом месте оператор можно прервать и продолжить на следующей строке. Два символа: пробел и нижнее подчеркивание говорят, что оператор продолжается на следующей строке. Оператор может продолжаться на 32 строки.

Оператор или его продолжение может начинаться с любого места строки. Программа VBA игнорирует ведущие и концевые пробелы.

Обычно в программе одни операторы подчинены другим операторам (входят в состав, образуют тело других операторов). Для лучшей читаемости текста программы принято сдвигать подчиненные операторы вправо на один щелчок табуляции (здесь 4 пробела).

Текст функции начинается с заголовка функции в первой строке, ключевое слово Function, и заканчивается оператором «конец функции» в последней строке, ключевые слова End Function. На экране ключевые слова имеют синий цвет.

Текст комментария начинается с одиночного апострофа ' в любом месте строки; на экране текст комментария имеет зеленый цвет. Программа VBA игнорирует текст комментария.

Оператор Dim <имя_ячейки> создает ячейку в оперативной памяти, цепочку байт, в которой можно хранить данные. Имя ячейки – комбинация букв и цифр (не более 64), начинающаяся с буквы. Ячейку оперативной памяти обычно называют «переменная».

Обратите внимание. Здесь и далее в тексте угловые скобки <…> в операторе обозначают место, где должно быть записано выражение такого типа, как задано в угловых скобках. Например, вместо <имя_ячейки> должно быть записано конкретное имя ячейки: p, s, kw43, …

Конструкция As <тип_ячейки> определяет тип переменной, то есть, сколько байт будет в ячейке, и какие данные будут храниться в ячейке.

Здесь используется переменная типа Double. Это ячейка оперативной памяти длиной 8 байт для хранения вещественного числа. Такие же числа типа Double хранятся в ячейках рабочего листа Excel. Поэтому при использовании функции не будет лишних преобразований данных.

В списке параметров (в скобках в заголовке функции) указан тип входных переменных a, b, c As Double, но нет оператора Dim создания переменных, потому что эти переменные созданы в вызывающей программе.

Имя функции Geron одновременно является ячейкой оперативной памяти типа Double, в которой вычисленная площадь треугольника возвращается в вызывающую программу. Описание типа As Double в конце заголовка функции, стоящее после скобок с параметрами, описывает тип ячейки, которая является именем функции.

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

Geron = <значение>

Оператор присваивания чаще всего используется в программировании. В VBA он обозначается = . Оператор присваивания пересылает значение, стоящее справа от оператора, в ячейку оперативной памяти, стоящую слева.

Запуск функции из ячейки рабочего листа

Выделим любую ячейку рабочего листа и вызовем Мастера функций командой ВставкаФункция…. Написанная функция помещается в категорию Определенные пользователем. Здесь кроме функции Geron могут находиться и другие функции.

Выделяем функцию Geron. В нижней части окна Мастера функций отображено сообщение «Справка недоступна», потому что мы еще не создали описание нашей функции. Щелкаем по кнопке ОК и переходим во второе окно Мастера функций.

В формуле Герона известен ответ, если задан прямоугольный треугольник со сторонами 3, 4, 5 , который удовлетворяет теореме Пифагора. Площадь этого треугольника равна 6, что и видно во втором окне Мастера функций. Нажатие на кнопку ОК переносит результат в ячейку рабочего листа.