ユーザー定義関数で文字列を計算する
マクロ講座43回


文字列として書かれた数式を計算するマクロ
文字列を計算するユーザー定義関数
前回は、ユーザー定義関数を利用するためのFunction プロシージャについての説明と、例として税抜き価格を求めるユーザー定義関数と、三角形の面積を求めるユーザー定義関数を紹介しました。
今回は、ユーザー定義関数にもっと慣れていただくために、
文字列を計算するユーザー定義関数と立方根cube rootを計算するユーザー定義関数を作成します。
(サンプルファイルは、こちらから 2013マクロ講座42回サンプルデータ)
文字列を計算するユーザー定義関数
ユーザ定義関数を作るには、VBEエディターを起動し、Functionプロシージャの構文にそってコードを入力します。


次の例では、文字列としてセルに式を書いています。
文字列なので通常は、Excelで計算することができませんが、ユーザー定義関数を使えば計算できます。

文字列なので通常は、Excelで計算することができませんが、ユーザー定義関数を使えば計算できます。

コードは、次のようになります。
VBAのコード部分には、Evaluate メソッドを使用しています。

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

Evaluate メソッドは、テキスト形式の式を評価し、結果を返します。
立方根cube rootを計算するユーザー定義関数
ユーザ定義関数のサンプルマクロとして、今度は、立方根を計算するユーザー定義関数を作ります。
立方根は自分では計算するのが大変ですね。
Excelなら簡単に計算してくれますが、さらに関数があればとても便利です。
立方根は自分では計算するのが大変ですね。
Excelなら簡単に計算してくれますが、さらに関数があればとても便利です。
コードは
Function CubeRoot(num As Variant) As Variant CubeRoot = num ^ (1 / 3) End Function
スポンサーリンク
スポンサーリンク
作成したユーザー定義関数をセルに入力します。
=CubeRoot(C1)とすると、
答えが出ます。

=CubeRoot(C1)とすると、
答えが出ます。

コード中にある、「^」(キャレット・ハット)は、あまり見かけない記号かもしれません。
べき算を演算子で表す時に、^ を使います。(キーボードの「へ」です)
べき算を演算子で表す時に、^ を使います。(キーボードの「へ」です)
平方根を求めるなら、次のようにします。

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

ちなみに、べき算をするにはPOWER関数を使います。
POWER関数書式
POWER (数値 , 指数)

POWER関数書式
POWER (数値 , 指数)

今日の講義は以上です。お疲れ様でした。