ユーザー定義関数の作り方比較 ~ LAMBDA 関数 vs VBA

はじめに

この記事には2つのやり方を試してみて気がついた違いについてだけ書いてあります。

(他のいろんなサイトで書かれているため)具体的なやり方は書いてありませんので、あらかじめご了承ください。

Excel でセル【B4】に入力された金額とセル【C4】に入力された税率情報を元に消費税を計算する、

=ZEI(B4,C4)

のような関数を作るとき、以前は VBA でユーザー定義関数を作っていましたが、昨年 Excel 365版 で使えるようになった LAMBDA 関数を使ってもこのようなユーザー定義関数を作ることができるとのことなので、試してみました。

LAMBDA 関数を使うと、マクロ有効ブックとして保存する必要もなく、たしかにお手軽にできます。

ただし、関数を入力するときの使い勝手がイマイチなので、VBA で楽に作れる人なら LAMBDA 関数は要らないかな、って個人的には思いました。

関数の入力画面比較

LAMBDA 関数で作った入力画面はひとつの入力欄に B4, C4 と入力するやり方になります。このとき、カンマ , を手入力する必要があります。それに対して、VBA で作った場合はカンマの入力が不要で、入力欄に「金額」「税率」とわかりやすく表示されて、計算過程も確認できます。

ユーザー定義関数の作り方比較 ~ LAMBDA 関数 vs VBA

でもよく考えてみると、請求書などを作る場合、いちど作ってしまえば数式をいじったり入力したりすることはほとんどなくなって、上記の画面を使うこともないんですね。

VBA で作ったときのようなちょっとじゃまくさい下図に示すセキュリティ警告のメッセージが表示されませんので、ほとんどのケースでは LAMBDA 関数で作るのがかんたんでいいのかもしれません。

セキュリティ警告

そうなると、以下のように使い分けるのがいいのかなぁ…。

LAMBDA 関数を使いたいケース

請求書テンプレートのように関数の存在を意識せずにデータ入力だけ行う場合
  ↓
ちょっと待てよ、それってユーザー定義関数使う意味ある?
  ↓
まぁ、税率(法律)が変わったときに対応しやすいメリットはあるか。
  ↓
対応しやすさからいくと、数式を把握・編集しやすく、コメントも残せる VBA に軍配が上がるな。

VBA を使いたいケース

作った関数をいろいろな場所で数式作成に使いたい場合

対馬

あれこれ考えてみた結果、私はいままで通り VBA を使おうという結論になりました。

サイト運営者プロフィール

対馬 俊彦
対馬 俊彦魚沼情報サービス (新潟県南魚沼市)
【日本全国対応】WordPress のサイト制作、設定、カスタマイズ、トラブルでお悩み、お困りの方、お手伝いいたします。

Lightning / VK Blocks / VK Filter Search のサポート、カスタマイズを得意としています。

遠方からのご依頼の場合、打ち合わせ・サポートを Zoom や電子メール・電話などを併用して行わせていただきます。

オンラインレッスン形式でのホームページ制作サポートも行っています。お客様ご自身でホームページを制作・運用する上でうまくいかない部分をサポートいたします。設定やカスタマイズを手伝ってもらいたい、同時に便利な使い方や設定方法、カスタマイズのやり方も知ることができたら...という方にご好評いただいています。

デザイナー様、制作業者様のサイト制作のお手伝いも数多く行っています。難しい部分のコーディング ( PHP / CSS / jQuery ) をやってほしい、いま人手が足りない等、お仕事の依頼をお待ちしています。

ご要望をうかがった上で費用見積り(無料)を提示させていただきますので、お気軽にお問い合わせください。

メールでのお問い合わせはこちら

Lighting テーマ使用

WordPress サイト開設

スターターパック

  • デザイン済みパーツを組み合わせることで価格納期を大幅削減
  • プロが作ったクオリティが高いホームページ
  • サポート付き・ご自分でかんたんに情報発信できます