【VBA】Exp関数で指数計算を実行する
VBA の Exp関数 はネイピア数 $e=2.718…$ のべき乗を返します。
戻り値は double 型(倍精度浮動小数点数型)となります。
引数に 1 を指定すると、$e^1=e$ を計算するので、自然対数の底(ネイピア数)を得ることができます。
'[VBA] ネイピア数の表示 Sub Napier() Dim f As Double Debug.Print Exp(1) End Sub '2.71828 ...
以下のマクロを実行すると、ワークシートの A 列と B 列に指数関数 $y=e^x$ のグラフを描くためのデータが得られます。
'[VBA] y=exp(x)の連続データを作成 Sub Exp_Plot() Dim i As Double i = -4 Range("A1") = "x" Range("B1") = "exp(x)" Range("A2").Select Do While i <= 4.01 ActiveCell.Value = i ActiveCell.Offset(, 1).Value = Exp(i) ActiveCell.Offset(1).Select i = i + 0.2 Loop End Sub
A 列と B 列を選んで [挿入] ⇒ [散布図] と順に選択すると、指数関数のグラフがプロットされます。
指数関数の中に一次式を入れるファンクションマクロ(ユーザー定義関数)を載せておきます。
'[VBA] y=exp(ax+b) Function EFX(x As Double, a As Double, b As Double) As Double EFX = Exp(a * x + b) End Function
ワークシートで
=EFX(数値1,数値2,数値3)
と入力すれば $\exp(ax+b)$ の値を返します。引数は x, a, b の順に指定してください。
エクセルや数学に関するコメントをお寄せください