sourcecode

Excel 커스텀 함수 툴팁 탐색

copyscript 2023. 4. 14. 22:00
반응형

Excel 커스텀 함수 툴팁 탐색

이 질문은 이전에 질문한 적이 있지만, 매번 수락된 답변은 단순히 기능 설명을 제공하기 위한 포기일 뿐입니다.Application.MacroOptions(VBA6) (VBA7) 단, 이 정보는 실제로는 툴팁으로 표시되지 않기 때문에 문제가 해결되지 않습니다.

목표

우리가 원하는 것은 커스텀 함수(VBA, VSTO 또는 COM 애드인)를 어떤 방법으로든 정의할 수 있고, 사용자에게 인라인 또는 공식 바에 내장된 모든 Excel 함수에 대해 표시되는 함수와 파라미터에 대한 팝업/툴팁 설명의 이점을 제공하는 것입니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

이 요구에 대한 일반적인 대답은 커스텀 기능은 불가능하다는 것이지만, 저는 그 믿음에 도전하고 싶습니다.

문제

현재 내가 본 가장 좋은 방법은 함수를 정의하는 것입니다(많은 경우 위의 MacroOptions 호출을 사용). 함수 대화 상자(수식 막대의 fx 버튼)를 열 때 해당 함수와 파라미터의 설명이 다음과 같이 표시되도록 합니다.

여기에 이미지 설명 입력

보시다시피 이것은 많은 파라미터를 가진 복잡한 함수입니다.사용자가 이 "함수 인수" 대화 상자 및 대화 상자를 표시하는 방법을 알지 못하고 Excel의 표준 툴팁에만 익숙한 경우 수식 이름만 표시되고 추가 도움말은 표시되지 않습니다.

여기에 이미지 설명 입력

필요한 파라미터를 올바르게 제공할 가능성은 없습니다.(물론 어떤 사용자도 읽을 수 없습니다.)

파워 유저는 ++ShiftA를 입력하면 다음과 같은 함수 파라미터의 자동 완성 목록이 부여된다는 것을 알 수 있습니다.

여기에 이미지 설명 입력

그러나 물론 위와 같은 문제가 있습니다.즉, 표준 Excel 사용자는 첫 번째 이미지에서 기본 동작에만 익숙해져 해당 기능을 익히지 못할 수 있습니다.

이 시점에서 왜 이것이 충분하지 않은지, 그리고 모든 내장 기능에 필요한 것, 즉 사용자에게 기능의 사용법을 알려주는 인라인 툴팁이 필요합니다.

더 티즈

처음에는 원어민 Excel 어플리케이션 기능 이외에는 불가능하다고 생각했을지도 모릅니다.애드인과 VBA는 확장성 기능으로, 이 툴팁은 확장성이 없는 경우가 있습니다.그러나 이 이론은 Analysis Toolpak 애드인의 존재에 의해 도전받고 있습니다.물론 Microsoft에 내장되어 있지만 ANALYS32.xll은 VB, C, C++ 및 C#에서 제작할 수 있는 것과 마찬가지로 스탠드아론의 XLL 애드인입니다.이 XLL이 응용 프로그램에 로드될 때 사용할 수 있는 기능은 기본 Excel 함수와 동일한 툴팁을 가집니다.

여기에 이미지 설명 입력

이 정보가 이 XLL 파일에 인코딩되어 Excel에 전달되면 당사의 애드인으로 복제할 수 있는 방법이 있을까요?이제 디컴파일에 대해 조금 배우고 분석 툴파크에서 무슨 일이 일어나든 리버스 엔지니어링을 할 수 있는지 알아보겠습니다.

지원 방법

저는 이 문제에 대해 공개적으로 이용할 수 있는 모든 정보를 조사했다고 확신합니다.제가 모르는 것이 도움이 될 것 같다면, 주저하지 마시고 말씀하세요.저는 리버스 엔지니어링 컴파일된 dlls/xls에 대해 잘 모르기 때문에 Analysis32.xll의 로컬 카피를 열어 커스텀 함수 정의의 상황을 파악해 주시면 감사하겠습니다.그렇지 않으면, 내가 모든 막다른 골목에 다다를 때까지 계속 파헤치고 내가 발견한 것을 보고할 거야.

