Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

Microsoft Excelには、日常業務の大部分をこなしてくれる多数の組み込み関数が標準で搭載されています。ほとんどの場合、これらの内蔵関数だけで十分ですが、既存のExcel関数では実現できない機能が必要になることもあるでしょう。

そんなときに役立つのが、VBAを使って作成できるカスタムExcel関数(ユーザー定義関数)です。自分が必要とする機能を持った関数を自由に作成でき、ワークシート上では通常のExcel関数と同じように「=」に関数名を続けて入力するだけで呼び出せます。この記事では、VBAを使ってカスタムExcel関数を作成する具体的な手順を解説します。

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

1. 「開発」タブを有効にする

VBAでカスタム関数を作成するには、まず「開発」タブを表示させる必要があります。初期状態では無効になっているため、以下の手順で有効化しましょう。

Excelを開き、「ファイル」→「オプション」(旧バージョンではOfficeボタン→「Excelのオプション」)を選択し、「リボンに開発タブを表示する」にチェックを入れます。

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

2. Visual Basic Editorを起動する

「開発」タブをクリックし、「Visual Basic」アイコンを選択すると、Visual Basic Editor(VBE)が起動します。

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

なお、キーボードショートカットの「Alt + F11」でも同じエディターを起動できます。このショートカットを使えば、「開発」タブを有効にしなくても作業を始められるので便利です。

3. 標準モジュールを挿入する

準備が整ったら、プロジェクトエクスプローラーの「Microsoft Excel Objects」を右クリックし、「挿入」→「標準モジュール」を選択します。

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

白いコード入力ウィンドウが開き、ここに関数のコードを記述していきます。

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

4. 関数のコードを記述する

コードを書く前に、カスタム関数を作成する際の基本構文を確認しておきましょう。

Function myFunction(引数) As 戻り値の型
myFunction = 計算式
End Function

一般的なプログラミング言語にあるような「Return」ステートメントは存在しません。代わりに、関数名そのものに計算結果を代入することで値を返す点に注意してください。

それでは、開いたウィンドウに実際のコードを入力してみましょう。ここでは例として、引数として渡された値の「8%」を計算して返す関数「FeesCalculate」を作成します。結果が小数になる可能性があるため、戻り値の型は「Double」を使用しています。コードはVBAの構文に従って記述します。

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

5. マクロ有効ブックとして保存する

コードが完成したら、Excelブックを保存します。このとき、必ず拡張子「.xlsm」(マクロ有効ブック)形式で保存してください。通常の形式で保存するとマクロが保持されず、エラーが発生します。

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

これで準備は完了です!

6. ワークシートで関数を使用する

作成したユーザー定義関数は、ワークシート上で通常のExcel関数と同じように「=」を使って呼び出せます。セルに「=」を入力し始めると、作成した関数が組み込み関数と一緒に候補として表示されます。

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

以下の使用例をご覧ください:

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法

カスタムExcel関数の制限事項

カスタムExcel関数は、Microsoft Excelの環境自体を変更することができないため、以下のような操作は行えません。

  • シート上のセルの挿入・書式設定・削除
  • 他のセルの値の変更
  • ブックへの名前の追加
  • シートの名前変更・削除・移動・追加

これ以外にもさまざまな制限があります。カスタム関数はあくまで「値を計算して返す」ことに特化した機能だと理解しておきましょう。

以上が、VBAを使ってカスタムExcel関数を作成するための基本的な手順です。ぜひ参考にして、日々の業務を効率化してください。

VBAでカスタムExcel関数(ユーザー定義関数)を作成する方法
  1. Excelでカスタムフィルターを実行する方法|5つの実践テクニックを徹底解説

    大量のデータが入力されたExcelシートは、そのままでは扱いにくいものです。しかし、自分の目的に合わせてデータを柔軟に絞り込むことができれば、作業効率は格段に向上します。本記事では、Excelでカスタムフィルターを実行するための具体的な方法を、5つのアプローチに分けて詳しく解説します。 練習用ワークブックのダウンロード 本記事の手順を試すための無料練習用Excelファイルは、こちらからダウンロードできます。 Excelでカスタムフィルターを実行する5つの方法 ここからは、Excel標準のコマンド機能やマクロなどを活用して、データを自由に絞り込む方法を順番に見ていきましょう。 上記は、今回

  2. Excelのフォーム機能を使ってデータベースを簡単に作成する方法【手順解説】

    Excelでデータベースを作成したい場面は多くあります。従来のようにセルに一つずつ入力する代わりに、Excelにはデータ入力を効率化できる「フォーム」機能が用意されています。本記事では、フォームを使ってExcelでデータベースを作成する方法を、ステップバイステップでわかりやすく解説します。あわせて、フォーム操作に関する押さえておきたいポイントもご紹介します。 Excelのデータ入力フォームとは? 通常、Excelではセルに1件ずつデータを入力していきます。この方法では、特に大規模なデータベースを作成する際に入力作業が煩雑になりがちです。そんなときに活躍するのがデータ入力フォームです。フォームを