그런데 함수에 대해서 만들때는 좋게 사용하지만 설명을 달아놓지 않으면 나중에는 전혀 사용하지 못합니다.
코드를 작성해 놓고 오랜만에 보면 어? 모르겠다 하는 경우가 한둘이 아니죠.
코드안에 주석으로 처리를 해두어도 되겠지만 엑셀 인터페이스에서 설명을 보는 방법을 알아보겠습니다.
기본적으로 사용자 함수는 작성할 수 있을 정도의 고수분들이 참고용으로 사용하는 기능이니 코드를 펼치겠습니다.
< 예시 코드 >
Function FilterOddEven(rng As Range, num AsInteger) As Variant
'이 Function 항목은 오늘 사용할 함수입니다.Dim cell As Range
Dim result() As Variant
Dim count AsIntegerDim i AsInteger' 입력 값 검사If num <> 1And num <> 2Then
FilterOddEven = CVErr(xlErrValue) ' 숫자가 1, 2가 아니면 #VALUE! 에러를 나타냄ExitFunctionEndIf'결과 배열 만들기ReDim result(1To rng.count)
count = 0' 홀수(1) 또는 짝수(2) 조건에 맞는 값만 필터링
i = 1ForEach cell In rng
IfNot IsEmpty(cell.Value) ThenIf (num = 1And i Mod2 <> 0) Or (num = 2And i Mod2 = 0) Then
count = count + 1
result(count) = cell.Value
EndIfEndIf
i = i + 1Next cell
' 결과 배열 크기조절If count > 0ThenReDimPreserve result(1To count)
Else
FilterOddEven = CVErr(xlErrNA) ' 결과가 없으면 #N/A 반환ExitFunctionEndIf' 배열 반환
FilterOddEven = result
EndFunction'---------------------------------------------'↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓' 오늘의 주제인 설명을 추가하는 코드입니다.Sub AddDescription()
Dim funcName AsStringDim funcDesc AsStringDim paramDesc1 AsStringDim paramDesc2 AsString' ① 함수 이름을 정확하게 입력합니다.
funcName = "FilterOddEven"' ② 함수의 전체 설명입니다.
funcDesc = "함수의 설명 - 주어진 범위에서 홀수/짝수 리스트를 필터합니다."' ③ 매개변수 설명 설정
paramDesc1 = "리스트를 필터할 범위"
paramDesc2 = "필터할 기준을 선택합니다. 1 = 홀수번째 값, 2 = 짝수번째 값"' ④ 함수 옵션 등록
Application.MacroOptions Macro:=funcName, _
Description:=funcDesc, _
Category:="사용자 정의 함수", _
ArgumentDescriptions:=Array(paramDesc1, paramDesc2)
EndSub
이번에 예시로 들기 위해 작성해둔 사용자 함수를 사용하겠습니다. 위에 있는
"Function FilterOddEven(rng As Range, num As Integer) As Variant"에서 "End Function"까지는 그냥 예시입니다.
함수의 이름은 FilterOddEven이고 범위 하나와 숫자 하나를 계수로 받아들입니다.
오늘 소개하고 싶은 것은 아래 있는 "Sub AddDescription()" 구문입니다.
위의 코드의 ①, ②, ③번 부분은 설명과 같습니다.
함수의 이름과 함수 자체의 설명, 매개변수의 설명을 입력합니다.
④ Application.MacroOptions
이 부분이 메크로(코드)의 옵션을 변경하는 적용 어플리케이션입니다.
funcName 변수의 함수를 찾아서 Description(설명)과 Categoty(분류)를 변경합니다.
그리고 ArgumentDescriptions(매개변수)를 배열 형식으로 입력합니다.
※ 주의하실 점은 "Sub AddDescription()" 는 그냥 둔다고 되는 것이 아니고 F5나 ▶ 버튼을 눌러서 실행시켜야 합니다.
엑셀이 함수를 찾을 수 있도록 모듈을 만들어서 작성하거나 함수 바로 아래 작성해두고 단독으로 실행하면 됩니다.
한번만 실행하면 해당 문서에서는 계속 작동합니다.
설명을 보는 방법도 알려드리겠습니다.
아래 움짤로 보면 이해 되실 것 같습니다.
설명 확인하는 방법
함수를 다 타이핑해서 입력한 후에 함수키를 누르면 "함수 인수" 매뉴가 나타나는데 여기서 볼 수 있습니다.
함수키
방큼 코드를 통해 입력 한 설명이 정상적으로 입력 되었음을 알 수 있습니다.
좀 더 복잡하게도 넣을 수 있으니 사용자 함수를 여러개 사용하시는 분은 이런식으로 설명을 추가해 보세요.