Skip to content
컴퓨터잡담
2011.10.04 08:24

엑셀 VBA 제어문의 종류

조회 수 9375 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

엑셀 VBA 제어문의 종류

 

 

단일 조건문

단일 조건문은 조건에 따라 특정한 명령을 수행할 것인가를 결정하는 문장으로 다음과 같은 형식을 가집니다.

기본 구문

    If 조건 Then            --- 만약 조건이 참일 경우

         문장               --- 문장을 실행함

    End If




예)

Sub 평가()                 --- 프로시저의 시작

     성적 = 80             --- 변수 ‘성적’에 80 저장

     If 성적 >= 80 Then   --- 변수 ‘성적’의 값이 80이상이면

         MsgBox "합격"    --- ‘합격’ 메시지 표시

     End If                --- If 문의 끝

 End Sub                  --- 프로시저의 끝




If 문 축약하기

단순 조건문은 다음과 같이 End If를 생략할 수 있다.

Sub 평가()

   성적 = 80

   If 성적 >= 80 Then  MsgBox “합격”

End Sub




2. 이중 조건문

이중 조건문은 조건이 참일 때와 거짓일 때에 따라 서로 다른 문장을 수행하는 문장입니다.

기본 구문

If 조건 Then       --- 만약 조건이 참일 경우

        문장1      --- 문장1을 실행하고 

   Else            --- 그렇지 않으면

        문장2       --- 문장2를 실행함

End If





예)

Sub 평가()                  --- 프로시저의 시작

    성적 = 80               --- 변수 ‘성적’에 80 저장

    If 성적 >= 80 Then     --- 변수 ‘성적’의 값이 80 이상이면

        MsgBox “합격”      --- ‘합격’ 메시지 표시함

    Else                     --- 그렇지 않으면

        MsgBox “불합격”    --- ‘불합격’ 메시지 표시함

    End If                   --- If 문의 끝

 End Sub                    --- 프로시저의 끝




3. 다중 조건문

다중 조건문은 여러 개의 조건을 처리하는 문장으로 Select Case문으로 대신할 수 있습니다.

기본 구문

If 조건식1 Then        --- 만약 조건식1이 참일 경우

          문장1        --- 문장1를 실행하고

ElseIf 조건식2 Then    --- 그렇지 않고 조건식2가 참일 경우

          문장2         --- 문장2를 실행하며

          .                       .     

          .                        .

Else                    --- 그렇지 않고 모두 거짓일 경우

         문장3          --- 문장3을 실행함

End If




예)

Sub 수도() --- 프로시저의 시작

    도시 = InputBox(“도시를 입력하세요.”)    --- 값을 입력받아 ‘도시’에 저장

    If 도시 = “서울” Then                   --- ‘도시’가 ‘서울'이면

MsgBox “한국” --- ‘한국’ 메시지 표시

    ElseIf 도시 = “워싱턴” Then             --- ‘도시’가 ‘워싱턴’이면

MsgBox “미국” --- ‘미국’ 메시지 표시

    ElseIf 도시 = “런던” Then               --- ‘도시’가 ‘런던’이면

MsgBox “영국” --- ‘영국’ 메시지 표시

Else --- 위의 도시가 아니면

MsgBox “알수없음” --- ‘알수없음’ 메시지 표시

End If --- If 문의 끝

End Sub --- 프로시저의 끝




4. 값으로 선택하기

�� 조건이 문자나 숫자 값일 경우 다음과 같은 형식으로 조건에 따라 결과를 산출할 수 있습니다.

기본 구문

Select Case 조건           --- 조건이

    Case 값1               --- 값1이면

                 명령1     --- 명령1을 수행함

    Case 값2              --- 값2이면

                 명령2     --- 명령2를 수행함

    Case 값3              --- 값3이면

                 명령3    --- 명령3을 수행함

    Case Else             --- 그렇지 않으면

                 명령4    --- 문장4를 수행함

End Select




예)

Sub 수도() --- 프로시저의 시작

     도시 = InputBox(“도시 입력.”)      --- 값을 입력받아 ‘도시’에 저장

    Select Case 도시                   ---  Select 문 시작

       Case “서울”: MsgBox “한국”    --- ‘도시’가 ‘서울'이면 ‘한국’ 메시지 표시

       Case “워싱턴”: MsgBox “미국”  --- ‘도시’가 ‘워싱턴’이면 ‘미국’ 메시지 표시

       Case “런던”: MsgBox “영국”     --- ‘도시’가 ‘런던’이면  ‘영국’ 메시지 표시 

       Case Else: MsgBox “알수없음”  --- 아니면 ‘알수없음’ 메시지 표시

