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셀에  숫자  데이터가  입력되어  있어야  제대로  결과를  볼  수  있습니다. 

오피스튜터사이트에서  얻어온  자료입니다.  첨부파일을  클릭하세요.
 

+ Recent posts