VBA – Retornar um Valor de um Subprocedimento

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 4, 2023

Este tutorial demonstrará como retornar um valor de um subprocedimento no VBA.

Um subprocedimento não foi projetado para retornar um valor – é para isso que um procedimento de função é usado. No entanto, pode haver um momento em que você esteja executando algum código em um subprocedimento e precise obter um valor desse subprocedimento. A maneira de fazer isso é usar variáveis de módulo ou globais ou usar um subprocedimento para preencher uma planilha do Excel.

Uso de Variáveis para Retornar um Valor

Você pode declarar variáveis em nível de módulo. Ao fazer isso, essas variáveis podem ser usadas em qualquer lugar dentro do módulo e as variáveis mantêm seus valores. Para declarar uma variável em nível de módulo, basta declarar a variável na parte superior do módulo de código:

Option Explicit
Dim dblQtd as Double

Sub TesteA()
'chamar a sub TesteB
 Call TesteB
'mostrar o valor da variável na janela do módulo
 Debug.Print dblQtd
End Sub
Sub TesteB()
'preencher a variável do módulo
 dblQtd = 900
End Sub

Para juntar tudo isso, executamos o TesteA, que, por sua vez, chamaria o TesteB e nos daria o valor de 900 na janela imediata.

usando variavel global

Isso só funciona dentro do módulo, pois a variável foi declarada usando a instrução Dim no nível do módulo.

Variável Global

Você pode declarar a variável em um nível global para usá-la em todos os módulos do projeto.

usando-variavel-publica

Uso de um Subprocedimento para Preencher uma Planilha do Excel

Outra maneira de fazer referência a valores calculados a partir de um subprocedimento é simplesmente gravar os dados em uma planilha do Excel e, em seguida, fazer referência a esses dados em outro procedimento.

Sub PreencherIntervalo()
 Range("A1") = "Produto"
 Range("B1") = "Quantidade"
 Range("C1") = "Custo"
End Sub

Em seguida, é possível fazer referência a esses valores em outro procedimento, referenciando os valores das células:

Sub RecuperarIntervalor()
 Dim Produto as String, Quant as String, Custo as String

 Produto = Range("A1")
 Quant = Range("B1")
 Custo = Range("C1")
End Sub
vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA