アドベントカレンダー 22日目
マクロばかりに目がいくとどうも忘れがちになるというか
こういう使い方をしたい時がないからなのか登場場面が少ないきがしますが
マクロに書いたPublicなFunctionはワークシート関数から使えますよね。
例) BMIを求める関数を実装する
BMIの式は
BMI = 体重 ÷ 身長 ÷ 身長 ですね
これでワークシート内で=BMI(1.7, 60)の
ように記載すると値が返ってきます。
何かしらの公式など、関数化してワークシート内で使いまわすなんてやり方は便利よいですね。
自分の場合、力学系の式を登録して、簡易的なチェックとして使っていたりしましたね。
もちろん、関数の挿入[fx]で確認してみても他の関数と同様に示されます。
ただ・・・
説明がないといまいちそっけないですね。
とういうわけで、ヘルプを追加してみます。
あくまでもマクロを実行することで追加されるのでExcelが開いたら実行されるようにしておく必要があります。
標準モジュールならAuto_Open関数を作りそこから呼び出すようにするか
ThisWorkbookならWorkbook_Open関数から呼び出すようにする必要があります。
マクロばかりに目がいくとどうも忘れがちになるというか
こういう使い方をしたい時がないからなのか登場場面が少ないきがしますが
マクロに書いたPublicなFunctionはワークシート関数から使えますよね。
例) BMIを求める関数を実装する
BMIの式は
BMI = 体重 ÷ 身長 ÷ 身長 ですね
Option Explicit Function BMI(ByVal Height As Double, ByVal Weight As Double) As Double BMI = Weight / Height ^ 2 End Function
これでワークシート内で=BMI(1.7, 60)の
ように記載すると値が返ってきます。
何かしらの公式など、関数化してワークシート内で使いまわすなんてやり方は便利よいですね。
自分の場合、力学系の式を登録して、簡易的なチェックとして使っていたりしましたね。
もちろん、関数の挿入[fx]で確認してみても他の関数と同様に示されます。
ただ・・・
説明がないといまいちそっけないですね。
とういうわけで、ヘルプを追加してみます。
Option Explicit Function BMI(ByVal Height As Double, ByVal Weight As Double) As Double BMI = Weight / Height ^ 2 End Function Sub OwnFunctionHelp() Application.MacroOptions Macro:="BMI", _ Description:="引数は以下の通りです。" & vbLf & "Height:身長[m], Weight:体重[kg]" End SubOwnFunctionHelpを実行すると説明が表示されるようになります。
あくまでもマクロを実行することで追加されるのでExcelが開いたら実行されるようにしておく必要があります。
標準モジュールならAuto_Open関数を作りそこから呼び出すようにするか
ThisWorkbookならWorkbook_Open関数から呼び出すようにする必要があります。
0 件のコメント:
コメントを投稿