Resumo
Nas versões do Microsoft Excel listadas na secção "Aplica-se a", pode criar uma função definida pelo utilizador que devolve um cálculo personalizado com Visual Basic for Applications. No entanto, as funções definidas pelo utilizador não podem executar ações que alterem o ambiente do Microsoft Excel quando são chamadas por uma fórmula numa célula da folha de cálculo.
Mais Informações
Uma função definida pelo utilizador chamada por uma fórmula numa célula de folha de cálculo não pode alterar o ambiente do Microsoft Excel. Isto significa que tal função não pode efetuar nenhum dos seguintes procedimentos:
-
Inserir, eliminar ou formatar células na folha de cálculo.
-
Alterar o valor de outra célula.
-
Mover, mudar o nome, eliminar ou adicionar folhas a um livro.
-
Altere qualquer uma das opções de ambiente, como o modo de cálculo ou as vistas de ecrã.
-
Adicionar nomes a um livro.
-
Defina propriedades ou execute a maioria dos métodos.
O objetivo das funções definidas pelo utilizador é permitir que o utilizador crie uma função personalizada que não esteja incluída nas funções que são enviadas com o Microsoft Excel. As funções incluídas no Microsoft Excel também não podem alterar o ambiente. As funções podem efetuar um cálculo que devolve um valor ou texto à célula em que são introduzidas. Quaisquer alterações ambientais devem ser efetuadas através da utilização de uma subrreplicação do Visual Basic. Durante o cálculo, o Excel examina os precedentes da célula que contém uma função definida pelo utilizador. Se nem todos os precedentes tiverem sido calculados até ao momento durante o processo de cálculo, o Excel acaba por chamar a função definida pelo utilizador e passa uma célula Nula ou Vazia para a função. Em seguida, o Excel garante que ocorrem passes de cálculo suficientes para que todos os precedentes sejam calculados. Durante a passagem do cálculo final, a função definida pelo utilizador é transmitida aos valores atuais das células. Isto pode fazer com que a função definida pelo utilizador seja chamada com mais frequência do que o esperado e com argumentos inesperados. Por conseguinte, a função definida pelo utilizador pode devolver valores inesperados.Para um cálculo correto, todos os intervalos utilizados no cálculo devem ser transmitidos à função como argumentos. Se não transmitir os intervalos de cálculo como argumentos, em vez de se referir aos intervalos dentro do código VBA da função, o Excel não poderá contabilizá-los no motor de cálculo. Por conseguinte, o Excel pode não calcular adequadamente o livro para garantir que todos os precedentes são calculados antes de calcular a função definida pelo utilizador.
Referências
"Visual Basic User's Guide" versão 5.0, Capítulo 4, "What Is a Visual Basic Procedure" "Writing a user-defined worksheet function", Microsoft Excel 7.0 Visual Basic Help File.