VBA로 엑셀 워크시트의 함수를 사용하기 위해서는 WorksheetFunction을 이용해야 합니다. WorksheetFunction이 어떤 것이며 어떻게 사용하는지 알아보겠습니다. 개체의 이벤트, 속성 및 메서드를 확인하는 방법은 아래 링크된 이전 글을 참조하시기 바랍니다.
1. WorksheetFunction
WorksheetFunction는 VBA에서 엑셀에서 사용하는 워크시트 함수를 사용할 수 있게 해주는 개체로서 메서드로 워크시트 함수를 제공해 줍니다.
사용방법은 다음과 같습니다.
WorksheetFunction.메서드
WorksheetFunction을 입력하고 마침표(.)를 입력하면 해당 메서드 등의 목록이 화면에 출력됩니다. ([그림 1] 참조)
VBA에서 함수를 사용할 때 찾는 함수가 없는 경우 이 WorksheetFunction을 이용해 워크시트 함수를 사용하실 수 있습니다. VBA에서 제공되는 함수를 우선 사용하시는 것이 좋으며 WorksheetFunction에서 제공되는 메서드를 이용하면 속도가 좀 떨어지는 단점이 있습니다.
2. 예제로 WorksheetFunction 확인
이전에 알아보았던 VLOOKUP 함수에서 사용한 예제로 WorksheetFunction의 메서드를 사용하는 것과 비교하면서 확인해 보겠습니다. 아래 링크는 VLOOKUP 함수에 대한 내용입니다.
VLOOKUP 함수 설명시 사용한 성적표 예제를 그대로 사용하겠습니다.
엑셀에서 VBE 창을 여시고 Module을 생성합니다.
그리고, 다음과 같이 코드를 입력합니다.
Public Sub 함수사용()
Range("B18") = WorksheetFunction.VLookup("영희", Range("B12:E15"), 3, False)
End Sub
입력을 완료한 후 실행을 하시면 영희의 수학 점수가 B18 셀에 나타납니다.
WorksheetFunction의 메서드를 사용할 때 주의하실 점은 데이터 범위를 지정하실 때 워크시트 함수를 사용할 때와는 다르게 Range를 사용해야 합니다.
코드를 작성하면서 타이핑을 줄이는 것이 코드 작성에 많은 도움이 됩니다. 만약 WorksheetFunction의 메서드를 여러 가지 사용할 때는 WorksheetFunction을 매번 입력해야 하는 번거로움이 있습니다. 이를 줄이는 방법이 있습니다. 바로 'With WorksheetFunction'이라는 명령줄을 하나 입력하는 것입니다.
위의 코드를 다음과 같이 작성해 보겠습니다.
Public Sub 함수사용()
With WorksheetFunction
Range("B19") = .VLookup("영희", Range("B12:E15"), 3, False)
End With
End Sub
'With WorksheetFunction'을 입력하면 메서드를 사용할 때 마침표(.)를 찍고 다음에 메서드를 입력하여 사용할 수 있습니다. WorksheetFunction 메서드를 사용하는데 WorksheetFunction을 매번 치지 않아도 됩니다.
그리고, 마지막에는 WorksheetFunction 사용 종료를 알리는 'End With'를 입력해야 한다는 점도 잊지 마세요.
'엑셀 > VBA' 카테고리의 다른 글
VBA 셀(또는 범위) 지정 - Range, Cells (0) | 2021.10.19 |
---|---|
VBA 엑셀 개체 다루기 - Range (0) | 2021.10.18 |
VBA 수식 입력하기 - Formula (0) | 2021.10.12 |
VBA 내장 함수 - Join 함수 (0) | 2021.10.12 |
VBA 내장 함수 - Split 함수 (0) | 2021.10.11 |