Tutorial de função Excel VBA: retorno, chamada, exemplos

O que é uma Função?

Uma função é um trecho de código que executa uma tarefa específica e retorna um resultado. As funções são usadas principalmente para realizar tarefas repetitivas, como formatar dados para saída, realizar cálculos, etc.

Suponha que você esteja desenvolvendo um programa que calcula os juros de um empréstimo. Você pode criar uma função que aceite o valor do empréstimo e o período de retorno. A função pode então usar o valor do empréstimo e o período de reembolso para calcular os juros e retornar o valor.

Por que usar funções

As vantagens de usar funções são as mesmas da seção acima sobre por que usar sub-rotinas.

Regras de nomenclatura de funções

As regras para nomenclatura funcionam como as da seção acima sobre regras para nomenclatura de sub-rotinas.

Sintaxe VBA para declarar função

Private Function myFunction (ByVal arg1 As Integer, ByVal arg2 As Integer)
    myFunction = arg1 + arg2
End Function

AQUI na sintaxe,

Code Ação
  • “Função privada myFunction(…)”
  • Aqui a palavra-chave “Function” é usada para declarar uma função chamada “myFunction” e iniciar o corpo da função.
  • A palavra-chave 'Privado' é usada para especificar o escopo da função
  • “ByVal arg1 como inteiro, ByVal arg2 como inteiro”
  • Ele declara dois parâmetros do tipo de dados inteiro denominados 'arg1' e 'arg2'.
  • minhaFunção = arg1 + arg2
  • avalia a expressão arg1 + arg2 e atribui o resultado ao nome da função.
  • “Função final”
  • “End Sub” é usado para finalizar o corpo da função

Função demonstrada com exemplo:

As funções são muito semelhantes à sub-rotina. A principal diferença entre uma sub-rotina e uma função é que a função retorna um valor quando é chamada. Embora uma sub-rotina não retorne um valor, quando é chamada. Digamos que você queira adicionar dois números. Você pode criar uma função que aceite dois números e retorne a soma dos números.

  1. Crie a interface do usuário
  2. Adicione a função
  3. Escreva o código para o botão de comando
  4. Teste o código

Passo 1) Interface com o usuário

Adicione um botão de comando à planilha conforme mostrado abaixo

Funções e sub-rotina VBA

Defina as seguintes propriedades de CommanButton1 como segue.

S / N Controlar Imóvel Valor
1 BotãoComando1 Nome btnAdicionarNumbers
2 Subtítulo Adicione Numbers função


Sua interface agora deve aparecer da seguinte forma

Funções e sub-rotina VBA

Passo 2) Código de função.

  1. Pressione Alt + F11 para abrir a janela de código
  2. Adicione o seguinte código
Private Function addNumbers(ByVal firstNumber As Integer, ByVal secondNumber As Integer)
    addNumbers = firstNumber + secondNumber
End Function

AQUI no código,

Code Ação
  • “Adicionar Função PrivadaNumbers(...) "
  • Ele declara uma função privada “addNumbers”que aceita dois parâmetros inteiros.
  • “ByVal primeiroNumber como inteiro, ByVal segundoNumber como inteiro”
  • Ele declara duas variáveis ​​de parâmetro firstNumber e secondNumber
  • "adicionarNumbers = primeiroNúmero + segundoNúmero”
  • Ele adiciona os valores firstNumber e secondNumber e atribui a soma para adicionarNumbers.

Etapa 3) Escreva o código que chama a função

  1. Clique com o botão direito em btnAddNumbers_Clique no botão de comando
  2. Selecione Ver código
  3. Adicione o seguinte código
Private Sub btnAddNumbersFunction_Click()
    MsgBox addNumbers(2, 3)
End Sub

AQUI no código,

Code Ação
“MensagemBox adicionarNumbers(2,3)"
  • Ele chama a função addNumbers e passa 2 e 3 como parâmetros. A função retorna a soma dos dois números cinco (5)

Passo 4) Execute o programa, você obterá os seguintes resultados

Funções e sub-rotina VBA

Baixe o Excel contendo o código acima

Baixe o código Excel acima

Resumo

  • Uma função é um trecho de código que executa uma tarefa específica. Uma função retorna um valor após a execução.
  • Tanto as sub-rotinas quanto as funções oferecem capacidade de reutilização de código
  • Tanto as sub-rotinas quanto as funções ajudam a dividir grandes pedaços de código em pequenos códigos gerenciáveis.