Перейти к содержимому

VBA Excel. Число Пи (значение)

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

  1. Функция Pi рабочего листа
  2. Число Пи через арктангенс
  3. Число Пи через арккосинус
  4. Проверка работы функций
  5. Создание константы myPi

Функция Pi рабочего листа

Функция Pi рабочего листа Excel возвращает значение числа Пи, округленное до 14 знаков после запятой (3,14159265358979). Присвоение этого значения переменной myPi в коде VBA будет выглядеть следующим образом:

myPi = WorksheetFunction.Pi

Число Пи через арктангенс

Как известно из геометрии, tg(π/4)=1. Соответственно, π/4=arctg(1), а π=4arctg(1). Используя последнее выражение и учитывая, что функция арктангенс (Atn) в VBA есть, можно не обращаться к соответствующей функции рабочего листа Excel:

myPi = 4 * Atn(1)

Число Пи через арккосинус

Здесь совсем все просто: cos(π)=-1, отсюда π=arccos(-1). Единственная загвоздка только в том, что функции арккосинус в VBA нет и опять приходится обращаться к функции арккосинус (Acos) рабочего листа Excel:

myPi = WorksheetFunction.Acos(-1)

Проверка работы функций

Скопируйте код в модуль VBA и убедитесь в работоспособности представленных выше функций, возвращающих число Пи. Все функции возвращают значение, округленное до 14 знаков после запятой (3,14159265358979):

Sub Primer1()
Dim myPi As Double
myPi = WorksheetFunction.Pi
  MsgBox myPi
myPi = 4 * Atn(1)
  MsgBox myPi
myPi = WorksheetFunction.Acos(-1)
  MsgBox myPi
End Sub

Создание константы myPi

Если при написании кода VBA Excel часто приходится использовать число Пи, его можно объявить как константу. Объявление следует разместить в разделе Declarations и константа будет доступна во всех процедурах этого модуля:

Const myPi As Double = 3.14159265358979
'Проверяем ее работоспособность
Sub Primer2()
  MsgBox myPi
End Sub
Объявление константы myPi
Объявление константы myPi

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

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.