Excelは、ワークシート上での演算を支援するために、様々なワークシート関数を標準で備えます。基本的な数学演算から、文字列操作、財務計算、日付/時刻操作、条件分岐、統計、簡易なデータベース処理までを、ごくシンプルな数式で実現できます。

 ところが、より個別の業務に特化した演算では、標準の関数だけでは対応できない状況も出てきます。もちろん、複数の関数を組み合わせたり、計算過程を一時的に別のセルやワークシートに退避させて演算を重ねることで、目的の値を得ることはできるかもしれません。しかし、式が複雑になれば誤りの基となりますし、そもそも再利用には不向きです。

 そのようなケースでは、自前でワークシート関数を作成するのがお勧めです(図1)。業務固有のロジックを封じ込め、ユーザー間での共有もしやすくなります。

図1●オリジナルのTriangle関数を定義して使用した例。独自の機能を備えた関数を作って数式で利用できる
図1●オリジナルのTriangle関数を定義して使用した例。独自の機能を備えた関数を作って数式で利用できる
[画像のクリックで拡大表示]

ユーザー定義関数の基本

 ユーザー定義関数は、標準モジュールの中にFunctionモジュールとして定義するのが基本です。標準モジュールを作成するには、Visual Basic Editor(VBE)のメニューから「挿入」→「標準モジュール」を選びます。

 リスト1では、モジュールに対して「Triangle」という関数を追加しています。Triangle関数は、引数として「底辺」「高さ」を受け取り、三角形の面積を求める、簡単なFunctionプロシージャです。引数の名前を日本語にしているのは、実際に使う時、関数ウィザードにその名前がそのまま表示されるためです。できるだけ設定すべき値が直感的に理解できるような名前を付けてください。

リスト1●ユーザー定義のTriangle関数
リスト1●ユーザー定義のTriangle関数
[画像のクリックで拡大表示]