Excel LAMBDAでVBAなしの再利用関数を作ってみる

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

本記事はAIを利用して作成した技術解説・実装例です。掲載するコードや手順は一次情報を基に構成していますが、筆者による実機での動作確認は行っていません。環境やバージョンによって動作が異なる場合があります。

発表・テーマ概要

、Microsoft 365やExcel 2024などで利用できるLAMBDA関数を取り上げます。従来、Excelで独自の再利用可能な関数を作成するにはVBAやマクロ、あるいはJavaScriptを使用する必要がありましたが、LAMBDA関数を利用することで、VBAを使わずにセル数式だけでユーザー定義関数のような仕組みを構築できるようになります。一次情報によると、作成した関数はブック全体で利用可能であり、ネイティブのExcel関数と同様の感覚で呼び出せるとされています。

なぜ面白いのか

通常のセル数式では、複雑な計算や頻繁に使うロジックを何度もコピー&ペーストする必要があり、ミスのもとになりやすいという課題がありました。LAMBDA関数が面白いのは、プログラム言語やマクロの有効化を前提とせず、数式の仕組みそのままで独自の関数名を与えて再利用できる点です。非プログラマーであっても、慣れ親しんだExcelの数式を拡張する形で独自の関数ライブラリを作れる点が、実務における大きな可能性を秘めています。

WindowsやOfficeでの使い道

【Windows環境で確認予定】 一次情報によれば、LAMBDA関数はExcel for Microsoft 365(Windows/Mac)やExcel 2024などで利用可能です。VBAがセキュリティポリシーによって制限されている企業環境や、マクロを含めない .xlsx 形式のままブックを共有したい場面で有用です。よく使う文字列操作や計算ロジックを名前定義に登録しておくことで、他のユーザーがマクロの有効化を意識することなく、通常の関数として数式内で呼び出すことができると想定されます。

今回試すこと

今回は、文字列や数値を処理する一般的なロジックを想定し、LAMBDA関数を用いてセル内で試作する手順を確認します。一次情報に示されている手順に沿って、まずは通常の数式としての動作確認を行い、続いてセル内でのLAMBDA関数の定義と即時実行、最終的に名前マネージャーへの登録を見据えた流れを追っていきます。

実験手順

【実機確認前】 一次情報に基づく実験のステップは以下の通りです。

  1. 数式のテスト: LAMBDAに組み込む計算ロジック自体が単体の数式として正しく動作することを確認します。

  2. セル内でのLAMBDA作成: 定義とパラメータの受け渡しをテストするため、セル内で直接LAMBDA関数を記述し、末尾に引数を渡して即時実行します。この際、単に作成するだけでは #CALC! エラーになるため、関数呼び出しを組み合わせる必要があります。

  3. 名前マネージャーへの登録: 動作が確認できたら、Excelの「数式」タブから「名前マネージャー」を開き、分かりやすい名前とコメントを付けてブック全体で再利用できるように登録します。

コードとコマンド

【実機確認前】 一次情報に記載されている、セル内でLAMBDA関数をテストするための基本的な構文およびサンプルコードは以下の通りです。

=LAMBDA([parameter1, parameter2, ...], calculation)(function call)

例えば、数値を引数に受け取り、それに1を加算するシンプルな計算を行う場合は、次のような記述が期待される結果をもたらすと想定されます。

=LAMBDA(number, number + 1)(1)

名前マネージャーの設定手順(Windows環境):

  1. 「数式」タブを選択する。

  2. 「名前マネージャー」をクリックする。

  3. 「新規」を選択し、「名前」「範囲」「コメント」「参照」を入力する。

確認する結果

【実機確認前】

  • =LAMBDA(number, number + 1)(1) をセルに入力して実行した場合、期待される結果として数値の 2 が返されることが一次情報に記載されています。

  • 不適切なパラメータ数(253個を超える場合や、引数の数が一致しない場合)を指定した場合には、 #VALUE! エラーが返される想定です。

  • セル内で呼び出しを行わずにLAMBDA関数を作成した場合、 #CALC! エラーが発生することが確認されています。

分かったこと

一次情報から確認できた範囲として、LAMBDA関数はVBAやマクロを使わずに独自の関数を作成・再利用するための強力な機能であることが分かります。パラメータは最大253個まで指定でき、作成した関数は名前マネージャーを通じてブック内で共有可能です。一方で、本記事の執筆時点では実機での動作確認を行っていないため、実際の入力に対する挙動やエラーハンドリングの詳細については、読者自身の環境で実際に確認してください。

実用上の注意

  • LAMBDA関数の名前やパラメータはExcelの命名規則に従う必要がありますが、パラメータ名にピリオド(.)を含めることはできません。

  • 引数の数が正しくない場合や、上限(253個)を超えた場合は #VALUE! エラーとなります。

  • 再帰的な呼び出しにおいて循環参照が発生した場合、呼び出し回数が多すぎると #NUM! エラーが返される可能性があります。

  • 数式内で Evaluate コマンドを使用した場合、ExcelはLAMBDA関数の結果を即座に返すため、ステップインして内部をデバッグすることはできない点に注意が必要です。

参考情報

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました