Visual Basic Script의 문법을 설명하기 앞서, vbs에서는 마땅한 print 함수, 출력 함수가 없습니다.
그래서 선언으로 대신 설명하고, 만약 print를 하고 싶다면 msgbox(Message Box)로 대신 출력해도 됩니다.
msgbox("내용", 버튼종류, "제목") 과 같은 방법으로 작성하면 됩니다.
01. 변수
변수 선언하는 법
- 대소문자 구분 안 함(변수 외에도 여러가지 선언 시 SELECT CASE 나 select case나 같이 적용됩니다.)
- 문자로 시작해야 문자, 숫자, 언더바( _ )만 가능
- 255자 이내로 선언
- dim 사용 혹은 사용하지 않고 사용 가능
파이썬과 VBS의 차이점
Python :
Value01 = "String01" Value02 = 100 Value03 = list()
Visual Basic Script :
Value01 = "String" Value02 = 100 Dim Value03(2) 'REM dim Value03(2)는 Value03(0) ~ Value03(2)까지 총 세 변수입니다.
원래는 dim을 이용하여 변수를 설정하는 것이 정석이지만, 사용하지 않고 일반적으로 사용할 수 있다고 합니다.
또한, dim은 보통 배열을 선언할 때 사용합니다.
배열 선언을 다시 알아보도록 해봅시다.
일반적인 배열은 다음과 같습니다.
'REM dim array(2) 는 정적으로 배열을 선언한 것입니다. Dim array(2) array(0) = 0 array(1) = 1 array(2) = 2 'REM dim arr()는 동적으로 배열을 선언한 것입니다. Dim arr() 'REM 이렇게 배열을 다시 선언하면 배열에 있던 값이 모두 삭제된 상태로 다시 선언 됩니다. ReDim arr(2) 'REM 이렇게 배열을 다시 선언하면 배열에 있던 값은 모두 유지된 채로 다시 선언 됩니다. ReDim Preserve arr(2)
참고로 REM은 Remark라고 하여 주석처리와 같습니다.
02. 연산자
비교 연산자
연산자 |
설명 |
= |
같다 |
<> |
같지 않다 |
< |
작다 |
> |
크다 |
<= |
작거나 같다 |
>= |
크거나 같다 |
is |
두 변수의 객체가 같다 |
논리 연산자
연산자 |
설명 |
not |
참일 경우 거짓, 거짓일 경우 참 |
and |
둘 다 참일 경우만 참 |
or |
둘 중의 하나라도 참이면 참 |
xor |
서로 다를 경우만 참 |
eqv |
서로 같을 경우만 참 |
산술 연산자
연산자 |
설명 |
^ |
자수 |
+ |
덧셈 |
- |
뺄셈 |
* |
곱셈 |
/ |
나눗셈 |
mod |
나머지 |
\ |
정수 나눗셈 |
& |
문자열 연결 |
03. 조건문
select case 문
이 select case문은 C언어나 JAVA와 같은 고급언어의 switch case문과 동일합니다.
사용방법도 거의 동일합니다. Python도 같이 비교해보고 싶어서 같이 비교해보도록 하겠습니다.
파이썬과 C와 VBS의 차이점
Python :
switch_map{ "apple":1, "banana":2, "tomato":3 } print switch_map['apple'] print switch_map['banana']
C :
switch(num) { case 1: printf("num01"); break; case 2: printf("num02"); break; default: printf("not num01 ~ num02"); break; }
Visual Basic Script :
Select Case number Case 1 name = "First" Case 2 name = "Second" Case 3 name = "Last" End Select
if 문
if문은 아주 간단한 형태로 되어 있습니다.
하지만 시작 부분과 끝부분은 지정해줘야 함이 Python과는 다르고, 형태도 마치 C의 전처리기와 비슷한 형태로 되어 있습니다.
파이썬과 C와 VBS의 차이점
Python :
if number == 0: print "a" elif number == 1: print "b" else: print "else"
C :
if(number == 0) { printf("a"); } else if(number == 1) { printf("b"); } else { printf("else"); }
Visual Basic Script :
If number = 1 Then name = "a" ElseIf number = 2 Then name = "b" Else name = "c" End If
04. 반복문
반복문은 두 가지로 나뉩니다.
do loop문과 for문으로 구분되는데, do loop는 do while과 동일합니다.
그리고 for문은 굉장히 차이가 있습니다.
do loop문
Python :
# Python에서는 do while은 없습니다. # while은 있습니다. while(1): print "a" if count == 100: break count += 1 while True: print "b" if count == 100: break count += 1
C :
do { printf("a"); count ++; }while(count < 100) while(count < 100) { printf("b"); count++; }
Visual Basic Script :
Do While count < 100 'REM 100보다 작으면 계속해서 실행합니다. count = count + 1 Loop Do Until count > 100 'REM 100보다 커질 때까지 계속해서 실행합니다. count = count + 1 Loop Do 'REM 실행 코드 Loop
do loop는 이렇게 세 가지로 구분되어 있습니다.
이제 for문을 살펴보도록 합시다.
for 문
Python :
for i in range(10): print i #0 1 2 3 4 5 6 7 8 9 for i in range(3, 10): print i #3 4 5 6 7 8 9 a = ['a','b','c','d','e'] for i in a: print i #a b c d e
C :
int i = 0; for(i=0;i<10;i++) { printf(" %d",i); }
Visual Basic Script :
For i = 0 To 10 (step num) 'REM step num은 증가할 값이며 음수로도 지정 가능합니다. 만약 생략할 시 1씩 증가하도록 되어 있습니다. num = num + 1 Next For number As double = 2 To 0 step -0.25 [실행 코드] Next For index As integer = 1 To 5 [실행 코드] Next
05. 함수 호출
함수 호출은 Visual Basic Script에서는 두 가지로 구분되어 있습니다.
서브함수와 함수가 있습니다. 서브루틴, 함수 두 가지로 구분하기도 합니다.
그렇다면 이 두 가지를 구분해보도록 하겠습니다.
여기서는 Visual Basic Script 위주로 설명해보겠습니다.
서브루틴
Sub subname(num) num = num + 1 End Sub Call subname(3) 'REM 다른 방법의 sub루틴 선언================= Sub ConvertTemp() temp = InputBox("화씨 온도를 입력하십시오.", 1) MsgBox "섭씨 " & Celsius(temp) & "도 입니다." End Sub
함수
Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function