Índice:
- Exemplos de função da planilha
- Entrando funções da planilha
- Mais sobre como usar as funções da planilha
Vídeo: Como criar MACRO no Excel FÁCIL | MACRO EXCEL 2016 - Criação de MACROS no Excel 2025
Embora o VBA ofereça uma variedade decente de funções internas, talvez nem sempre encontre exatamente o que precisa. Felizmente, você também pode usar a maioria das funções da planilha do Excel em seus procedimentos VBA. As únicas funções de planilha que você não pode usar são aquelas que possuem uma função VBA equivalente. Por exemplo, você não pode usar a função RAND do Excel (que gera um número aleatório) porque o VBA possui uma função equivalente: Rnd.
O VBA torna as funções da planilha do Excel disponíveis através do objeto WorksheetFunction, que está contido no objeto Application. Aqui está um exemplo de como você pode usar a função SUM da Excel em uma instrução VBA:
Total = Aplicação. Função de folha de trabalho. SUM (Faixa ("A1: A12"))
Você pode omitir a parte do aplicativo ou a parte da expressão da planilha da função. Em ambos os casos, a VBA descobre o que está fazendo. Em outras palavras, essas três expressões funcionam exatamente o mesmo:
Total = Aplicação. Função de folha de trabalho. SUM (intervalo ("A1: A12")) Total = Função da planilha. SUM (Faixa ("A1: A12")) Total = Aplicação. SUM (intervalo ("A1: A12"))
Minha preferência pessoal é usar a parte da folha de trabalho apenas para tornar perfeitamente claro que o código está usando uma função do Excel.
Exemplos de função da planilha
Aqui, você descobre como usar as funções da planilha em suas expressões VBA.
Encontrando o valor máximo em um intervalo
Aqui está um exemplo que mostra como usar a função de planilha MAX do Excel em um procedimento VBA. Esse procedimento exibe o valor máximo na coluna A da planilha ativa:
Sub ShowMax () Dim TheMax como duplo TheMax = WorksheetFunction. MAX (intervalo ("A: A")) MsgBox TheMax End Sub
Você pode usar a função MIN para obter o menor valor em um intervalo. E, como você pode esperar, você pode usar outras funções da planilha de forma semelhante. Por exemplo, você pode usar a função LARGE para determinar o k maior valor em um intervalo. A expressão a seguir demonstra isso:
SecondHighest = WorksheetFunction. LARGE (Range ("A: A"), 2)
Observe que a função LARGE usa dois argumentos. O segundo argumento representa a k th parte - 2, neste caso (o segundo maior valor).
Cálculo de um pagamento de hipoteca
O próximo exemplo usa a função de planilha PMT para calcular um pagamento de hipoteca. Três variáveis são usadas para armazenar os dados que passaram para a função Pmt como argumentos.Uma caixa de mensagem exibe o pagamento calculado.
Sub PmtCalc () Dim IntRate como Double Dim LoanAmt como períodos Dim Dim como Long IntRate = 0. 0625/12 Períodos = 30 * 12 LoanAmt = 150000 MsgBox WorksheetFunction. PMT (IntRate, Periods, -LoanAmt) End Sub
Como a seguinte instrução mostra, você também pode inserir os valores diretamente como argumentos da função:
MsgBox WorksheetFunction. PMT (0. 0625/12, 360, -150000)
No entanto, o uso de variáveis para armazenar os parâmetros torna o código mais fácil de ler e modificar, se necessário.
Usando uma função de pesquisa
O exemplo a seguir usa as funções InputBox e MsgBox do VBA, além da função VLOOKUP do Excel. Ele solicita um número de peça e, em seguida, obtém o preço de uma tabela de pesquisa. Abaixo, intervalo A1: B13 é denominado PriceList.
Sub GetPrice () Dim PartNum As Variant Dim Price As Folhas Double PartNum = InputBox ("Digite o número da peça") ("Preços"). Ativar preço = Função da planilha. VLOOKUP (PartNum, Range ("PriceList"), 2, False) MsgBox PartNum & "costs" & Price End Sub
Veja como funciona o procedimento GetPrice:
-
A função InputBox do VBA solicita ao usuário um número de peça.
-
O número de peça que o usuário insere é atribuído à variável PartNum.
-
A próxima declaração ativa a planilha de Preços, apenas no caso de não ser já a folha ativa.
-
O código usa a função VLOOKUP para encontrar o número da peça na tabela.
-
Observe que os argumentos que você usa nesta declaração são os mesmos que você usaria com a função em uma fórmula de planilha. Esta declaração atribui o resultado da função à variável Preço.
-
O código exibe o preço da peça através da função MsgBox.
Este procedimento não possui nenhum tratamento de erros, e ele falha miseravelmente se você inserir um número de peça inexistente. (Experimente.) Se este fosse um aplicativo real que seja usado em um negócio real, você gostaria de adicionar algumas declarações que lidam com erros de forma mais graciosa.
Entrando funções da planilha
Não é possível usar a caixa de diálogo Função de pasta de Excel para inserir uma função de planilha em um módulo VBA. Em vez disso, insira essas funções de forma antiquada: à mão. No entanto, você pode usar a caixa de diálogo Coleção de função para identificar a função que deseja usar e descobrir seus argumentos.
Você também pode aproveitar a opção de membros da lista automática do VBE, que exibe uma lista suspensa de todas as funções da planilha. Basta digitar Aplicação. WorksheetFunction , seguido de um período. Então você vê uma lista das funções que você pode usar. Se esse recurso não estiver funcionando, escolha o comando Ferramentas → Opções do VBE, clique na guia Editor e coloque uma seleção ao lado de Membros da Lista Automática.
Mais sobre como usar as funções da planilha
Os recém-chegados ao VBA muitas vezes confundem as funções integradas do VBA e as funções do livro da Excel. Uma boa regra para lembrar é que a VBA não tenta reinventar a roda.Na maior parte, o VBA não duplica as funções da planilha do Excel.
Para a maioria das funções de planilha que não estão disponíveis como métodos do objeto FunctionheetFunction, você pode usar um operador ou função incorporada VBA equivalente. Por exemplo, a função de planilha MOD não está disponível no objeto WorksheetFunction porque o VBA possui um equivalente: seu operador de modificação incorporado.
Bottom line? Se você precisa usar uma função, primeiro determine se o VBA tem algo que atende às suas necessidades. Caso contrário, confira as funções da planilha. Se tudo mais falhar, você poderá escrever uma função personalizada usando o VBA.
