
文字列として書かれた数式を計算するマクロ
前回は、ユーザー定義関数を利用するためのFunction プロシージャについての説明と、例として税抜き価格を求めるユーザー定義関数と、三角形の面積を求めるユーザー定義関数を紹介しました。
今回は、ユーザー定義関数にもっと慣れていただくために、
文字列を計算するユーザー定義関数と立方根cube rootを計算するユーザー定義関数を作成します。
実務で使う為というより、ユーザー定義関数を作成する方法を理解するためのものになります。
ユーザー定義関数としての真価は、最後に紹介する、「文字列として入力された数値を使って立方根や平方根を求めるケース」となります。
★サンプルファイルは、こちらから 2013マクロ講座42回サンプルデータ


Function CalcString(数式 As String) As Variant
CalcString = Evaluate(数式)
End Function


Function CubeRoot(num As Variant) As Variant
CubeRoot = num ^ (1 / 3)
End Function

Function Root(num As Variant) As Variant
Root = num ^ (1 / 2)
End Function

'セルに文字列として入力された数値から立方根を求めるユーザー関数
Function CubeRootVer2(num As String) As Variant
Dim value As Variant
value = Application.Evaluate(num)
If IsNumeric(value) Then
CubeRootVer2 = value ^ (1 / 3)
Else
CubeRootVer2 = "数値ではありません"
End If
End Function

'セルに文字列として入力された数値から平方根を求めるユーザー関数
Function RootVer2(num As String) As Variant
Dim value As Variant
value = Application.Evaluate(num)
If IsNumeric(value) Then
RootVer2 = value ^ (1 / 2)
Else
RootVer2 = "数値ではありません"
End If
End Function
