# ユーザー定義関数

マニュアル > スクリプトガイド > スクリプトVer2(SC2構文) > # ユーザー定義関数 |

ユーザ定義関数

ユーザー定義関数とは、開発者が独自に作成することができる関数のことです。

ユーザー定義関数はオブジェクト毎に記述することができます。オブジェクトに記述した関数は、メソッドやプロパティと同じように他のオブジェクトから絶対パス参照 又は 相対パス参照によって呼び出して実行する事ができます。

ユーザー定義関数はfunctionキーワードの後に関数名を書き、「( )」の中に引数を「,」（カンマ）区切りで定義します。関数名や引数名は自由に名前が付けられます。そして、「return」キーワードで関数を終了させて、返値を返すことができます。

以下は、ユーザー定義関数の記述例です。

    function Total(a, b)
    {
     return a + b;
    }

この例の場合、関数名は「Total」です。aとbという2つの引数を渡すと、｢a+b｣の計算結果を返値として返します。

ユーザ定義関数の構文

ユーザー定義関数の構文は以下のとおりです。

function FunctionName(<パラメータ1>, <パラメータ2>, …<パラメータn>) { <スクリプト> return <返値>; }

1)パラメータは必要な数だけ指定する事ができます。

2)パラメータが必要ないときは省略可能ですが、関数名の後の「()」は付ける必要があります（「function FunctionName()」などとします）。

3)returnキーワードは関数を終了させて、呼び出し元に対して返値をかえす事ができます。

4)returnの返値は省略することも可能です。返値を省略した場合、関数は「return」の位置で終了します。

5)returnキーワードはスクリプト中、何個でも書くことができます。また、return自体を書かないこともできます。そのような場合、関数は最後までスクリプトを実行した時点で終了します。
例）returnが無い場合

    function SampleFunction()
    {
     //<スクリプト>
    }

例）returnが1つある場合

    function Total(a, b)
    {
        return a + b;
    }

例）returnが複数ある場合

    function ErrMessage(a)
    {
     switch (a)
     {
      case 1: return "Error1";
      case 2: return "Error2";
      case 3: return "Errro3";
      }
      return "Not Found Error code";
    }

6)パラメータの先頭に「&」を付けて記述することにより、パラメータを介して値を返すことができます（参照渡し）。
例）引数に値を返す

    function SampleFunction()
    {
     var Param;
     GetParam(Param);      //Paramには100が返る。
    }

    function GetParam(&vParam)
    {
     vParam = 100;         //引数で渡された変数に値を代入。
    }

| ユーザー関数の再帰呼び出しには対応しておりません。

| 関数名や変数名の一番先頭には数字は使用できません。また、スクリプトで予約されているforやif、オペレータで使用している「+-*/&|=<>!(),」などの文字も使用できません。