[excel] 사용자 정의 함수에 도구 설명을 추가하는 방법

Excel 2007에서 사용자 정의 함수에 설명 및 매개 변수 힌트를 추가하려면 어떻게합니까? 기본 제공 함수에 대한 함수 호출을 입력하기 시작하면 Excel에 설명 및 매개 변수 목록 (도구 설명)이 표시됩니다. 내가 정의한 기능에 대해 동일한 작업을하고 싶습니다.

수식 삽입 마법사뿐만 아니라 수식 상자에 키 "=myFun("를 입력 "("하면 도구 설명이 다음과 같이 표시됩니다."=average("

VBA 도움말에는 도움이없고 MSDN에는없고 내가 찾을 수있는 Excel 및 VBA 전용 포럼에는 전혀 도움이되지 않으므로 이것은 분명히 긴 기회입니다.



답변

Stephen Bullen의 Professional Excel Development에서는 UDF를 등록하는 방법에 대해 설명합니다.이를 통해 함수 인수 대화 상자에 설명을 표시 할 수 있습니다.

Function IFERROR(ByRef ToEvaluate As Variant, ByRef Default As Variant) As Variant
    If IsError(ToEvaluate) Then
        IFERROR = Default
    Else
        IFERROR = ToEvaluate
    End If
End Function

Sub RegisterUDF()
    Dim s As String
    s = "Provides a shortcut replacement for the common worksheet construct" & vbLf _
    & "IF(ISERROR(<expression>), <default>, <expression>)"

    Application.MacroOptions macro:="IFERROR", Description:=s, Category:=9
End Sub

Sub UnregisterUDF()
    Application.MacroOptions Macro:="IFERROR", Description:=Empty, Category:=Empty
End Sub

출처 : http://www.ozgrid.com/forum/showthread.php?t=78123&page=1

함수 인수 대화 상자를 표시하려면 함수 이름을 입력하고를 누릅니다 CtrlA. 또는 수식 입력 줄에서 “fx”기호를 클릭합니다.

여기에 이미지 설명 입력


답변

툴팁 솔루션은 아니지만 적절한 해결 방법 :

UDF 입력을 =MyUDF(시작한 다음 CTRL+ Shift+ 를 누르면 A기능 매개 변수가 표시됩니다. 이러한 매개 변수에 의미있는 이름이있는 한 최소한 실행 가능한 프롬프트가 있습니다.

예를 들면 다음과 같습니다.

=MyUDF(+ CTRL+ Shift+A

다음과 같이 바뀝니다.

=MyUDF(sPath, sFileName)


답변

이에 대한 답변을 수락 한 것을 알고 있지만, 이제 Excel-DNA 추가 기능을 통해 또는 내부에 인텔리 센스 서버를 등록하여 다른 엑셀 기능과 같이 인텔리 센스 스타일 완성 상자 팝업을 얻을 수있는 솔루션이 있습니다. 자신의 추가 기능. 여기를 참조하십시오 .

지금, 나는 그 일의 C #을 방법을 선호 – 그것은 엑셀-DNA, 구현이 그 모든 클래스 내부로 훨씬 간단 IExcelAddin추가 기능 프레임 워크 집어 가지고있다 AutoOpen()그리고 AutoClose()당신은 /에 가까운 추가를 열 때 실행 방금이 필요합니다 그래서. :

namespace MyNameSpace {
    public class Intellisense : IExcelAddIn {
        public void AutoClose() {
        }
        public void AutoOpen() {
            IntelliSenseServer.Register();
        }
    }
}

그런 다음 (그리고 이것은 github 페이지에서 가져온 것입니다) 함수에 ExcelDNA 주석을 사용하기 만하면됩니다.

[ExcelFunction(Description = "A useful test function that adds two numbers, and returns the sum.")]
public static double AddThem(
    [ExcelArgument(Name = "Augend", Description = "is the first number, to which will be added")]
    double v1,
    [ExcelArgument(Name = "Addend", Description = "is the second number that will be added")]
    double v2)
{
    return v1 + v2;
}

ExcelDNA 주석을 사용하여 주석이 추가 된 경우 인텔리 젠스 서버는 인수 이름과 설명을 선택합니다.

여기에 이미지 설명 입력
여기에 이미지 설명 입력

VBA와 함께 사용하는 예도 있지만 VBA에 너무 관심이 없기 때문에 해당 부분을 사용하지 않습니다.


답변

함수의 “도움말”버전을 생성합니다. 자동 완성 기능의 바로 아래에 표시됩니다. 사용자는 지침을 위해 인접한 셀에서 대신 선택할 수 있습니다.

Public Function Foo(param1 as range, param2 as string) As String

    Foo = "Hello world"

End Function

Public Function Foo_Help() as String

Foo_Help = "The Foo function was designed to return the Foo value for a specified range a cells given a specified constant." & CHR(10) & "Parameters:" & CHR(10)
& "  param1 as Range   :   Specifies the range of cells the Foo function should operate on." & CHR(10)
&"  param2 as String  :   Specifies the constant the function should use to calculate Foo"
&" contact the Foo master at master@foo.com for more information."

END FUNCTION

캐리지 리턴은 자동 줄 바꿈을 사용하여 가독성을 향상시킵니다. 하나의 돌을 가진 2 마리의 새, 이제 기능에 몇 가지 문서가 있습니다.


답변

또한이 매크로를 사용하여 인수 및 UDF에 설명을 할당 할 수 있습니다.

Private Sub RegisterMyFunction()
Application.MacroOptions _
    Macro:="SampleFunction", _      '' Your UDF name
    Description:="calculates a result based on provided inputs", _
    Category:="My UDF Category", _  '' Or use numbers, a list in the link below
    ArgumentDescriptions:=Array( _  '' One by each argument
        "is the first argument.  tell the user what it does", _
        "is the second argument.  tell the user what it does")
End Sub

여기Kendall 과 원래 게시물에 대한 크레딧 . 위해 UDF 카테고리


답변

@will의 방법이 최고입니다. 저처럼 이전에 ExcelDNA를 사용하지 않은 사람들에 대한 세부 정보에 대해 몇 줄만 추가하면됩니다.

https://github.com/Excel-DNA/IntelliSense/releases 에서 Excel-DNA IntelliSense를 다운로드합니다.

두 가지 버전이 있으며 하나는 64 용이며 Excel 버전을 확인하십시오. 제 경우에는 64 버전을 사용하고 있습니다.

Excel / Developer / Add-Ins / Browse를 열고 ExcelDna.IntelliSense64.xll을 선택합니다.

새 시트를 삽입하고 이름을 ” IntelliSense “로 변경하고 함수 설명을 https://github.com/Excel-DNA/IntelliSense/wiki/Getting-Started 와 같이 추가합니다.

그럼 즐기세요! 🙂

여기에 이미지 설명 입력


답변

불행히도 UDF 인수에 대한 도구 설명을 추가 할 수있는 방법이 없습니다.
Remou의 답변을 확장하려면 http://www.jkp-ads.com/Articles/RegisterUDF00.asp 에서 Function Wizard에 대한 설명에 대한보다 완전하지만 복잡한 접근 방식을 찾을 수 있습니다
.