End Select --- Select 문의 끝

End Sub --- 프로시저의 끝

 




5. 범위로 선택하기

입력되는 숫자의 범위에 따라 다른 결과를 산출하는 방법으로 다음과 같이 사용됩니다.

기본 구문

Select Case 값                    

    Case Is <= 범위1: 명령1      --- 값이 범위1보다 작으면 명령1을 실행함

    Case 범위2 To 범위3: 명령2   --- 범위2에서 범위3 사이에 있으면 명령2를 실행함

    Case 범위4 To 범위5: 명령3   --- 범위4에서 범위5 사이에 있으면 명령3을 실행함

    Case Is >= 범위6: 명령4      ---  범위6보다 크면 명령4를 실행함

End Select




예)

Sub 성적판정() --- 프로시저의 시작

        점수 = InputBox(“점수 입력”)           --- 값을 입력받아 ‘점수’에 저장

Select Case 점수 --- Select 문 시작

            Case Is < 0: MsgBox “너무 작음”  --- ‘점수’가 0보다 작으면

            Case 0 To 59: MsgBox “가”       --- ‘점수’가 0부터 59사이면

            Case 60 To 69: MsgBox “양”      --- ‘점수’가 60부터 69사이면

            Case 70 To 79: MsgBox “미”      --- ‘점수’가 70부터 79사이면

            Case 80 To 89: MsgBox “우”      --- ‘점수’가 80부터 89사이면

            Case 90 To 100: MsgBox “수”     --- ‘점수’가 90부터 100사이면

            Case Is > 100: MsgBox “너무 큼”  --- ‘점수’가 100보다 크면

End Select --- Select 문의 끝

End Sub --- 프로시저의 끝




6. 단일 반복문

변수의 값이 특정한 값에 도달할 때까지 변수를 증가시키거나 감소시키며 특정한 명령문을 반복 실행하는 명령문으로, 시작값/종료값/증감값을 지정해야 하며, 증감값을 생략할 경우 1이 된다.

기본 구문

For 변수 = 시작값 To 종료값 Step 증감값   ---  시작값부터 종류값까지 증가 또는 감소하며

문장 --- 문장을 실행함

Next 변수




예)

Sub 합계()                --- 프로시저의 시작

    Sum = 0               --- 변수 ‘Sum’에 0 저장

    For i = 0 To 10       --- 변수 ‘i’가 0부터 1씩 증가하여 10이 될 때까지

        Sum = Sum + i    --- 변수 ‘Sum’에 ‘i’의 값을 더함

    Next i                 --- For 문의 끝

    MsgBox Sum          --- 합계를 출력함

 End Sub                  --- 프로시저의 끝




7. 다중 반복문

다중 반복문은 For 문이 중첩된 형태로 이차원 배열을 처리할 때 주로 이용합니다.

기본 구문

For 변수1 = 시작값 To 종료값 Step 증감값         

     For 변수2 = 시작값 To 종료값 Step 증감값   ---  변수2의 문장을

문장

Next 변수2 --- 변수1만큼 반복 실행함

Next 변수1




예)

Sub 다중반복()                 --- 프로시저의 시작

    For i = 1 To 5             --- 변수 ‘i’가 1부터 5까지 1씩 증가하며  

      For j = 5 To 1 Step -1  --- 변수 ‘j’가 5부터 1까지 1씩 감소하며

        Debug.Print i * j;       --- 직접 실행 창에 ‘i’와 ‘j’를 곱한 값을 출력함

Next j --- 내부 For 문의 끝

        Debug.Print             --- 다음 줄로 이동함

Next i --- 외부 For 문의 끝

 End Sub                       --- 프로시저의 끝




8. Do While ~ Loop 구문

조건이 만족되거나 조건이 참(true)이 될 때까지 명령문을 반복 수행하는 구문으로 조건에 따라 문장이 실행되지 않을 수 있습니다.

Do While 조건

    문장

Loop

=> 조건을 먼저 검사하여 조건이 참인 동안 문장을 실행함




예)

 Sub 합계()               ---  프로시저의 시작

    Sum = 0             ---  변수 Sum의 값을 0으로 초기화

    i = 1                 ---  변수 i의 값을 1로 초기화

    Do While i <= 100    ---  변수 i가 100보다 작거나 같은지 검사하여 참이면

        Sum = Sum + I  ---  변수 Sum에 변수 ‘i’의 값을 더함

        i = i + 1         ---  변수 i의 값을 1 증가시킴

    Loop                  ---  ④로 돌아가 조건을 검사하여 참이면 ⑤~⑥을

