文字列として書かれた数式を計算するマクロ

文字列を計算するユーザー定義関数

前回は、ユーザー定義関数を利用するためのFunction プロシージャについての説明と、例として税抜き価格を求めるユーザー定義関数と、三角形の面積を求めるユーザー定義関数を紹介しました。

今回は、ユーザー定義関数にもっと慣れていただくために、
文字列を計算するユーザー定義関数立方根cube rootを計算するユーザー定義関数を作成します。 (サンプルファイルは、こちらから 2013マクロ講座42回サンプルデータ

文字列を計算するユーザー定義関数

ユーザ定義関数を作るには、VBEエディターを起動し、Functionプロシージャの構文にそってコードを入力します。
ユーザー定義関数
次の例では、文字列としてセルに式を書いています。
文字列なので通常は、Excelで計算することができませんが、ユーザー定義関数を使えば計算できます。
文字列を計算するユーザー定義関数
コードは、次のようになります。 VBAのコード部分には、Evaluate メソッドを使用しています。
Function CalcString(数式 As String) As Variant
    CalcString = Evaluate(数式)
End Function
    
文字列を計算するユーザー定義関数2
Evaluate メソッドは、テキスト形式の式を評価し、結果を返します。

立方根cube rootを計算するユーザー定義関数

ユーザ定義関数のサンプルマクロとして、今度は、立方根を計算するユーザー定義関数を作ります。
立方根は自分では計算するのが大変ですね。
Excelなら簡単に計算してくれますが、さらに関数があればとても便利です。
コードは
Function CubeRoot(num As Variant) As Variant
    CubeRoot = num ^ (1 / 3)
End Function
    
スポンサーリンク
スポンサーリンク

作成したユーザー定義関数をセルに入力します。
=CubeRoot(C1)とすると、
答えが出ます。
立方根を計算するユーザー定義関数
コード中にある、「^」(キャレット・ハット)は、あまり見かけない記号かもしれません。
べき算を演算子で表す時に、^ を使います。(キーボードの「へ」です)
平方根を求めるなら、次のようにします。
Function Root(num As Variant) As Variant
    Root = num ^ (1 / 2)
End Function    
    
立方根を計算するユーザー定義関数2
ちなみに、べき算をするにはPOWER関数を使います。
POWER関数書式
POWER (数値 , 指数)
立方根を計算するユーザー定義関数3

今日の講義は以上です。お疲れ様でした。
ユーザー定義関数 関連ページ

スポンサーリンク
スポンサーリンク