vba 조건문에 해당하는 글 3

기초부터 실전까지 VBA 엑셀12 - 조건문 If ~ ElseIf

IT 관련 지식/VBA 공부|2019. 10. 31. 08:00
반응형
728x170

<VBA 엑셀12 - 조건문 if else>

 

이전에 배운 if문에서 조금 더 발전한 사용법을 알려드리겠습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 

<기초부터 실전까지 VBA 엑셀11 - 조건문 if>에서 배운 것은 단순히 조건 1개만 사용하여 

 

if문을 사용하는 방법이었습니다.

 

이번에는 여러개의 조건을 걸 수 있는 방법을 알려드리겠습니다.

 


1. If ~ ElseIf ~ ElseIf의 기본형태

 

If 조건식 1 Then
  "조건식 1"이 True일 때 처리
ElseIf 조건식 2 Then
  "조건식 2"이 True일 때 처리
ElseIf 조건식 3 Then
  "조건식 3"이 True일 때 처리
...
Else
  모든 조건식이 False일 때 처리
End If

 

 

위와 같이 ElseIf를 이용하여 여러 개의 조건을 만들 수 있습니다.

 

이는 단순히 여러 개의 조건을 만들 수 있다는 것보다 If ~ Else만 사용했을 때 보다

 

코딩이 훨씬 짧고 단순해집니다.

 

이해를 돕기위해 다음과 같은 예제를 보겠습니다.

 

300x250

2. 예제

 

<기초부터 실전까지 VBA 엑셀11 - 조건문 if>에서 사용한 예제를 그대로 사용하여

 

정확히 어떻게 다른지 확인해보겠습니다.

 

<기초부터 실전까지 VBA 엑셀11 - 조건문 if> 에서 사용한 예제

Sub if2() 

If Cells(1, 1) >= 100 Then 
    If Cells(1, 1) >= 200 Then 
        Cells(1, 2) = "A"    '>= 200 
    Else 
        Cells(1, 2) = "B"    '>=100 AND < 200 
    End If 
     
Else 
     
    If Cells(1, 1) >= 50 Then 
        Cells(1, 2) = "C"    '< 100 AND >= 50 
    Else 
        Cells(1, 2) = "D"    '< 50 
    End If 
End If 

End Sub

 

<ElseIf를 사용했을 때>

Sub elseif1()

    If Cells(1, 1) >= 200 Then
    
        Cells(1, 2) = "A"    '>= 200
        
    ElseIf Cells(1, 1) >= 100 Then
    
        Cells(1, 2) = "B"    '>=100 AND < 200
    
    ElseIf Cells(1, 1) >= 50 Then
    
        Cells(1, 2) = "C"    '< 100 AND >= 50
        
    Else
    
        Cells(1, 2) = "D"    '< 50
    
End If

End Sub

위에 예제보다 밑의 예제가 훨씬 직관적은 눈에 들어오는 것을 알 수 있을 것입니다.

 

이 처럼 ElseIf를 사용할 경우 다수의 조건을 만들 수 있습니다.

 


이번 실습은 여기까지 입니다.

 

오늘도 마찬가지로 코딩 파일을 남겨놓겠습니다.

 

꼭 직접 손으로 코딩을 해보신 후

 

정 모르겠으면 다운 받으신 후, 무엇이 다른지 확인하시길 바랍니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 

elseif문.txt
0.00MB

반응형

댓글()

기초부터 실전까지 VBA 엑셀11 - 조건문 if

반응형
728x170

오늘은 프로그래밍의 진정한 꽃 "조건문"에 대해 배워보겠습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 

이번 강의는 맨 밑에 코딩을 첨부했습니다.


1. if 조건문의 기본 형태

 

If 조건식 Then
  Ture 일 때 조건식을 만족하는 경우의 처리
Else
  Flase 일 때 조건식을 만족하지 않는 경우의 처리
End If

 

위에서 Else는 선택사항입니다.

 

즉, If 만 사용해도 조건문으로써 에러없이 사용할 수 있습니다.


2. If문에 사용가능한 조건문

 

비교 연산자

비교 연산자 의미
= 같음
<> 같지 않음
> 초과
> = 이상
< 미만
<= 이하

 

논리 연산자

논리 연산자 의미
And 논리적
Or 논리합

 

사실 "논리 연산자"는 종류가 더 많지만 거의 사용하지 않으므로...

 

위의 2개만 소개하겠습니다.

300x250

3. If문 사용 예시

Sub if1()

    If Cells(1, 1) >= 100 Then
        Cells(1, 2) = "○"
    Else
        Cells(1, 2) = "×"
    End If

End Sub

 

<결과>


4. 응용 - If문의 중첩

 

Sub if2()

If Cells(1, 1) >= 100 Then
    If Cells(1, 1) >= 200 Then
        Cells(1, 2) = "A"    '>= 200
    Else
        Cells(1, 2) = "B"    '>=100 AND < 200
    End If
    