엑셀-DNA IntelliSense 프로젝트로 GitHub에 개념 실증 프로젝트를 올렸습니다.

UI Automation 클래스를 사용하여 적절한 Excel 사용자 인터페이스 이벤트를 모니터링하면 적절한 양식이 표시됩니다.

코드는 Excel-DNA 애드인으로 포장되어 있으며 Excel 2013/Windows 8 머신에서 작동합니다.다른 1개의 구성(Windows Server 2008의 64비트 Excel 2010)에서 테스트한 결과 심각한 문제가 발생했습니다.

다음과 같이 Excel-DNA 속성으로 정의된 C# 함수의 경우:

[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;
}

두 가지 기능 설명을 모두 얻을 수 있습니다.

기능 설명

그리고 함수를 선택할 때, 우리는 인수 도움말을 받는다.

인수 도움말

보기엔 좋은데, 여전히 아주 엉망이고, 내 기계에서만 작동하며 가끔 Excel이 크래시 됩니다.그게 시작일 수도 있지만...


2014년 5월 9일 갱신:

이전 버전의 Excel 및 Windows에서 이 주장을 효과적으로 사용할 수 있도록 하는 방법에 대해 몇 가지 연구를 진행했습니다.하지만 모든 것을 믿을 수 있도록 하기 위해서는 아직 많은 노력이 필요합니다.도움이 필요하신 분은 저에게 직접 연락주시기 바랍니다.


2016년 6월 18일 갱신:

Excel-DNA 애드인과 VBA 기능에 대한 Excel UDF IntelliSense 지원 테스트는 현재 진행 중입니다.자세한 내용은 GitHub의 Getting Started 페이지를 참조하십시오.

어때.

  1. 셀의 키 누르기 이벤트에 입력 텍스트를 캡처합니다.이렇게
  2. 텍스트가 사용자 지정 함수와 일치하는지 확인합니다.
  3. 일치하는 경우 레이블이나 모양과 같은 것을 표시하여 툴팁으로 위장합니다.이렇게

이거 받아도 돼요?

그것은 조금 못생겼지만 더 쉽다.

XLL이 뭐죠?

XLL은 Excel 또는 Excel Add-in Manager가 호출하는 여러 프로시저를 내보내는 DLL입니다.http://msdn.microsoft.com/en-us/library/office/bb687861.aspx

XLL은 어떻게 개발합니까?

Excel XLL SDK with Visual C++(또는 DLL을 컴파일하여 SDK 프로시저를 호출할 수 있는 모든 것)

심플한 XLL을 작성하기 위한 빠른 가이드는 어디서 구할 수 있습니까?

http://support.microsoft.com/kb/178474

툴팁은 어떻게 얻을 수 있나요?

  1. 기능을 절차로 구현하여 내보내기
  2. xlAutoOpen(void) 구현 및 내보내기 절차 - http://msdn.microsoft.com/en-us/library/office/bb687860.aspx
  3. xlAutoOpen은 xlfRegister - http://msdn.microsoft.com/en-us/library/office/bb687900.aspx 에 전화하기만 하면 됩니다.
  4. 툴팁의 경우 특히 주의해야 할 사항은 다음과 같습니다.pxArgumentText, pxFunctionHelp, pxArgumentHelp1

안타깝게도 Analysis Toolpak 애드인에는 툴팁도 없습니다.

저의 해결방법은 틀렸습니다만, 원래의 포스터에 잘못된 정보가 게재되어 있습니다.BINOMDIST를 사용한 사진 표시(링크가 ANALYS32.xll의 기능이 아님을 명확하게 나타내는 경우).

이것은 내가 불가능한 문제를 풀려고 했다는 것을 의미한다.포스터가 요청한 것을 할 수 있는 XLL이 없기 때문입니다.XLL의 툴팁을 표시하는 Excel 버전을 찾으면 알려주세요.

포스터가 XLL의 동작을 흉내내려고 한 것에 대해서는, ANALYS32.xll의 동작에 관해서, 제 답변이 가장 정확했다고 생각합니다.

언급URL : https://stackoverflow.com/questions/16903587/the-quest-for-the-excel-custom-function-tooltip

반응형