試しにもう一つ標準モジュールを作成してみてください。
複数の標準モジュールを作成すると、役割ごとにユーザー定義関数を分類できるので、とても便利です。
また標準モジュール名は、連番で自動的に付けられます。もちろん自由に変えることもできます。
標準モジュールの名前を変更するには、プロジェクトエクスプローラで、対象となる標準モジュールを選択し、プロパティで「オブジェクト名」を変更します。
でも今回は名前を変更せずに、そのままにしておいてください。
これまで標準モジュールに作成したユーザー定義関数を利用するには、以下のように呼び出しました。
=calcGankin(1000,0.5)
でも正確には、次のように書きます。
=Module1.calcGankin(1000,0.5)
この二つの違いは、関数名の前に「標準モジュール名.」があるかどうかだけです。
calcGankin()という関数は、一つしか無いので、標準モジュール名を省略できたわけです。
実は標準モジュールが複数ある場合は、同じ名前のユーザー定義関数を作成できます。
まったく同じ関数名で、異なった処理を行ない、戻り値を返すことも可能です。
そうなると関数名だけでは、どちらの関数を指しているかわかりません。そこで必ず標準モジュール名から指定して、区別する必要があります。
同じ関数名を作らなければ、標準モジュール名を省略しても大丈夫です。
Excelの既存の関数と同じ名前も避けたほうが無難です。
でもあえて既存の関数名と同じにして、使いやすいように独自の関数をVBAで定義する手もあります。
例えば COUNT() という関数は既にありますが、標準モジュールを使って、独自に定義することが可能です。そんな時は、もちろん標準モジュールから指定します。
また不要になった標準モジュールは、削除(解放)することができます。
削除したい標準モジュールをマウスで右クリックし、コンテキストメニューから、「Module の解放」を選択します。
するとModuleをエクスポートするかどうかのメッセージが表示されるので、「いいえ」を選択します。
【ワンポイント】
標準モジュールを解放する時に、「はい」を選択すると、ファイルとしてエクスポートすることが出来ます。
エクスポートしたファイルは、別のExcelにインポートすることが可能です。
あなたが作成した標準モジュールを、他の人にも利用させてあげたい時に便利です。