다시 실행, 거짓이면 While문을 종료함

    MsgBox Sum          ---  변수 Sum의 값을 표시

 End Sub                  ---  프로시저의 끝




9. Do ~ Loop While 구문

문장을 먼저 실행한 후 조건을 비교하는 제어문으로 조건의 만족 여부와는 관계없이 반드시 한 번은 문장을 실행합니다.

기본 구문

Do

    문장

Loop While 조건

=> 문장을 먼저 실행하고 조건이 참이면 문장을 계속 실행함




예)

 Sub 합계()                  --- 프로시저의 시작

     Sum = 0               --- 변수 ‘Sum’의 값을 0으로 초기화

     i = 1                   --- 변수 ‘i’의 값을 1로 초기화

Do --- While 문의 시작

         Sum = Sum + i    ---  변수 ‘Sum’에 변수 ‘i’의 값을 더함 

         i = i + 1           --- 변수 ‘i’의 값을 1 증가시킴.

     Loop While i <= 100   --- 변수 ‘i’가 100보다 작거나 같은지 검사하여

참이면 ④로 돌아가 ⑤~⑥을 다시 실행,

거짓이면 While 문을 종료함

     MsgBox Sum           ---  변수 ‘Sum’의 값을 표시

 End Sub                    --- 프로시저의 끝




10. Do Until ~ Loop 구문

조건이 거짓(False)인 동안 명령문을 반복 수행하는 구문으로 조건에 따라 문장이 실행되지 않을 수 있습니다.

Do Until 조건

    문장

Loop

=> 조건을 먼저 검사하여 조건이 거짓인 동안 문장을 실행한다.




예)

 Sub 합계()                   ---  프로시저의 시작

    Sum = 0                  --- 변수 ‘Sum’의 값을 0으로 초기화

    i = 1                     --- 변수 ‘i’의 값을 1로 초기화

    Do Until i > 100          --- 변수 ‘i’가 100보다 크다는 조건이 거짓이면

        Sum = Sum + i       --- 변수 ‘Sum’에 변수 ‘i’의 값을 더함

        i = i + 1              --- 변수 ‘i’의 값을 1 증가시킴

    Loop                     --- ④로 돌아가 조건을 검사하여 거짓이면

⑤~⑥을 다시 실행, 참이면 Until 문을 종료함

    MsgBox Sum              --- 변수 ‘Sum’의 값을 표시

 End Sub                     --- 프로시저의 끝




11. Do ~ Loop Until 구문

Do ~ Loop While 구문과 마찬가지로 문장을 먼저 실행한 후 조건을 비교하는 제어문으로 조건의 만족 여부와는 관계없이 반드시 한 번은 문장을 실행합니다.

Do

    문장

Loop until 조건

=> 문장을 먼저 실행하고 조건이 거짓이면 계속 문장을 실행한다.




예)

 Sub 합계()                   --- 프로시저의 시작

     Sum = 0                --- 변수 ‘Sum’의 값을 0으로 초기화

     i = 1                    --- 변수 ‘i’의 값을 1로 초기화

Do --- While 문의 시작

         Sum = Sum + i     --- 변수 ‘Sum’에 변수 ‘i’의 값을 더함.

         i = i + 1           --- 변수 ‘i’의 값을 1 증가시킴.

     Loop Until i > 100     --- 변수 ‘i’가 100보다 크다는 조건이 거짓이면

④번으로 돌아가 ⑤~⑥을 다시 실행,

참이면 While 문을 종료함

     MsgBox Sum           --- 변수 ‘Sum’의 값을 표시

⑨ End Sub                    --- 프로시저의 끝




12. Whlie ~ Wend 구문

Do While ~ Loop 문 대신 While ~ Wend 문을 대신 사용할 수 있습니다.

 Sub 합계()

    Sum = 0

    i = 1

    Do While i <= 100

        Sum = Sum + i

        i = i + 1

    Loop

    MsgBox Sum

 End Sub

 Sub 합계()

    Sum = 0

    i = 1

    While i <= 100

        Sum = Sum + i

        i = i + 1

    Wend

    MsgBox Sum

 End Sub




로그인 후 댓글쓰기가 가능합니다.

?

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소