関数を定義します。
[ Static ] [ Public | Private ] Function functionName [ ( [ paramList ] ) ] [ As returnType ]
[ statements ]
End Function
Static
オプション。関数のローカル変数の値が、次の関数の呼び出し間で保存されるように指定します。
Public | Private
オプション。Public は、関数が定義されたモジュールがロードされている限り、そのスコープ (モジュールまたはクラス) の外からも参照できるように指定します。Private は、関数が現在のスコープ内でのみ参照できることを意味します。
既定では、モジュールスコープ内の関数は Private です。クラススコープ内の関数の既定は Public です。
functionName
関数の名前。この名前には、関数の戻り値の型を宣言するデータ型接尾辞を追加できます。
paramList
オプション。関数呼び出しで関数に渡すためのパラメータを示す宣言をカンマで区切ったリストです。
各パラメータ宣言の構文は次のとおりです。
[ ByVal ] parameter [ ( ) | List ] [ As type ]
ByVal は、parameter が値渡しされることを意味します。parameter に代入された値は、その値へのポインタではなく、メモリ内の値のローカルコピーです。
parameter () は引数の変数です。parameter List は parameter をリスト変数として識別します。そうでない場合、parameter には LotusScript® で使用できる他の任意のデータ型の変数を指定できます。
As dataType は変数のデータ型を指定します。この節を省略し、parameter にデータ型接尾辞を追加して、スカラーデータ型の変数を宣言できます。この節を省略し、同時に parameter にデータ型接尾辞を追加しない場合 (また、既存の Deftype ステートメントで処理されない場合)、データ型は Variant になります。
パラメータ宣言のリスト全体をカッコで囲みます。
returnType
オプション。関数によって返される値のデータ型です。
returnType には任意のスカラーデータ型、Variant 型、またはクラス名を指定できます。
As returnType を指定しなければ、戻り値の型は関数名のデータ型接尾辞によって決まります。returnType と接尾辞の両方を同時に指定しないでください。エラーとして処理されます。
returnType を省略し、関数名に接尾辞がないときは、Variant 型か Deftype ステートメントで指定された型の値が返されます。
Public キーワードは、クラスのメンバを宣言するときを除いて、アプリケーションオブジェクトのスクリプトに直接記述したり、アプリケーションオブジェクトスクリプトの %Include ファイル内で使用することはできません。Public 宣言は (Globals) で使用してください。
配列、リスト、型のインスタンス、オブジェクトは、引数として値渡しできません。参照渡ししてください。
関数から値を返すには、関数の定義内で functionName に値を代入します。次に示す例を参照してください。
functionName に配列を代入する場合は、関数の本体内で functionName の要素を参照することはできません。このような参照は、関数の再帰呼び出しとみなされます。functionName の要素を参照するには、functionName を Variant 型の変数に代入し、そこで要素に索引を付けます。
関数は値を返しますがサブルーチンは返しません。関数からの戻り値を使用するには、関数の戻り値の型が有効な式の任意の場所に関数呼び出しを置きます。
Function ステートメントで定義された関数によって返された値を使用する必要はありません(組み込み関数によって返された値を使用する必要があります)。 戻り値を使用しない関数を呼び出すには Call ステートメントを使用します。
関数の定義内に別の関数やサブルーチン、プロパティの定義を含めることはできません。
クラスの関数メンバを Static と宣言することはできません。
Exit Function ステートメントを使用して関数を終了できます。