# スクリプトからの VBScript 関数の呼び出し

QlikView ドキュメントのマクロ モジュールで定義されている VBScript または JScript 関数をスクリプトから呼び出すことができます。呼び出した関数が標準のスクリプト関数として認識されない場合は、モジュールにカスタム関数があるかどうかがチェックされます。したがって、かなり自由に独自の関数を定義することができます。もちろん、カスタム マクロ関数を使用する場合は、標準の関数を実行する場合より多少速度が低下します。

`rem *************************************************` `rem ***これはモジュールからの VBScript コードです*********` `rem**************************************************` `rem ********* グローバル変数 ********************` `dim flag` `rem *******スクリプトからアクセス可能な関数 *********` `rem ************ 入力ボックスでの折り返し ******************` `function VBin(prompt)` `VBin=inputbox(prompt)` `end function` ` ` `rem ********* グローバル フラグのクリア ********************` `function VBclearFlag()` `flag=0` `end function` `rem ********* 参照が渡されたかどうかをテスト ***********` `function VBrelPos(Ref, Current)` `if Ref=Current then` `VBRelPos="Reference"` `flag=1` `elseif flag=0 then` `VBRelPos="Before "&Ref&" in table"` `else` `VBRelPos="After "&Ref&" in table"` `end if` `end function` `// **************************************************` `// *************これはスクリプトです *****************` `// *************************************************` ` ` `let MaxPop=VBin('Max population in millions :');` `// 制限を問い合わせ` ` ` `let RefCountry=VBin('Reference country :');` ` // 参照を問い合わせ  ` ` ` `let dummy=VBclearFlag(); // グローバル フラグをクリア` ` ` `Load` `Country,recno(),` `Capital,` `"Area(km.sq)",` `"Population(mio)",` `VBrelPos('$(RefCountry)',Country)` `as RelativePos` `from country1.csv` `(ansi, txt, delimiter is ',', embedded labels)` `where "Population(mio)" <= $(MaxPop);`

## パラメータの転送

ロード スクリプトと VBScript の間のパラメータの転送には、次の規則が適用されます。

* 欠けているパラメータは NULL として渡されます。
* 実際の数式が有効な数値と評価された場合は、その数値が渡されます。実際の数式が有効な文字列と評価された場合は、その文字列が渡されます。それ以外の場合は、NULL が渡されます。
* NULL は VT\_EMPTY として渡されます。
* 戻り値は、自然な形式で処理されます。