User Define Function으로 함수를 만들고, 함수를 호출할 때는 Call 으로 한다.
Function 함수 만들기 기본 예제 사용법...
두 값을 받아 출력하는 함수.
Function sayHello(name, age)
msgbox( name & " is " & age & " years old.")
End Function
Call sayHello("Tutorials point", 7)
* Return 값이 있는 함수
선언한 함수명 그 자체는 Return시 자기 이름 자체에 연산결과를 리턴한다.
Function Adder(a, b)
result = a + b
' 함수 내에서 연산된 값을 출력
msgbox( " output is " & result & " years old.")
' 연산결과인 result값을 함수값 자체로 return 시킴
Adder = result
End Function
dim x,y
x = 1
y = 2
' Return된 함수 Adder에 x, y 값을 넣어서 출력해봄
dim outputVal
outputVal = Adder(x,y)
msgbox( " output is " & outputVal & " years old.")
코드 작동 순서. (Function은 선언만 된거지 호출 전까지 실행은 되지 않는다)
1. dim x, y 변수 및 값 대입
2. Adder() 함수가 호출되었으며, 값 x와 y가 대입되었다.
3. Adder(a, b) 함수에 a=x , b=y 값이 입력되었으며 함수의 연산이 시작된다.
4. 그리고 msgbox에 우측과 같이 값이 띄어진다.
5. 함수명이었던 Adder는 값 3을 return받아 갖고 있게되고, 그 값을 ouputVal 이라는 변수에 넣어 주었다.
6. 그리고 그 결과가 출력된다.
(VBscript 각종 내장 함수들)
https://www.w3schools.com/asp/asp_ref_vbscript_functions.asp
Sub-Procedures are similar to functions but there are few differences.
Sub루틴은 함수와 유사하지만 아래 차이점이 있다.
- Sub-procedures DONOT Return a value while functions may or may not return a value.
Sub루틴은 Return값이 없다.
- Sub-procedures Can be called without call keyword.
Sub루틴은 Call 명령 없이 호출 가능하다
- Sub-procedures are always enclosed within Sub and End Sub statements.
Sub루틴은 항상 Sub과 End Sub 사이에 구문이 있다.
Sub루틴 예제
Sub sayHello()
msgbox("Hello there")
End Sub
' call없이 이름만 아래와 같이 쓰면 실행 된다.
' 만약 function이라면 call sayhello() 이런식으로 해야 한다.
sayHello()
아래를 참고하면 좋다.