この記事では VBA の log関数 で対数を計算する方法について解説します。
≫ Excelのワークシートで対数を計算する方法については、こちらの記事をご覧ください。
【VBA】Log関数
自然対数は
のように表します。一般に添字
と書きます。ここに
という値をもつ無理数です。
VBA の Log() は引数の自然対数を返します。
引数は 0 を超える数値で指定します。
戻り値はDouble 型(倍精度浮動小数点数型)となります。
'[VBA] log(1)=0を確認
Sub Log_Test_1()
Debug.Print Log(1)
End Sub
'0
定義より、
ネイピア数
'[VBA] log(e)=1を確認
Sub Log_Test_2()
Debug.Print Log(Exp(1))
End Sub
'1
真数条件より、引数に 0 や負数を渡すとエラーとなります。
'log(0)はエラーを返す
Sub Log_Test_3()
Debug.Print Log(0)
End Sub
実行時エラー '5'
プロシージャの呼び出し、または引数が不正です。
'[VBA] log(-1)はエラーを返す
Sub Log_Test_4()
Debug.Print Log(-1)
End Sub
'実行時エラー '5'
'プロシージャの呼び出し、または引数が不正です。
ある数
任意の数値と底を指定して対数を計算する関数を実装してみます。
'[VBA] 任意の底の対数関数
Function Logarithm(x As Double, a As Double)
Logarithm = Log(x) / Log(a)
End Function
'[VBA] log_2(256)=8を確認
Sub Test_Logarithm()
Debug.Print Logarithm(256, 2)
End Sub
'8
【VBA】常用対数の計算方法
たとえば
で計算できます。常用対数を求める Functionプロシージャを定義しておくと便利です。
'[VBA] 常用対数関数
Function Log10(x As Double)
Log10 = Log(x) / Log(10)
End Function
'[VBA] 1000の常用対数が3であることを確認
Sub Test_Log10()
Debug.Print Log10(1000)
End Sub
'3
エクセルや数学に関するコメントをお寄せください