# 스크립트에서 VBScript 함수 호출

QlikView 문서의 매크로 모듈에 정의된 VBScript 또는 JScript 함수를 스크립트에서 호출할 수 있습니다. 호출된 함수가 표준 스크립트 함수로 인식되지 않는 경우 사용자 지정 함수가 모듈 내에 있는지 확인하는 검사가 수행됩니다. 이는 사용자 지정 함수를 매우 자유롭게 정의할 수 있도록 해줍니다. 물론 사용자 지정 매크로 함수는 표준 함수를 실행할 때보다 약간 느립니다.

`rem *************************************************` `rem ***THIS IS VBSCRIPT CODE FROM THE MODULE*********` `rem *************************************************` `rem ********* Global variables ********************` `dim flag` `rem *******functions accessible from script *********` `rem ************ wrap for input box ******************` `function VBin(prompt)` `VBin=inputbox(prompt)` `end function` ` ` `rem ************ clear global flag ******************` `function VBclearFlag()` `flag=0` `end function` `rem ********* test if reference has passed ***********` `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` `// **************************************************` `// *************THIS IS THE SCRIPT *****************` `// *************************************************` ` ` `let MaxPop=VBin('Max population in millions :');` `// Ask limit` ` ` `let RefCountry=VBin('Reference country :');` ` // Ask ref.  ` ` ` `let dummy=VBclearFlag(); // Clears the global flag` ` ` `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로 전달됩니다.
* 반환 값은 자연적인 방법으로 처리됩니다.