Esta é uma pergunta sobre o escopo .
Se você deseja que apenas as variáveis durem a vida útil da função, use Dim
(abreviação de Dimension ) dentro da função ou sub para declarar as variáveis:
Function AddSomeNumbers() As Integer
Dim intA As Integer
Dim intB As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are no longer available since the function ended
Uma variável global (como SLaks apontou) é declarada fora da função usando a Public
palavra - chave Essa variável estará disponível durante a vida útil do seu aplicativo em execução. No caso do Excel, isso significa que as variáveis estarão disponíveis enquanto a pasta de trabalho em particular do Excel estiver aberta.
Public intA As Integer
Private intB As Integer
Function AddSomeNumbers() As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are still both available. However, because intA is public, '
'it can also be referenced from code in other modules. Because intB is private,'
'it will be hidden from other modules.
Você também pode ter variáveis acessíveis apenas dentro de um módulo (ou classe) específico, declarando-as com a Private
palavra - chave.
Se você estiver criando um grande aplicativo e sentir necessidade de usar variáveis globais, recomendo a criação de um módulo separado apenas para suas variáveis globais. Isso deve ajudá-lo a acompanhá-los em um só lugar.