VBA에서 조건문을 사용하여 판단하는 구문 중에서 IF문에 대해 알아봅니다. 프로시저에서 어떤 조건에 따라서 서로 다른 작업을 수행할 수가 있다. 조건문은 조건이 True인지 False인지를 평가하여 그 결과에 따라 하나 이상의 명령문을 실행하도록 지정합니다. 일반적으로 조건문에 사용되는 조건들은 비교 연산자나 논리연산자를 사용하여 값이나 변수를 다른 값이나 변수와 비교하는 식입니다. If...Then...Else 문을 사용하면 조건 값에 따라 특정 명령문을 실행할 수 있습니다. If...Then...Else 문은 조건이 여러 개일 경우에 필요에 따라 여러 번 중첩해서 사용할 수 있고, 중첩해서 작성할 때 두 번째 If부터는 ElseIf로 입력합니다. If구문은 모두 4가지 형식을 사용합니다. ① If...Then...Else문의 흐름도 ② If...Then...Else의 여러 가지 형식 [형식1] If 조건문 Then 명령문 [Else] 명령문 다음은 형식1로 작성한 예제로 거짓인 경우에 실행하는 Else 키워드가 생략되었습니다. MyDate에 할당된 날짜를 2000년 1월 1일과 비교해서 MyDate가 더 크면 밀레니엄세대라는 메시지상자가 표시됩니다. 조건의 결과가 하나 밖에 없는 경우에 Else 문 없이 사용하고, Then 이후에 명령문이 한 행밖에 안되면 End If문도 생략해도 됩니다. Sub FixDate() Dim MyDate As Date MyDate = #3/23/2001# If MyDate > #1/1/2000# Then MsgBox "밀레니엄 세대이다." End Sub [형식2] If 조건문 Then 명령문 명령문 End If 한 행 이상의 여러 행으로 된 구문을 사용하면 End If문을 사용합니다. 다음 예제와 같이 여러 행으로 된 구문에는 End If 문이 포함되는데 A1 셀의 글자 서식이 굵게가 지정되어 있으면 이 조건으로, 조건이 참이면 굵게를 해제하고 셀 무늬를 지정하라는 예제입니다. 프로시저를 실행하려면 A1 셀에 데이터를 입력하고 서식을 굵게 지정해두어야 실행결과를 알 수 있습니다. Sub IfEndIf() If Range("A1").Font.Bold = True Then Range("A1").Font.Bold = False Range("A1").Interior.ColorIndex = 6 End If End Sub [형식2] If 조건문 Then 명령문 명령문 End If [형식3] If 조건문 Then 명령문 Else 명령문 End If If...Then...Else 문을 사용하면 조건문의 결과에 따라서 조건이 참인 경우와 거짓인 경우에 실행문을 각기 다르게 지정할 수 있습니다. 다음은 A1 셀에 입력된 데이터의 글꼴이 굵게 지정되어 있으면 해제하고, 굵게 지정되어 있지 않으면 데이터의 글꼴을 굵게 지정하는 경우로 A1 셀에 데이터를 입력하고 프로시저를 실행합니다. Sub IfElseEndIf() If Range("A1").Font.Bold = True Then Range("A1").Font.Bold = False Else Range("A1").Font.Bold = True End If End Sub [형식4] If 조건문 Then 명령문 [ElseIf 조건문 Then 명령문 Else 명령문] End If If...Then...Else 문에 ElseIf 문을 덧붙이면 첫째 조건이 False일 때 둘째 조건을 검사하게 할 수 있습니다. ElseIf 문은 여러 개 지정할 수도 있고, 또는 하나도 지정하지 않을 수도 있는데 예를 들어 다음 프로시저는 점수에 따라서 학점을 표시하는 작업으로 Else 문 다음의 명령문은 모든 If 문과 ElseIf 문이 False일 때 실행이 됩니다. Sub IfElseIf() Dim Gr As Range Set Gr = Range("a1") If Gr >= 90 Then Range("a2").Value = "A+" ElseIf Gr >= 80 Then Range("a2").Value = "B+" ElseIf Gr >= 70 Then Range("a2").Value = "C+" Else Range("a2").Value = "낙제" End If End Sub 프로시저를 실행하려면 A1셀에 숫자 데이터가 입력되어 있어야 제대로 결과를 볼 수 있습니다. 오피스튜터사이트에서 얻어온 자료입니다. 첨부파일을 클릭하세요. |
'컴퓨터관련' 카테고리의 다른 글
엑셀 vba에서 sumproduct함수를 사용할수 없음...펌 (0) | 2011.01.17 |
---|---|
중복항목제거 vba구현...펌 (0) | 2011.01.16 |
jw flvplayer 사용법...펌 (0) | 2011.01.16 |
currentregion.address()...펌 (0) | 2011.01.15 |
배치파일 redirect etc...펌 (0) | 2011.01.14 |