次の方法で共有


カスタム関数のカスタム列挙型を作成する

Excel オートコンプリート メニューに表示されるカスタム列挙型のメンバー。

カスタム列挙型を使用すると、ユーザーはカスタム関数の Excel オートコンプリート オプションを使用できます。 列挙型のメンバーが数式バーに候補として表示されます。 前のスクリーンショットの惑星は、セット リストを提供するカスタム列挙型の例です。 この記事では、カスタム列挙型を作成し、それらをカスタム関数のパラメーターとして使用する方法について説明します。

カスタム列挙型を定義する

JSDoc タグ @customenumを使用して列挙型を定義します。 対応する JSON プロパティは、カスタム関数メタデータで自動生成されます。 JSDoc タグとカスタム関数の詳細については、「 JSDoc タグの基本」を参照してください。

注:

@customenum JSDoc タグを使用して作成されたカスタム列挙型は、TypeScript でのみサポートされます。 JavaScript ではサポートされていません。 JavaScript 関数でカスタム列挙型を使用するには、独自の JSON メタデータを手動で作成する必要があります。 詳細については、「 JSON メタデータを手動で作成する: 列挙型」を参照してください。

次のコード スニペットは、単純なカスタム列挙型をパラメーターとして定義して使用する方法を示しています。

/** 
 * A custom enum with descriptions and tooltips. 
 * @customenum {string} 
 */
enum PLANETS { 
  /** Mercury is the first planet from the sun. */ 
  mercury = "Mercury", 

  /** Venus is the second planet from the sun. */ 
  venus = "Venus", 

  /** Earth is the third planet from the sun. */ 
  earth = "Earth", 
} 

/** 
 * A sample function that uses the custom enum as a parameter.
 * @customfunction 
 */ 
function getPlanets(value: PLANETS): any { 
  return value; 
} 

カスタム列挙型を複数回使用する

カスタム列挙型は複数の関数で再利用でき、1 つの関数の複数のパラメーターとして使用できます。 関数は、同時に複数の列挙型をパラメーターとして持つこともできます。 列挙型パラメーターは、繰り返しまたは省略可能です。

次のコード サンプルは、 NUMBERS 列挙型と、入力値として列挙型を複数回使用するカスタム関数を示しています。

/**
* Enum of numbers with descriptions and tooltips.
* @customenum {number}
*/ 
enum NUMBERS {
  /** One */
  One = 1,

  /** Two */
  Two = 2,

  /** Three */
  Three = 3, 

  /** Four */
  Four = 4,

  /** Five */
  Five = 5
} 

/**
* Enter multiple numbers from the NUMBERS enum and get the sum.
* @customfunction
* @param input Enter enum numbers.
* @returns
*/
function addNumbers(input: NUMBERS[]): any {
  const sum = input.reduce((acc, num) => acc + num, 0); 
  return "Sum: " + sum; 
}

カスタム列挙型をローカライズする

カスタム列挙型のローカライズは、 カスタム関数のローカライズに似ています。 JSON メタデータを手動で作成し、言語ごとに新しい JSON メタデータ ファイルを作成する必要があります。

列挙型内の name プロパティと tooltip プロパティのみをターゲット言語にローカライズする必要があることに注意してください。 関数本体内で複数の言語を処理する必要がないように、 value プロパティは変更されません。

次の JSON スニペットは、惑星水星のオブジェクト values ローカライズされた中国語を示しています。

"enums": [
    {
        "id": "PLANETS",
        "type": "string",
        "values": [
            {
                "name": "水星", 
                "value": "mercury",
                "tooltip": "水星是距离太阳最近的行星"
            }
        ]
    }
],

下位互換性

カスタム列挙型は下位互換性を提供します。 以前のバージョンの Excel では、カスタム列挙型を使用するパラメーターは、Excel オートコンプリートの一覧に表示されずに標準パラメーターとして機能します。

関連項目