티스토리 뷰

엑셀 워크시트에서 계산을 편리하게 처리하기 위해서 함수를 사용할 수 있습니다. 오늘은 이 함수 중 IF 함수에 대해서 알아보고, 이를 VBA에서 적용할 수 있는 방법을 추가적으로 설명드리도록 하겠습니다.


엑셀 IF 함수


IF 함수는 조건에 따라서 특정 셀에 특정 값을 대입하기 위해서 사용되는 함수입니다. IF 함수는 지정한 조건이 TRUE이면 특정 값을 반환하고 FALSE이면 다른 값을 반환합니다. 구문은 아래와 같습니다. 


IF(logical_test, value_if_true, value_if_false)


  • logical_test : TRUE나 FALSE로 평가될 수 있는 임의의 값 또는 식입니다. 예를 들어 A10=100은 A10 셀의 값이 100이면 True가 아니면 False의 결과가 됩니다.
  • value_if_true : logical_test가 TRUE인 경우에 반환되는 값입니다. 
  • value_if_false : logical_test가 FALSE인 경우에 반환되는 값입니다. 


엑셀의 워크시트에서 추가하는 방법은 아래와 같습니다. 


1) 수식에서 IF 함수를 찾아 누릅니다. 



2) 함수 인수 창이 뜨면 조건에 맞게 값을 넣습니다. 이 글에서는 A3의 값이 100이상이면 C3에 PASS를 아니라면 Fail을 띄울 예정입니다. 



3) A3의 값이 변경됨에 따라 C3의 값이 변경되는지를 확인합니다. 



물론 UI를 이용하지 않고, 셀에 직접 아래와 같이 입력할 수도 있습니다. IF 함수의 추가적인 예제는 아래의 링크를 참조해주시기 바랍니다. : http://office.microsoft.com/ko-kr/excel-help/HP010069829.aspx?redir=0


=IF(A3 >= 100,"PASS","Fail")


VBA에서 IF 함수 사용하기


이전 글에서 설명드렸다 싶이 VBA에는 이미 IF 조건절을 위해서 IF라는 단어가 프로그래밍 상에 미리 정의가 되어 있습니다. 따라서 VBA에서 워크시트에서 사용하는 IF 함수를 사용하기 위해서는 IIF라는 함수를 이용해야 합니다.


IIF의 정의는 아래와 같습니다.


Public Function IIf( ByVal Expression As Boolean, ByVal TruePart As Object, ByVal FalsePart As Object) As Object


엑셀 IF 함수와 사용하는 방식이 동일합니다. 첫 번째 인자에는 비교할 식을 넣고, 비교식의 결과가 True이면 두번째 인자값이 리턴이 되고, 아니라면 세번째 인자값이 리턴이 됩니다. 


그럼 위와 같은 알고리즘을 코드로 작성해 보도록 하겠습니다.


Sub Test()


    Dim currentValue, resultValue

    

    ' 현재 값을 가져옵니다.

    currentValue = Cells(3, 1).Value

    

    ' IIF 함수를 이용하여 결과값을 얻습니다.

    resultValue = IIf(currentValue >= 100, "PASS", "FAIL")

    

    ' 결과를 등록합니다.

    Cells(3, 3).Value = resultValue


End Sub



아래는 실행 결과입니다. 50을 넣었더니 Fail이 뜨네요.



이 글에서는 엑셀의 IF 함수를 VBA에서 사용하는 방법에 대해서 알아보았습니다.

이 글이 도움이 되셨나요? 그렇다면 아래의 그림을 클릭해주세요.




댓글