Compartilhar via


Usar funções de planilha do Excel no Visual Basic

Use a maioria das funções de planilha do Microsoft Excel em suas instruções do Visual Basic. Para obter uma lista das funções de planilha que você pode usar, confira Lista de funções de planilha do Visual Basic.

Observação

Algumas funções de planilha não são úteis no Visual Basic. Por exemplo, a função Concatenate não é necessária, porque no Visual Basic você pode usar o operador & para unir vários valores de texto.

Chamar uma função de planilha no Visual Basic

No Visual Basic, as funções de planilha do Excel estão disponíveis através do objeto WorksheetFunction.

O procedimento Sub a seguir usa a função de planilha Min para determinar o menor valor em um intervalo de células. Primeiro, a variável myRange é declarada como um objeto Range e, em seguida, é definida para o intervalo A1:C10 na Planilha1. À variável answer é atribuído o resultado da aplicação da função Min ao myRange. Por fim, o valor de answer é exibido em uma caixa de mensagem.

Sub UseFunction() 
 Dim myRange As Range 
 Set myRange = Worksheets("Sheet1").Range("A1:C10") 
 answer = Application.WorksheetFunction.Min(myRange) 
 MsgBox answer 
End Sub

Se usar uma função de planilha que exija uma referência de intervalo como argumento, você deve especificar um objeto Range. Por exemplo, você pode usar a função de planilha Match para pesquisar em um intervalo de células. Em uma célula de planilha, você deverá inserir uma fórmula como =MATCH(9,A1:A10,0). No entanto, em um procedimento do Visual Basic, você especificaria um objeto Range para obter o mesmo resultado.

Sub FindFirst() 
 myVar = Application.WorksheetFunction _ 
 .Match(9, Worksheets(1).Range("A1:A10"), 0) 
 MsgBox myVar 
End Sub

Observação

As funções do Visual Basic não usam o qualificador WorksheetFunction. Uma função pode ter o mesmo nome que uma função do Microsoft Excel e mesmo assim funcionar de modo diferente. Por exemplo, Application.WorksheetFunction.Log e Log retornarão valores diferentes.

Inserir uma função de planilha em uma célula

Para inserir uma função de planilha em uma célula, você deve especificar a função como o valor da propriedade Formula do objeto Range correspondente. No exemplo a seguir, a função de planilha RAND (que gera um número aleatório) é atribuída à propriedade Formula do intervalo A1:B3 na Planilha1 na pasta de trabalho ativa.

Sub InsertFormula() 
 Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()" 
End Sub

Exemplo

Este exemplo usa a função de planilha Pmt para calcular um pagamento de hipoteca. Observe que este exemplo usa o método InputBox em vez da função InputBox para que o método possa executar verificação de tipo. As declarações Static fazem com que o Visual Basic retenha os valores dessas três variáveis, que serão exibidos como valores padrão na próxima vez que você executar o programa.

Static loanAmt 
Static loanInt 
Static loanTerm 
loanAmt = Application.InputBox _ 
 (Prompt:="Loan amount (100,000 for example)", _ 
 Default:=loanAmt, Type:=1) 
loanInt = Application.InputBox _ 
 (Prompt:="Annual interest rate (8.75 for example)", _ 
 Default:=loanInt, Type:=1) 
loanTerm = Application.InputBox _ 
 (Prompt:="Term in years (30 for example)", _ 
 Default:=loanTerm, Type:=1) 
payment = Application.WorksheetFunction _ 
 .Pmt(loanInt / 1200, loanTerm * 12, loanAmt) 
MsgBox "Monthly payment is " & Format(payment, "Currency")

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.