본문 바로가기

IF조건절의 4가지 형태(사용법) 알아보기

택이형. 2022. 12. 23.

 

엑셀에서 IF는 특정 조건을 통해 원하는 데이터만을 추출하는 역할을 하죠. 마찬가지로 VBA의 IF도 조건을 걸래는 역할을 하는데요. VBA에서 사용되는 IF의 4가지 형태를 알아보고, 예시를 통해 확실한 나의 것으로 만들어 보세요.

 

 

VBA에서 IF사용하기

 

 

VBA 범위 선택하기를 총 6탄에 걸쳐서 알아보았는데요. 가장 기본이 되는 범위선택 방법에 대해 숙지하였기 때문에 지금부터는 실제 업무에 적용이 가능한 것들을 위주로 학습해 보려고 해요.

 

오늘은 VBA에서 IF가 어떻게 사용되는지를 4가지로 분류하여 알아보도록 할게요. IF조건절의 경우에는 엑셀에서 사용되는 IF함수와 동일한 로직으로 작동하기 때문에 쉽게 이해하실 수 있어요. 자 그럼 시작해 보시죠~!

 

IF를 사용하여 조건에 맞는 데이터 입력하기

 

IF절은 크게 4가지로 분리되어 사용될 수 있는데요. 예시를 통해 어떻게 사용되는지 알아보도록 할게요.

Sub IF조건문()

'첫번째 예시
If Range("A2") > 1 Then MsgBox "1보다 큽니다."
' 만약 A2셀의 값이 1보다 크면 "1보다 큽니다."를 출력합니다.

_____________________________________________________________


'두번째 예시
If Range("A2") > 1 Then
' 만약 A2셀의 값이 1보다 크면 

    MsgBox "1보다 큽니다."
"1보다 큽니다."를 출력하고 종료합니다.

End If

_____________________________________________________________


'세번째 예시
If Range("A2") > 1 Then
    MsgBox "1보다 큽니다."
' 만약 A2셀의 값이 1보다 크면 "1보다 큽니다."를 출력하고,

Else
    MsgBox "1보다 작습니다."
'A2셀이 1이하일 경우에는 "1보다 작습니다."를 출력합니다.

End If

_____________________________________________________________


'네번째예시
If Range("a2") >= 7 Then
    Range("b2") = "합격"
' A2셀의 값이 7이상이면 "합격"을 출력

ElseIf Range("a2") >= 5 Then
    Range("b2") = "재시험"
'A2셀의 값이 5이상 6이하이면 "재시험"을 출력

Else
    Range("b2") = "탈락"
' A2셀의 값이 5미만이면 "탈락"을 출력함.

End If

End Sub

 

 

4가지의 사용법이라고 기술을 하긴 했지만, 사실 같은 내용을 방법을 다르게 한 것에 불과해요.

IF절의 기본 문법은 "IF 조건 then 출력 end if" 형태로 사용되죠. 하지만 Then 옆에 출력 값을 바로 적어주게 되면

end if를 생략할 수 있어요. 줄바꿈을 하면 end if를 필요!, 줄바꿈을 하지 않고 바로 사용하면 end if 불필요! 

이렇게 첫 번째와 두번째 예시의 차이점을 이해하시면 될 것 같아요.

 

첫번째 예시는 If Range("A2") > 1 Then MsgBox "1보다 큽니다."인데요.

A2셀의 값이 1보다 크면 메시지 박스를 통해 "1보다 큽니다."를 출력해 줍니다.

그럼 두번째 예시는 어떨까요? 맞아요. 첫번째 예시와 동일하게 "1보다 큽니다."가 출력되게 되는데요.

둘의 차이점은 행을 변경하여 end if를 사용했냐 안했냐의 차이에 불과하죠. 

 

그럼 이번엔 세번째 예시를 볼까요!

A2셀의 값이 1보다 크면 메시지 박스로 "1보다 큽니다."를 출력, 그렇지 않으면 "1보다 작습니다."를 출력하는 코드죠.

IF의 기본 문법에서 Else를 사용하여 조건에 미충족 될 경우 출력되는 결과값을 표시해 주고 있어요.

 

마지막 네번째 예시도 한번 보시죠! 위에서부터 순서대로 진행된다고 생각하시면 편하실 것 같아요.

If Range("a2") >= 7 Then Range("b2") = "합격"은 A2셀의 값이 7이상이면 "합격"을 출력하겠다는 것을 말하며,

ElseIf Range("a2") >= 5 Then Range("b2") = "재시험"A2셀의 값이 5이상 6이하이면 "재시험"을 출력하겠다는 것을 말해요.

Else Range("b2") = "탈락"의 경우는 첫번째, 두번째 조건에 만족하지 못하는 항목들을 "탈락"으로 출력하겠다는 것이죠.

 

자 그럼 지금까지 4번째 예시로 사용한 합격여부의 코딩 결과를 살펴볼까요? 

 

IF를 사용한 매크로
IF를 사용한 매크로

 

 

마치며

VBA에서 사용된 IF조건절의 경우는 엑셀에서 사용된 IF와 동일하게 적용되기 때문에 부담 없이 학습하셨을 거라 생각해요. VBA는 지식이나 기술이기보다는 기능에 가까움으로 반복적인 연습을 통해 내 것으로 만들어야 해요. 포기하지 말고 끝까지 학습하셔서 VBA를 나만의 무기로 활용해 보세요! 다음 포스팅은 반복문을 사용하는 방법에 대해 설명드릴 예정입니다. 반복문과 IF을 함께 사용하면 자동화 시트를 효율적으로 구축할 수 있으니, 반복문 학습도 꼭 하시길 당부드립니다. 

 

▼▼▼함께 보면 좋은 글▼▼▼

 

VBA 반복문 1탄(for~next 사용하기)

『 오늘은 VBA 반복문에 대해 알아보려고 하는데요. 반복문은 반복적인 작업을 대신해주는 만능키라고 할 수 있어요. 반복문은 지정한 횟수만큼, 혹은 무한으로 사용된 코드를 반복하게 만들어

lst914.tistory.com

 

VBA 반복문 2탄(For each ~ Next 사용하기)

『 For ~ next문과 For each ~ next문만 자유롭게 사용가능하다면 업무자동화에 한 발짝 더 다가섰다고 할 수 있습니다. 그만큼 사용빈도가 높고 중요한 내용이라고 할 수 있습니다. 업무자동화를 위해

lst914.tistory.com

 

Do ~ Loop문(While, Until)

드디어 VBA반복문의 마지막 Do ~ Loop문에 도달하였습니다. 반복문의 사용방법과 효과는 다 비슷비슷합니다. 다만 상황에 따라 어떠한 반복문을 선택할지를 결정하면 되는 것이죠. 오늘은 Do ~ Loop

lst914.tistory.com

 

VBA 빈셀 채우기!(피벗테이블 오류 최소화 방법)

『 피벗테이블을 사용할 때 가장 주의하여야 할 점은 셀병합으로 인해 숫자가 누락되는 것입니다. 또한 합계가 되는 기준셀의 명칭이 없게 되면 우리가 원하는 값에 도달할 수 없다는 것이죠.

lst914.tistory.com

 

 

칼퇴의 기술은 VBA에서부터 시작된다!

 

댓글