VBAを使用してカスタムExcel関数を作成する方法

Microsoft Excelには、最大限の作業を行うためにあらかじめ定義された多くの関数が含まれています。ほとんどの場合、組み込み関数以外の関数は必要ありません。しかし、あらかじめ定義されたExcel関数では提供されていない機能が必要な場合はどうでしょうか?

Microsoft Excelを使用すると、VBAを使用してカスタムExcel関数またはユーザー定義関数を作成できます。必要な機能を使用してカスタムExcel関数を作成できます。これらは、関数名の後に「=」を使用して、通常のExcel関数としてExcelシートでアクセスできます。VBAを使用してカスタムExcel関数を作成する手順を説明します。

カスタムExcel関数を作成する

VBAを使用してカスタムExcel関数を作成するため、「開発者」タブを最初に有効にする必要があります。デフォルトでは有効になっていませんが、有効にすることができます。Excelシートを開き、Excelボタンをクリックしてから「Excelのオプション」をクリックします。次に、「リボンの開発者タブを表示する」の横にあるボックスをオンにします。

次に、Visual Basic Editorを開くには、[開発者]タブをタップして[Visual Basic]アイコンをクリックしてVisual Basic Editorを起動します。

キーボードショートカット「Alt + F11」を使用してVisual Basic Editorを起動することもできます。このキーボードショートカットを使用する場合は、開発者タブを有効にする必要はありません。

これで、カスタムExcel関数を作成するためのすべてが設定されました。「Microsoft Excelオブジェクト」を右クリックし、「挿入」をクリックしてから、「モジュール」をクリックします。

コードを書く場所であるプレーンウィンドウが開きます。

コードを作成する前に、カスタムExcel関数を作成するために従う必要のあるサンプル構文を理解する必要があります。構文は次のとおりです。

Function myFunction (arguments) return type
myFunction = some_calculation
End Function

通常のプログラミング言語にあるような「Return」ステートメントはありません。

開いたばかりのプレーンウィンドウにコードを挿入します。たとえば、関数に提供された値の「8%」を計算する「FeesCalculate」関数を作成します。値は小数点以下にもなる可能性があるため、戻り型を「Double」として使用しました。私のコードがVBAの構文に従っていることがわかります。

次に、Excelブックを保存します。マクロを使用してExcelシートを使用するには、「.xslm」の拡張子で保存します。この拡張子で保存しないと、エラーが発生します。

それだけです!

これで、ユーザー定義関数を「=」を使用して通常のExcel関数としてExcelシートで使用できます。セルの「=」の入力を開始すると、作成した関数と他の組み込み関数が表示されます。

次の例を参照してください。

Excelカスタム関数はMicrosoft Excelの環境を変更できないため、制限があります。

カスタムExcel関数の制限

カスタムExcel関数では次のことはできません。

  • スプレッドシート上のセルの挿入、書式設定、または削除。
  • 別のセルの値を変更する。
  • ブックに名前を追加する。
  • ブックにシートの名前を変更、削除、移動、または追加する。

他にも多くの制限がありますが、その一部を記載しました。

これらは、カスタムExcel関数を作成するための簡単な手順です。