VBAで円周率を取得する方法

Excel VBA では円周率を取得するための関数は用意されていませんが、ワークシートで用意されている関数を利用したり VBA で用意されている Atn 関数を使って円周率を取得することができます。ここでは Excel VBA で円周率を取得する方法について解説します。

(Last modified: )

ワークシートで用意されているPI関数を使う

VBA で円周率を取得する方法の 1 つ目はワークシートの関数で円周率を取得するために用意されている PI 関数を使用する方法です。 VBA では円周率を取得する関数はないのですが、ワークシート関数では用意されています。

ワークシートで用意されている関数を実行するには、次のように実行します。

Dim PI As Double

PI = WorksheetFunction.PI()

次の例を見てください。

Dim PI As Double

PI = WorksheetFunction.PI()

Debug.Print Sin(PI/4)  '0.707106781186547
Debug.Print Sin(PI/6)  '0.5 

ワークシートで用意されている PI 関数を使って円周率を取得することができました。

PI 関数について詳しくは「PI関数:円周率を取得する」を参照されてください。

VBAで用意されているAtn関数を使う

VBA で円周率を取得する方法の 2 つ目は VBA で用意されている Atn 関数を使う方法です。アークタンジェント(逆正接)はタンジェントの逆関数です。タンジェントは角度から底辺に対する対辺の比の数値を取得しますが、アークタンジェントは底辺に対する対辺の比の数値から逆に角度(ラジアン単位)を取得します。

次のような直角二等辺三角形でアークタンジェントを取得する場合、 BC と CA の辺の長さは同じなので底辺に対する対辺の比は 1 となり、取得する角度は 45 度( π/4 ) となります。

VBAで用意されているAtn関数を使う(1)

よって次のような式が成り立ちます。

Atn(1) = π / 4

これを利用して π を取得するには次のように記述することができます。

π = Atn(1) * 4

次の例を見てください。

Dim PI As Double

PI = Atn(1) * 4

Debug.Print Sin(PI/4)  '0.707106781186547
Debug.Print Sin(PI/6)  '0.5 

VBA で用意されている Atn 関数を利用して円周率を取得することができました。

-- --

Excel VBA で円周率を取得する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。