# Call

call 控制陳述式會呼叫必須由先前的 sub 陳述式定義的副程式。

語法：

Call name ( [ paramlist ])

引數：

Call 引數

| 引數 | 描述 |
| --- | --- |
| name | 副程式的名稱。 |
| paramlist | 要傳送到副程式的實際參數的逗號分隔清單。清單中的各個項目可能是欄位名稱、變數或任意的運算式。 |

call 陳述式呼叫的副程式必須由指令碼執行期間較早出現的 sub 加以定義。

參數會複製到副程式中，而且如果 call 陳述式中的參數是變數而不是運算式，將在結束副程式時再次複製回參數。

限制：

由於 call 陳述式是控制陳述式，而且結尾是分號或行結尾，因此不可超出行邊界。

範例 1:

`// Example 
 1` `Sub INCR 
 (I,J)`

> `I = I + 
>  1` `Exit Sub 
>  when I < 10` `J = J + 
>  1`

`End Sub` `Call INCR 
 (X,Y)`

範例 2:

`// Example 
 2 - List all QV related files on disk` `sub DoDir 
 (Root)`

> `For Each Ext in 'qvw', 
>  'qvo', 'qvs', 'qvt', 'qvd', 'qvc'`
>
> > `For Each File in filelist 
> >  (Root&'\*.' &Ext)`
> >
> > > ` LOAD   `
> > >
> > > > `'$(File)' as Name, 
> > > >  FileSize( '$(File)' ) as` `Size, FileTime( '$(File)' 
> > > >  ) as FileTime` `autogenerate 1;`
> >
> > `Next File`
>
> `Next Ext` `For Each Dir in dirlist 
>  (Root&'\*' )`
>
> > `Call DoDir (Dir)`
>
> `Next Dir`

`End Sub` `Call 
 DoDir ('C:')`