Excel4v/Excel12v
Aplica-se a: Excel 2013 | Office 2013 | Visual Studio
Chama uma função de planilha interna do Microsoft Excel, uma função ou comando de planilha de macro ou uma função ou comando especial somente XLL, de dentro de um recurso de DLL, XLL ou código.
Todas as versões recentes do Excel dão suporte ao Excel4v. A partir do Excel 2007, há suporte para Excel12v .
Essas funções só podem ser chamadas quando o Excel passou o controle para a DLL ou XLL. Eles também podem ser chamados quando o Excel passou o controle indiretamente por meio de uma chamada para Visual Basic for Applications (VBA). Eles não podem ser chamados em nenhum outro momento. Por exemplo, eles não podem ser chamados durante chamadas para a função DllMain ou outras vezes em que o sistema operacional chamou a DLL ou de um thread criado pela DLL.
As funções Excel4 e Excel12 aceitam seus argumentos como uma lista de comprimento variável na pilha, enquanto as funções Excel4v e Excel12v aceitam seus argumentos como uma matriz. Em todos os outros aspectos, o Excel4 se comporta da mesma forma que o Excel4v e o Excel12 se comporta da mesma forma que o Excel12v.
int _cdecl Excel4v(int iFunction, LPXLOPER pxRes, int iCount, LPXLOPER rgx[]);
int _cdecl Excel12v(int iFunction, LPXLOPER12 pxRes, int iCount, LPXLOPER12 rgx[]);
Parâmetros
iFunction (int)
Um número que indica o comando, a função ou a função especial que você deseja chamar. Para obter uma lista de valores iFunction válidos, consulte a seção Observações a seguir.
pxRes (LPXLOPER ou LPXLOPER12)
Um ponteiro para um XLOPER (no caso do Excel4v) ou um XLOPER12 (no caso do Excel12v) que manterá o resultado da função avaliada.
iCount (int)
O número de argumentos subsequentes que serão passados para a função. Em versões do Excel até 2003, esse pode ser qualquer número de 0 a 30. A partir do Excel 2007, este pode ser qualquer número de 0 a 255.
rgx (LPXLOPER [] ou LPXLOPER12 [])
Uma matriz que contém os argumentos para a função. Todos os argumentos na matriz devem ser ponteiros para valores XLOPER ou XLOPER12 .
Valor de retorno
Essas funções retornam os mesmos valores que Excel4 e Excel12.
Comentários
Essas funções são úteis quando o número de argumentos passados para o operador é variável. Por exemplo, Excel4v e Excel12v são úteis quando você registra funções usando xlfRegister , onde o número de argumentos totais depende do número de argumentos tomados pela função que está sendo registrada. Excel4v e Excel12v também são úteis quando você grava uma função wrapper para Excel4 ou Excel12. Nesses casos, você precisa converter uma lista de argumentos variáveis, como normalmente seria fornecido para Excel4 ou Excel12, em um único argumento de matriz de tamanho variável para chamar de volta ao Excel usando Excel4v ou Excel12v.
Exemplo
Para obter exemplos de código, consulte o código para as funções Excel e Excel12f no SDK XLL do Excel 2010, no local a seguir em que você instalou o SDK:
Samples\Framewrk\Framewrk.c