Esta pergunta já foi feita antes , mas cada vez que a resposta aceita é simplesmente uma renúncia para fornecer descrições de função usando Application.MacroOptions
( VBA6 ) ( VBA7 ), mas essa informação não aparece realmente como uma dica de ferramenta, então não resolve meu problema.
O objetivo
O que todos desejamos é ser capaz de definir funções personalizadas por qualquer meio (VBA, VSTO ou suplemento COM) e dar ao usuário o benefício de uma descrição pop-up / dica de ferramenta da função e seus parâmetros, como aparece para todas as funções integradas do Excel, inline ou na barra de fórmulas:
A resposta amplamente aceita para essa necessidade é que não é possível para funções personalizadas, mas desejo desafiar essa crença.
O problema
Atualmente, o melhor que já vi alguém fazer é definir funções (geralmente usando a chamada MacroOptions acima) para que, ao abrir a caixa de diálogo da função (o botão fx na barra de fórmulas), suas descrições de função e parâmetro apareçam como abaixo:
Como você pode ver, esta é uma função complicada com muitos parâmetros. Se o usuário não estiver ciente dessa caixa de diálogo de "argumentos de função" e como abri-la e, em vez disso, estiver familiarizado apenas com a dica de ferramenta padrão do Excel, verá apenas o nome da fórmula e nenhuma ajuda adicional:
Com o qual eles não têm chance de fornecer corretamente os parâmetros necessários. (Sem ler a documentação, o que, claro, nenhum usuário faz.)
Agora, um usuário avançado pode saber que, digitando Ctrl+ Shift+ A, ele receberá uma lista auto-completada de parâmetros de função como:
Mas é claro, temos o mesmo problema acima, que é que os usuários padrão do Excel só estarão acostumados com o comportamento padrão da primeira imagem e provavelmente nunca terão aprendido esse recurso.
Deve estar claro neste ponto porque isso não é suficiente e queremos o que cada função integrada tem - a dica de ferramenta em linha que informa ao usuário como usar a função.
A provocação
No começo, eu poderia estar convencido de que isso simplesmente não é possível, exceto com as funções nativas do aplicativo Excel. Suplementos e VBA são recursos de extensibilidade e esta dica de ferramenta pode simplesmente não ser extensível. Mas essa teoria é desafiada pela existência do suplemento Analysis Toolpak. Claro, ele é construído na Microsoft, mas ANALYS32.xll é um suplemento XLL autônomo, assim como aqueles que podem ser produzidos em VB, C, C ++ e C #. Com certeza, quando este XLL é carregado no aplicativo, as funções que ele disponibiliza têm as mesmas dicas de ferramentas das funções nativas do Excel:
Certamente, se essa informação for de alguma forma codificada neste arquivo XLL e passada para o Excel, há uma maneira de replicá-la com nossos próprios suplementos. Estou no ponto agora em que vou começar a me ensinar um pouco sobre descompilar e ver se consigo fazer a engenharia reversa de tudo o que está acontecendo no conjunto de ferramentas de análise.
Como você pode ajudar
Tenho quase certeza de que pesquisei todas as informações disponíveis publicamente sobre esse problema. Se alguém souber de algo que eu não sei que possa ajudar com isso, sinta-se à vontade para intervir. Não estou muito familiarizado com dlls / xlls compilados por engenharia reversa, então se alguém quiser abrir sua cópia local de Analysis32.xll e descobrir o que está acontecendo com suas definições de funções personalizadas, eu ficaria muito grato. Do contrário, continuarei investigando sozinho até chegar a todos os becos sem saída e relatar o que encontrar.