Else
    
    If Cells(1, 1) >= 50 Then
        Cells(1, 2) = "C"    '< 100 AND >= 50
    Else
        Cells(1, 2) = "D"    '< 50
    End If
End If

End Sub

조금 해석을 하자면

 

① 먼저 "A1"에 들은 값이 100 "이상"인지 확인합니다.

② 그리고 200 이상이면 "A", 200 밑이면 "B"를 입력합니다.

③ 그 이외 (100 "미만일 때)의 경우를 정의합니다.

④ 이 또한 100~50 / 50 미만 일 때의 경우 각각 "C", "D"로 정의합니다.

 

위와 같이 If문을 중첩해서 사용할 수 도 있습니다.

 

For 반복문과 마찬가지로 2번정도만 중첩해서 사용하면 됩니다!

 

아래에 위에서 사용한 코딩을 남겨놓습니다.

 

잘 안되는 분은 다운로드 받아서 뭐가 다른지 한번 확인해보세요!

 

if문.txt
0.00MB


더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 

오늘은 여기까지만 하겠습니다.!

반응형

댓글()

기초부터 실전까지 VBA 엑셀9 - 반복문 Do ~ Loop

IT 관련 지식/VBA 공부|2019. 10. 24. 09:29
반응형
728x170

<VBA 엑셀9 - 반복문 Do ~ Loop>

 

이번에는 또 다른 반복문인 Loop에 대해 알아보겠습니다.

 

For 반복문과 Do 반복문의 차이점을 설명하자면

 

For 반복문 : 지정 횟수만큼 반복한다.

 

Do 반복문 : 주어진 조건만큼 반복한다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 


1. Do 반복문의 기본 형태

 

Do [{While | Until} condition]
  [statements]
  [Exit Do]
  [statements]

Loop

 

각 구문의 뜻을 설명하면 아래와 같습니다.

 

condition 선택 사항입니다.
참 (True) 또는 거짓 (False)을 평가하는 수식 또는 문자열 식을 지정합니다.
인수 condition 값이 Null 인 경우, 인수 condition은 거짓 (False)로 간주됩니다.
statements 인수 condition이 참 (True) 인 동안 또는 인수 condition이 참 (True)로 될 때까지 반복 실행되는
여러 행의 문을 작성합니다.

 

condition에서 사용할 수 있는 조건의 경우 아래와 같습니다.

 

비교 연산자 의미
= 같음
<> 같지 않음
> 초과
> = 이상
< 미만
<= 이하
논리 연산자 의미
And 논리적
Or 논리합

 

다음 예문을 통해 좀 더 상세히 알아보겠습니다.

 

참고로 기초 레벨의 코딩의 경우 코드를 올리지 않겠습니다.

 

왜냐하면 직접 코딩을 하면서 익히는게 더 빨리 외워지고 프로그래밍을 하는 맛이 있거든요 ㅎㅎ


2. Do 조건문의 예시

 

Sub Loop1()
    Dim i
    i = 1
    Do While i <= 10
        Cells(i, 1) = 1
        i = i + 1
    Loop
End Sub

 

위의 VBA 코딩을 실행시켜보면 아래와 같은 결과가 나옵니다.

위에서 While의 의미를 설명하자면

 

300x250

 

<"i"가 10이하일 "동안" 계속 반복해라> 라는 의미입니다.

 

결과는 같지만 조금 다른 예를 한번 더 보겠습니다.


Sub Loop2()

    Dim i
    i = 1
    Do Until i > 10
        Cells(i, 1) = 1
        i = i + 1
    Loop
End Sub

 

이를 실행해보면 위와 똑같은 결과가 나오게 됩니다.

 

여기서 Until의 뜻은

 

<"i"가 10을 넘을 때"까지" 계속해라>라는 의미입니다.

 

뭔가 차이점이 느껴지시나요? ㅎㅎ

 

사실 직접 VBA 프로그래밍을 할 여러분들은 While이나 Until 중 하나만 중점적으로 사용해도 무방합니다.

 


3. Exti Do

 

마지막으로 Loop 반복문을 탈출하는 코딩에 대해 알아보고 마치겠습니다.

 

For 반복문과 마찬가지로 Loop 반복문 또한 탈출하는 코딩이 있습니다.

 

이번 에는 아래와 같이 VBA 코딩을 해봅니다.

 

Sub Loop3()

    Dim i
    i = 1
    Do Until i > 10
        Cells(i, 1) = 1
        i = i + 1

        Exit Do
    Loop
End Sub

 

이를 실행하면 그 결과는 아래와 같이 됩니다.

 

한번만 실행하고 Do ~ Loop 반복문을 끝내는 모습입니다.

 


이것으로 반복문에 대한 설명은 모두 끝났습니다.

 

다음에는 또 다른 수업으로 찾아 뵙겠습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

반응형

댓글()