[VBA] Exp関数

[VBA] Exp関数で指数計算を実行する

 VBAExp関数 はネイピア数 $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 の順に指定してください。

コメント

タイトルとURLをコピーしました