제어 명령어
VBA 명령 중 제어 명령어에는 IF와 Select가 있는데 명령의 형식은 다음과 같다
형식1
If 조건 Then
조건이 참일 때 수행할 내용
End If
형식2
If 조건 Then 참일 때 수행할 내용
형식3
If 조건 Then
조건이 참일 때 수행할 내용
Else
조건이 거짓일때 수행할 내용
End If
if 다음의 조건은 SQL 명령의 조건 설정이나 IIF() 함수에서 조건을 정해주는 것과 비슷한 면이 많다. 조건이 참일 때 Then 다음을 수행하고 거짓이면 Else 다음을 수행한다. 참 또는 거짓일 때 적어준는 부분에서 또 If 명령을 사용해도 된다.
사용예
If 점수>=90 Then 등급=”A”
If 점수>=90 then
등급 = “A”
End If
위의 두 가지 예는 같다. 즉, Then 바로 뒤에 내용을 적으면 End If는 생각하는데 그 대신 한 문장만 적을 수 있다. 참일 때 수행할 문장이 여러 개이면 Then 다음에 적지 말고 행(row)을 바꾸어 적고 마지막 행에는 End If를 적도록 한다.
select 명령의 형식은 다음과 같다
Select Case 변수/식
Case 조건1(또는 값1) - 조건 1에 해당할 경우
수행할 내용
Case 조건2(또는 값) – 조건 2에 해당할 경우
수행할 내용
Case 조건3(또는 값)- 조건 3에 해당할 경우
수행할 내용
Case Else – 위의 어느 조건에도 해당하지 않을 경우 수행할 내용
End Select
End If
Select 명령은 다중 IF 대신에 사용하면 편리하다. 그러니까 IF 속에 또 IF를 사용하고 그 속에 또 IF를 사용하는 경우이다. 이런 경우는 종종 있을 수 있다. 예를 들어 성적처리할 때 점수가 90이상이면 ‘A’, 80이상이면 ‘B’, 70이상이면 ‘C’, 60이상이면 ‘D’, 60미만이면 ‘F’를 구하는 경우이다.
사용예
Select Case 평균
Case 80 to 100
a =”A”
Case 70 to 79
a =”B”
Case 60 to 69
a =”C”
Case 0 to 59
a =”F”
Case Else
MsgBox “잘못된 자료입니다..”
End Select
평균(이것은 필드이거나 변수이다.) 값이 80이상 100이하이면 변수 a에 “A”를 저장한다.70에서 79사이이면 변수 a에 “B”를 저장한다. Else는 100을 초과한 값이거나 0 미만의 값에 해당하므로 이는 잘못된 값이 되는 셈이다.
Select Case 평균
Case >= 80
a= “A”
Case >= 70
a= “B”
Case >= 60
a= “C”
Case < 60
a= “F”
End Select
만일 평균의 ㄱ밧이 80이상이면 a에 “A”를 저장하고 다음 조건은 검사하지 않고 바로 Select 다음 문장으로 빠져나간다. 그러므로 위의 경우와 같다. 문제가 된다면 실수로 평균이 100이상 되어도 a에 “A”가 저장된다는 거이다.
a=”C”
Select Case 코드
Case 2,5,7
a=”A”
Case 3,4,8
a=”B”
End Select
코드(필드이거나 변수이다.) 값이 2,5,7 세가지중 한가지에 해당하면 변수 adp “A”를 저장하고 코드값이 3,6,8에 해당하면 변수 a에 “B”를 저장한다. 어느 조건에도 해당하지 않으면 변수 a에는 초기값 “C”를 그대로 가지고 있다.