Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the google-analytics-for-wordpress domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/xs182025/consulting-campus.site/public_html/wp-includes/functions.php on line 6114
【エクセル】ユーザー定義のカスタム関数を追加する【簡単】 | CONSULTING CAMPUS

【エクセル】ユーザー定義のカスタム関数を追加する【簡単】

add-user-created-custom-formula-in-excel エクセル
この記事は約4分で読めます。
スポンサーリンク

本記事では、ユーザーが自分で定義した関数を追加して使用する方法をご紹介します。

エクセルでよく使う関数や複雑な処理を自分で登録して使いたいという場合に短くて分かりやすい数式を作れるようになります。数式の可読性が向上しますのでぜひご使用ください。

ユーザー定義のカスタム関数を追加して実現したいことは下記のとおりです。

スポンサーリンク

結論

主に下記の2つの方法で数式をカスタム関数として追加することができます。

  1. 名前付き範囲とLAMBDA関数を使用してカスタム関数を登録する
  2. VBA(マクロ)で、自身が行いたい処理を行う関数を記述する

VBAは少しハードルが高いですが、1. LAMBDA関数を使用する方法は誰でも簡単に実装できます。それぞれ以下で解説します。

名前付き範囲とLAMBDA関数を使用してカスタム関数を登録する

まず、LAMBDA関数を使用するパターンを解説します。LAMBDA関数自体に馴染みがなく使用経験が無い方もいらっしゃいますので、ざっくりとした使用方法を解説します。

例えば、下記のように税抜き金額に1.1を掛けて税込み金額を計算する処理を例とします。

通常の数式では=A2*1.1のように行っていますが、以下のステップでこちらを関数化します。

ステップ =A2*1.1などの元の数式の中で、入力値が変わる部分と変わらない部分に分けます。A2は他のセルでも計算するために変える必要がありますが、1.1は固定の入力値と判断できます

ステップ 次に、変える必要がある値(ここではA2)について、任意の名前に変更します。ここでは税抜き金額としています。'シングルクオーテーションを先頭につけると、式を文字列として編集できます

ステップ ステップ2で登録した表記をもとに、LAMBDA関数を先頭に付け足し、先ほどの名前を1つ目の引数として入力します。複数値がある場合は=LAMBDA(値1, 値2..., 元の数式)の形式で入力してください

=A2 * 1.1    '元の関数
>> =税抜き金額 * 1.1    '可変の入力値を任意の文字列に置換する
>> =LAMBDA(税抜き金額, 税抜き金額*1.1)    'LAMBDA関数と可変の入力値に設定した文字列を追加する

ステップ 最後にこちらの文字列を任意の名前で名前付き範囲にユーザー定義関数として追加します (名前付き範囲は[数式]タブ → [名前の定義]もしくはCtrl + F3Alt + N (新規作成)より追加可能です)

LAMBDA関数は旧バージョンのエクセルでは使用できません。#NAME?エラーが発生する場合は、次のVBAで追加する方法をお試しください。


以上が名前付き範囲とLAMBDA関数を使用してカスタム関数を登録する方法の解説となります。より詳しい使用方法や構文にご興味がある方は下記の公式ドキュメントをご確認ください。

VBA(マクロ)で、カスタム関数を追加する

次に、ExcelのVBAでユーザーが定義したカスタム関数を追加する方法を解説します。こちらの処理は一定のVBA知識を必要とするため、慣れていない方は無理に関数化せず数式をそのまま使用してください。

こちらでは先ほど同様に税抜き金額に1.1を掛けて税込み金額を計算する処理を例とします。

ステップ [開発]タブ → [Visual Basic]もしくはAlt + F11でビジュアルエディタを開く

select-visual-editor

ステップ [ビジュアルエディタ上][挿入][標準モジュール]もしくはAlt + IMで新しいモジュールを作成

select-new-module

ステップ 下記のコードを入力し、ワークシートに戻る

Function AddTaxByVBA(Value As Double)
    'Witten by consulting-campus.site
    '
    '
    '
    AddTaxByVBA = Value * 1.1    '関数名 = 数式 でカスタム関数を追加する
End Function

こちらで、下記のように新しい関数が追加されていることがわかります。

この関数を含むファイルを保存する場合は、マクロファイル(*.xlsmファイル)として保存する必要があるためご注意ください。

おわりに

こちらがエクセルでユーザー定義のカスタム関数をワークブックに追加する方法になります。

コードの可読性が高まることで拡張性・正確性が増しますのでぜひご使用ください。

ご精読いただきありがとうございました。

コメント

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