Case 다음에 오는 비교대상 값은 여러가지 조건을 조합할 수 있음.

1. 여러개의 값 형태 ->  5,23,4

2. 구간 설정 -> 25 To 100

3. 혼합 -> 1,2,3, To 100,110,112

 

 

* Select Case

  Select Case는 선택문으로서 해당하는 값과 일치하는 값이 있는 경우를 찾는 명령문이다. If- Then 문과 비슷하지만, If문은 참과 거짓을 판단하지만, Select Case문은 참과 거짓이 아닌 값이 일치하는 경우만 찾는다.

 

  문법 구조

Select  Case  test_variable(test_expression)

[Case  expression1      'expression1인 경우

instruction1]     

[Case  expression2      'expression2인 경우

instruction2] 

[Case  expression3      'expression3인 경우

instruction3] 

[Case  Else                   '그 밖의 경우

instruction4] 

End Select

 

 참고)  test_variable(test_expression) : 사용할 변수나 수식(논리식을 사용하지 않음)

          expression : 어떤경우인지 사용할 값이나 범위, 논리식

범위를 표현할 때에는  '값  To  값'으로 표현한다. (예:  10  To 20)

논리식으로 표현할 때에는 논리식으로 표현한다. (예:  Is >= 100)

  여기서 Is는 변수가 아니라 test_variable를 대신하는 예약어이다.

예약어 : VBA에서 사용하기로 약속되어있는 단어

[ ] : 생략가능한 문장 

 

  test_variable의 값을 가지고, 그 값이 expression1에 해당되는 경우에는 instruction1을 수행하고 Selection문이 종료된다.

  test_variable의 값이 expression1에 해당되지 않으면 expression2에 해당되는 보고, 해당되는 경우에는 instruction2를 수행하고 Selection문이 종료된다.

  test_variable의 값이 expression1에도 해당되지 않으면 expression2에도 해당되는지 보고, 해당되지 않으면 expression3에 해당되는지 살펴본다. expression3에 해당되는 경우에는 instruction3을 수행하고 Selection문이 종료된다.

  test_variable의 값이 expression1에도 해당되지 않으면 expression2에도 해당되는지 보고, 해당되지 않으면 expression3에 해당되는지 살펴본다. expression3에 해당되지 않으면 마지막으로 남은 그 밖의 경우(Case Else)인 instruction4를 수행하고 Selection문이 종료된다.

 

  다음 예를 보자.

 

Select Case stu_score

Case 10

MsgBox "LOW"

Case 10

MsgBox "MIDDLE"

Case Else

MsgBox "HIGH"

End Select 

 

  위 코드는 stu_score 변수의 값이 10이면 메세지박스에 'Low'값을 출력하고,

20이면 메세지박스에 'Middle'값을 출력하고,

30이면 메세지박스에 'High'값을 출력한다.

 

    또 다른 예를 보자.

 

Select  Case  count_stu

Case   0   To  10

 MsgBox  "Low"

Case   11   To  30

 MsgBox  "Middle" 

Case   Is > 30

 MsgBox  "High"

End Select

 

  범위에 대한 Select Case 문을 사용할 때에는 각각의 Case가 정렬된 순서로 나열되어야 한다.  위 코드는 count_stu 변수의 값을 보고 만약 그 값이 0~10 사이의 값이면 메세지박스에 'Low'값을 출력하고,

11~30 사이의 값이면 'Middle'값을 출력하고,

30초과의 값이면 'High'값을 출력하는 코드이다.

  세번째 Case문을 다시 살펴보면 논리식이 'Is > 30' 이라고 되어있다. 여기서 Is는 count_stu 변수를 가르키는 예약어이다. 그래서 count_stu >30 이라고 물어보는 것과 같다고 생각하면 된다.

 

 

'컴퓨터관련' 카테고리의 다른 글

Visual Basic recordset, 폼 연습...펌  (0) 2010.11.13
sql hash join...펌  (0) 2010.11.11
DoCmd.OutputTo dbf -> DoCmd.TransferDatabase...펌  (0) 2010.11.09
sql in...펌  (0) 2010.11.08
rs(0)의 의미...펌  (0) 2010.11.08

+ Recent posts