LOTUSSCRIPT 言語


関数を定義する
関数を定義するときは、関数の先頭部、およびアプリケーションがその関数を呼び出したときに実行されるステートメント一式を定義します。

関数を定義するための構文は、次のとおりです。

[ Public | Private ] [ Static ] Function functionName [ ( parameters ) ] [ As dataType ]


構成要素説明
Public、Private関数をモジュールレベルで宣言する場合、Public を使うと、関数が定義されているモジュールがロードされている限り、アプリケーションはそのモジュールの外部で関数を参照できます。Private を使うと、関数はそれが定義されているモジュールの中でだけ有効です。ユーザー定義クラスの定義内で関数を宣言する場合、Public は関数がクラス定義の外でも有効であることを意味します。Private は、関数がクラス定義の内側でだけ有効であることを意味します。既定では、モジュールレベルで定義された関数は Private で、クラス内で定義された関数は Public です
Static関数内で定義される変数は、既定で静的であると宣言します。静的変数は、それが定義されたモジュールがロードされている間は、関数の 1 つの呼び出しから次の呼び出しまでの間、その値が (消滅するのではなく) 保持されます
functionName関数の名前で、後ろに LotusScript のデータ型の接尾辞 (%、&、!、#、@、および $) を付けられます。これらの接尾辞によって、関数の戻り値のデータ型が決まります。関数名にデータ型の接尾辞を付けられるのは、関数の宣言時に As dataType 節を含めない場合だけです
parameterList関数の正式なパラメータをカンマで区切りカッコで囲んだリスト (パラメータが存在する場合) です(リストは空にすることもできます)。このリストは、関数が呼び出されたときに、関数に渡される変数を宣言します。リストの各メンバの形式は、次のとおりです。

[ByVal] paramName [() | List] [As dataType]

ByVal は、paramName が値渡しされることを意味します。paramName に代入された値は、その値へのポインタではなく、メモリ内の値のローカルコピーです。ByVal は省略可能です。

paramName() は引数の変数です。

List は paramName がリスト変数であることを示します。List の指定がなければ、paramName は LotusScript がサポートする任意のデータ型の変数にできます。配列、リスト、オブジェクト参照、ユーザー定義のデータ型の構造体は、値渡しすることはできません。

As dataType は変数のデータ型を指定します。この節を省略して、データ型の接尾辞を使って変数をスカラーデータ型の 1 つとして宣言することもできます。この節を省略したときに、paramName がデータ型の接尾辞で終わっていない場合 (および paramName が既存の Deftype ステートメントでカバーされていない場合)、データ型は Variant 型です

As dataType関数の戻り値のデータ型を指定します。関数は、スカラー値、Variant 型、またはオブジェクト参照を返せます。この節を含める場合、functionName の後ろにデータ型の接尾辞を付けることはできません。この節を省略したときに、functionName の後ろにデータ型の接尾辞が付いていない場合 (および functionName が既存の Deftype ステートメントでカバーされていない場合)、データ型は Variant 型です

関数を宣言するLotusScript 4.0 以前のリリースでは、関数は参照される前に宣言しておく必要がある場合がありました。これは LotusScript 4.0 で不要になりました。参照に先立って LotusScript 関数を宣言しておくことはできますが、それは無視されます。
プロパティの宣言の構文は次のとおりです。

Declare [ Public | Private ] [ Static ] Function functionName
[
( parameterList ) ] [ As dataType ]

関連項目