반응형

NOW, DATE와 같은함수는 VBA 내장함수로 아래와같이 간단하게 사용이 가능합니다.

Sub itng()

    Range("a1").Value = Now

    Range("a2").Value = Date

End Sub

하지만 엑셀에서 사용하던 함수들을 모두 사용할 수 있는것이 아닌데다 엑셀에서 기본함수라 할 수 있는 SUM()함수도 VBA에는 없습니다. 아래 데이터의 합계를 VBA로 구하려면 어떻게 해야할까요??

제 VBA 활용 수준에서는 a2~a11까지 반복문을 사용하여 합계를 구하는게 고작인데요 엑셀에서라면 Sum() 함수를 활용하여 쉽게 합계를 구해냈을것입니다.

서두가 길었는데요 VBA에서도 엑셀에서 사용하던 함수들을 사용 할 수 있는 방법이 있었습니다.

예제와 같이 10여개의 셀 정도는 반복문으로도 속도차이가 크지 않겠지만 수만행의 데이터의 합계를 구한다고하면 엑셀 함수를 사용하는것이 유리할것입니다. 소스는 아래와 같습니다.

Sub itng()

    Range("a12").Value = WorksheetFunction.Sum(Range("a2:a11"))
    
End Sub

주의할 사항으로는 범위가 필요한곳에는 Range()함수를 사용하여야한다는 점입니다.

업무중 제가 가장 자주 사용했던 Vlookup(), Countif() 등 다른 함수 들도 해당방법으로 사용 가능하였습니다.

조금 더 활용도를 높이기 위해서는 셀 주소를 변수로 지정하여 사용하면 되는데 그 방법에 대해서도 다음 글에서 다루고 링크 남겨두도록 하겠습니다.

감사합니다.

 

 

반응형

+ Recent posts