NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalTutoriaisHerbertgois : Programandovbnet016
Quer receber novidades e e-books gratuitos?

FILTRO DE TUTORIAIS:


Programando com VB.NET

 

USANDO PROCEDIMENTOS (continuação)

 

Durante os dois últimos tutoriais enquanto aprendíamos sobre os procedimentos Sub e Function, você notou que o Visual Studio adiciona automaticamente à frente dos argumentos a palavra ByVal, como no exemplo que criamos:

 

Sub SomaNumeros(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer)

 

End Sub

 

ou

 

Function PercentualVitorias(ByVal Total As Short, ByVal vitorias As Short) As String

 

End Function

 

ByVal significa que estamos passando o conteúdo da variável por valor (Padrão). Então como no exemplo acima, se passamos uma variável ele pega apenas uma cópia do valor da variável e passa para o procedimento, se o dado for alterado o conteúdo da variável original não é alterado.

 

ByRef significa que estamos passando uma referência ao conteúdo da variável. Então, se mudamos o valor, alteramos também o conteúdo da variável original.

 

Para entender melhor vamos fazer um exemplo bem simples, mas que ilustra bem isso.

 

ByVal ou ByRef

 

Vamos usar um projeto novo desta vez.

 

1 - Crie um projeto no Visual Studio do tipo Windows Application, chamado ByVal ou ByRef.

 

2 - Arraste para o Form1 os seguintes controles:

 

» 1 Button

» 1 TexBox

 

3 - Organize-os como a imagem:

 

 

4 - Na classe do Form1, crie o seguinte procedimento Sub:

 

    Sub Teste(ByVal a As Integer)

        a += 10

        MsgBox(a.ToString)

    End Sub

 

Nossa sub simplesmente soma 10 ao valor que foi passado a ela como parâmetro e mostra uma caixa de diálogo com o valor.  Deve ficar assim no painel de código:

 

 

5 - Agora no modo Design, de um clique duplo sobre o Button1 e digite o seguinte código:

 

           Dim numero As Integer = 5

        Teste(numero)

        Label1.Text = numero.ToString

 

A primeira linha declara uma variável chamada numero do tipo Integer e atribui 5 a ela A segunda faz a chamada  ao procedimento Teste que criamos. A terceira linha simplesmente pega o conteúdo da variável numero e exibe no Label1. Deve ficar assim no painel de código:

 

 

6 - Execute a aplicação.

 

 

7 - Clique no Button1.

 

É exibida a caixa de diálogo da Sub como a figura abaixo:

 

 

Como passamos a variável numero como parâmetro e o conteúdo dela é 5, esse valor somado a 10 na Sub é o valor exibido pela caixa de diálogo.

 

8 - Clique em OK.

 

 

Depois que ele executa a Sub ele pega o valor da variável e exibe na Label1, perceba que o valor permanece sendo 5, ou seja ele efetuou a soma na Sub mais não alterou o valor da variável número.

 

9 - Pare a execução do programa.

 

10 - No painel de código, altere o ByVal da Sub Teste para ByRef, como no exemplo abaixo:

 

Sub Teste(ByRef a As Integer)

 

11 - Execute novamente a aplicação.

 

12 - Clique no Button1.

 

A mensagem é exibida como anteriormente.

 

13 - Clique em OK.

 

 

Só que desta a Sub alterou o conteúdo da variável número, porque usamos o ByRef. Essa é a diferença entre os dois.

 

Fique a vontade para usar o Debug do Visual Studio para analisar esse exemplo passo-a-passo.

 


Confira todos os artigos de Certificações .NET:

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI