ONLYOFFICEマクロのカスタム関数の紹介

2024年07月10日著者:Denis

ONLYOFFICE Docs 8.1にカスタム関数を紹介できることを嬉しく思います。この新機能は、ONLYOFFICEスプレッドシートエディタでのマクロの使い勝手を大幅に向上させます。

Introducing custom functions for ONLYOFFICE macros

カスタム関数について

様々なパラメータや計算式を計算するためのカスタム関数を挿入できる機能です。これにより、特定の計算を実行する特定の関数を追加し、マクロコードで使用することができます。

ここでは、特定の条件に基づいて2つの数値の和を計算するカスタム関数の例を示します。

Introducing custom functions for ONLYOFFICE macros

マクロコードでのこの関数の使い方は次のとおりです。

Introducing custom functions for ONLYOFFICE macros

そして最終的な結果は以下のとおりです。

Introducing custom functions for ONLYOFFICE macros

どこにあるのか:表計算エディタ > プラグイン > マクロ > カスタム関数

その他の例

カスタム関数の例をさらに見てみましょう:

  • 幾何平均
    幾何平均は、乗算を含むデータセットや数桁にまたがるデータセットに有用な中心傾向の尺度です。N個の数の積のN乗根として計算されます。

GM=(∏i=1nxi)n1

JavaScriptを使って幾何平均のカスタム関数を実装してみましょう。Math.sqrtメソッドを利用します。

(function()
{
   /**
     * Function that calculates the geometric mean of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The geometric mean of the two numbers.
    */
    function gm(num1, num2) {
        return Math.sqrt(num1 * num2);
    }
    Api.AddCustomFunction(gm);
})();

ご覧のように、Api.AddCustomFunctionメソッドを使用してgm関数を追加し、マクロスコープで実行可能にしました。

次に、この関数をマクロ コードで呼び出します。

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=GM(16, 36)");
})();
  • 調和平均
    調和平均は、率や比率を含むデータセットに有用な中心傾向の尺度です。データ値が速度(時間あたりの距離)や密度(体積あたりの質量)のような単位に関連して定義されている場合に特に適しています。

H=∑i=1n​xi​1​n​

以下はカスタム関数の実装です。

(function()
{
    /**
     * Function that calculates the harmonic mean of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The harmonic mean of the two numbers.
    */
    function hm(num1, num2) {
        return 2 / ((1 / num1) + (1 / num2));
    }
    Api.AddCustomFunction(hm);
})();

そしてマクロの実装です。

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=HM(16, 36)");
})();
  • 二乗平均平方根
    二乗平均平方根(RMS)は、変化する量の大きさの統計的尺度です。値が正または負である可能性があり、符号に関係なく全体の大きさを測定したい場合に特に役立ちます。

RMS=n1​∑i=1n​xi2​​

このカスタム関数を構築するために、再びMath.sqrtメソッドを使用しますが、パラメータは異なります:

(function()
{
    /**
     * Function that calculates the root mean square (RMS) of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The root mean square (RMS) of the two numbers.
    */
    function rms(num1, num2) {
        return Math.sqrt((num1 ** 2 + num2 ** 2) / 2);
    }
    Api.AddCustomFunction(rms);
})();

そして、マクロ・コードでその関数を呼び出します。

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=RMS(5, 8)");
})();

では、これらのカスタム関数を実際に使ってみましょう!

私たちは、この新しく追加された機能があなたのツールキットの貴重な資産となり、皆さまのニーズに合わせたカスタム機能を作成する能力であなたのワークフローを合理化することを願っています。ONLYOFFICEでは、革新的なツールや機能を実装することで、お客様に優れた能力を提供することを第一の目標としています。ご質問やご提案がございましたら、ご遠慮なくご連絡ください

ONLYOFFICEの無料アカウントを登録する

オンラインでドキュメント、スプレッドシート、スライド、フォーム、PDFファイルの閲覧、編集、共同作業