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

엑셀 VBA 제어문의 종류

조회 수 10508 추천 수 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




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

?

List of Articles
번호 분류 제목 날짜 조회 수
617 컴퓨터잡담 삼성, LG 여! 스마트폰의 창작기술로 아이폰을 점령하라! 2011.09.03 3642
616 컴퓨터잡담 [윈도우proxy server]프록시 서버 구축하기 file 2011.09.06 14201
615 컴퓨터잡담 [윈도우7] 이 컴퓨터는 정품 Windows를 사용하고 있지 않습니다 해결방법 1 2011.09.12 12540
614 컴퓨터잡담 툴바제작사이트 1 2011.09.15 4055
613 컴퓨터잡담 안드로이드 어플 쉽게 만들기 2011.09.15 4101
612 컴퓨터잡담 DLL Injection - SetWindowsHookEx()함수 이용방법 1 2011.09.15 6512
611 컴퓨터잡담 VBA를 이용한 엑셀 프로그래밍 1 2011.09.23 21508
610 컴퓨터잡담 EXCEL) 매크로 공부하기 2011.09.25 12280
609 컴퓨터잡담 ExCEL VBA) 파일을 열지않고 값 읽어오기 23 2011.09.25 20215
608 컴퓨터잡담 ExCEL VBA) 중복된 데이터 추출하기 4 2011.09.25 20196
607 컴퓨터잡담 ExCEL VBA) 함수만들기 1 2011.09.25 13961
606 컴퓨터잡담 Excel VBA) 자료모으기 2011.09.28 11903
605 컴퓨터잡담 autohotkey - 변수리스트(Variables and Expressions) 모음 2011.09.30 11830
» 컴퓨터잡담 엑셀 VBA 제어문의 종류 3 2011.10.04 10508
603 컴퓨터잡담 VBA - 시트/셀, 엑셀 값만 복사하기! (VBA을 이용한 복사영역 조절) 2011.10.04 31415
602 컴퓨터잡담 AHK_L) SysListView321 컨트롤 내용 추출하기 2011.10.07 9893
601 컴퓨터잡담 DLL View dll 파일관리 및 정보확인 프로그램 file 2011.10.10 4379
600 컴퓨터잡담 엑셀)문자데이터를 날짜 및 시간으로 변경하는 방법(함수) 2011.10.11 6954
599 컴퓨터잡담 Ahk Standard Library Collection, 2010 Sep (+Gui) ~ Libs: 100 3 2011.10.11 14189
598 컴퓨터잡담 AHK & my Address of Pointer and my Offset 2011.10.11 13183
Board Pagination Prev 1 ... 14 15 16 17 18 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소