メイン コンテンツをスキップする 補完的コンテンツへスキップ

Sub..end sub

sub..end sub 制御ステートメントは、call ステートメントで呼び出されるサブルーチンを定義します。

構文:  

Sub name [ ( paramlist )] statements end sub

 

引数はサブルーチンにコピーされ、call ステートメントで対応する実パラメータが変数名の場合は、サブルーチンの終了後、コピーして戻されます。

サブルーチンに call ステートメントで渡される実パラメータよりも仮パラメータが多い場合は、余分なパラメータは NULL に初期化され、サブルーチン内でローカル変数として使用できます。

引数:  

引数
引数 説明
name サブルーチンの名前。
paramlist サブルーチンの仮パラメータの変数名のコンマ区切りリスト。これはサブルーチン内の変数として使用できます。
statements 1 つ以上の Qlik Sense スクリプト ステートメントのグループ。

制限事項:  

  • sub ステートメントは制御文であり、セミコロンまたは改行コードで終わっているため、2 つの節 (subend sub) が行をまたぐことはできません。

  • 例えば [if..then] 制御文内の [Sub..end sub]を使用してサブルーチンを定義すると、同じ制御文内からはサブルーチンしか呼び出すことはできません。

例1:  

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

例2: - パラメータ転送

Sub ParTrans (A,B,C)

A=A+1

B=B+1

C=C+1

End Sub

A=1

X=1

C=1

Call ParTrans (A, (X+1)*2)

上記の結果、サブルーチン内でローカルに A は 1、B は 4、C は NULL に初期化されます。

サブルーチンを終了する際、グローバル変数 A は 2 を値として取得します (サブルーチンからコピーして返されます)。2 番目の実パラメータ “(X+1)*2” は変数ではないため、コピーして返されません。最後に、グローバル変数 C はサブルーチン呼び出しの影響を受けません。

詳細を見る

 

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。