소개하는 내용은 아래 출처에 대한 설명입니다.
셀에 함수 마법사를 띄우는 방법은 기본적으로 아래와 같다.
Range.FunctionWizard
그러면 특정 함수에 대한 함수마법사를 띄우려면 어떻게 할까?
FunctionWizard 다이얼로그에는 설정하는 부분이 없어서 지정하기 어렵다.
먼저 함수를 셀에 입력하고 함수 마법사를 띄워보자
UDF가 아닌 내장함수를 아래처럼 내용없이 입력하면 오류로 함수 입력 자체가 안된다. (강력한 함수 오류방지 기능,,,)
Selection.Formula = "=UDF_NAME()"
Selection.FunctionWizard
내용은 맞는 것 같은데 실제 입력은 이상하게 된다.
첫번째 실행에서는 함수가 입력되고 함수마법사가 함수 지정없이 나온다.
두번째 이미 함수가 입력된 그 자리에서 실행하면 정상적으로 해당 UDF에 대한 함수마법사가 나온다.
?? 왜 바로는 안될까??
그래서 꼼수를...
함수마법사를 불러오는 것만 따로 프로시저를 만들고 OnTime을 이용해서 지연 실행을 해보자
Sub rbnFunctionWizard(ctrl As IRibbonControl)
Selection.Formula = "=UDF_NAME()"
Application.OnTime Now + TimeValue("00:00:01") / 4, "showFunctionWizard"
End Sub
Private Sub showFunctionWizard()
Selection.FunctionWizard
End Sub
이제 정상적으로 UDF에 대한 함수마법사가 실행된다.
'Excel - VBA' 카테고리의 다른 글
IsTime() 셀 값이 시간 값인지 어떻게 확인할 수 있을까? (0) | 2023.01.11 |
---|---|
VBA로 Add-In(추가기능) 자동 업데이트 하기 (0) | 2023.01.06 |
URL을 지정하여 File을 Download하기 (0) | 2023.01.06 |
Ribbon Menu에 토글버튼 사용하기 (0) | 2023.01.06 |
Ribbon Menu에서 매크로에 인수 전달하기 (0) | 2023.01.05 |