[VBA] Log関数

[VBA] Log関数

 自然対数は y = ex の逆関数であり、

 y = logex = lnx

によって定義されます。ここに e はネイピア数(自然対数の底)で

 e = 2.7182818 ......

という値をもつ無理数です。

 VBA の Log(数値) は数値の自然対数を返します。
 引数は 0 を超える数値で指定します。
 戻り値はDouble 型(倍精度浮動小数点数型)となります。

Log で自然対数を計算します

 任意の数値を InputBox から入力し、その自然対数を得るマクロを載せておきます。

 Sub 自然対数()
  Dim x As Double, ln As Double
  x = InputBox("数値を入力してください")
  If x < 0 Then
   MsgBox ("真数条件により 0 以下の数を指定できません")
  Else
   ln = Log(x)
   MsgBox (ln)
  End If
 End Sub

 マクロを実行すると値を入力するように促されます。
 入力した値によって、次のような形で表示されます。

 [入力値:負の数] 真数条件により 0 以下の数を指定できません
 [入力値:正の数] 入力値の自然対数

 InputBox に「 1 」と入力するとメッセージボックスに「 0 」と表示されます。
 

常用対数を求めます

 ある数 a を底とする対数値は「底の変換公式」によって求めることができます:

logax = logex / logea

 たとえば x の常用対数を得たいときは

log10x = logex / loge10

を計算させます。以下に常用対数を求めるマクロを載せておきます。

 Sub 常用対数()
  Dim x As Double, lg As Double
  x = InputBox("数値を入力してください")
  If x < 0 Then
   MsgBox ("真数条件により 0 以下の数を指定できません")
  Else
   lg = log(x) / log(10)
   MsgBox (lg)
  End If
 End Sub

 InputBox に「 10 」と入力すると「 1 」、「 100 」と入力すると「 2 」がメッセージボックスに表示されます。

 ⇒ VBA 関数辞典トップページ

コメントをどうぞ

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください