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: PrincipalArtigos › ASP 3.0 › Capítulo 03 : 04
Quer receber novidades e e-books gratuitos?
« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
SITES DINÂMICOS COM ASP 3.0 - CURSO COMPLETO
Autor: Júlio Battisti


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


Lição 024 - Capítulo 03 - Criando suas próprias funções e procedimentos

Neste item, aprenderemos a criar nossas próprias funções e Sub-rotinas . O princípio por trás da criação de  funções e sub-rotinas, é o de reaproveitamento de código e facilidade de manutenção do programa. Imagine que estejamos criando uma página para cálculos financeiros, por exemplo, depreciação contábil. Vamos supor que em diversos pontos do nosso Script, seja necessária a realização do cálculo de depreciação. Poderíamos colocar o código que faz o cálculo, em cada um dos pontos, onde o mesmo seja necessário. Porém esta não é a melhor maneira de criarmos nosso Script. Imagine, por exemplo, quando fosse necessário alterar a maneira de realizar os cálculos. Teríamos que repassar todo o Script, procurando os pontos onde o código está , e fazer as alterações. Sem contar que estaríamos criando um Script bastante longo, dependendo do número de cálculos necessários.

Para resolver estes problemas, poderíamos criar uma função ou sub-rotina que faz os cálculos de depreciação. Depois, em cada local onde precisamos fazer os cálculos, é só chamar a função (ou sub-rotina), para fazer os cálculos. Quando fosse necessária a alteração da metodologia de cálculo, era só alterar a função (ou sub-rotina) e pronto,  os novos cálculos passarão a ser feitos com base na nova metodologia. Isto poupa esforço, reduz o número de linhas do Script, e facilita a manutenção do mesmo, além de reduzir a possibilidade de erros. Agora é chegada a hora de aprendermos a criar funções e sub-rotinas.

Um termo que pode aparecer é o termo procedimento. Um procedimento é um grupo de instruções que pode ser chamado pelo nome atribuído ao procedimento. Neste contexto, funções e sub-rotinas, são tipos de procedimentos.

Criando e utilizando Sub-rotinas

Uma sub-rotina é um grupo de comandos que podem ser executados, simplesmente através da chamada do nome da Sub-rotina. Podemos passar um ou mais argumentos para uma Sub-rotina. Quando uma sub-rotina é chamada, a execução desloca-se para dentro da Sub-rotina, depois de executados todos os comandos dentro da Sub-rotina, a execução do Script continua, com o comando seguinte ao que chamou a Sub-rotina.

A sintaxe para declaração de uma Sub-rotina é a seguinte:

Sub Nome_da_Sub-rotina(argumento1, argumento2, ..., argumenton)

                Comando1

                Comando2

                ...

                Comandon

End Sub

Uma Sub-rotina pode, ou não, conter argumentos. Caso sejam necessários argumentos, os mesmos serão passados quando a Sub-rotina for chamada, e devem ser passados, na mesma ordem em que foram definidos.

DICA! Quando você criar Sub-rotinas, procure utilizar nomes que descrevam a função da Sub-rotina. Com isso você torna o entendimento do código mais fácil para quem for utilizá-lo.

Considere o seguinte exemplo de declaração de uma Sub-rotina:

Sub Calcula_imposto(salario, desconto, extras)

                Comando1

                Comando2

                ...

                Comandon

End Sub

Neste caso, declaramos uma rotina chamada Calcula_imposto, a qual espera receber 3 parâmetros: salario, desconto e extras. Os parâmetros devem ser fornecidos nesta ordem, para que a Sub-rotina funcione corretamente.

Uma vez criada a Sub-rotina, podemos chamá-la, simplesmente digitando o nome da Sub-rotina, ou utilizando a palavra Call, mais o nome da Sub-rotina. Nos exemplos abaixo, temos dois métodos de chamada da Sub-rotina Calcula_imposto:

Calcula_imposto(1500,23,125)

ou

Call Calcula_imposto(1500,23,125)

Observe que os parâmetros são passados dentro do parênteses.

Também poderíamos declarar uma Sub-rotina, sem parâmetros. Neste caso posso simplesmente não utilizar os parênteses após o nome da Sub-rotina, ou utilizar um par de parênteses, sem nada dentro, conforme indicado abaixo:

Sub Nome_da_Sub-rotina

                Comando1

                Comando2

                ...

                Comandon

End Sub

ou

Sub Nome_da_Sub-rotina( )

                Comando1

                Comando2

                ...

                Comandon

End Sub

Por exemplo, poderíamos criar uma Sub-rotina que exibe uma Caixa de mensagem com a Data do sistema e a hora, no Formato indicado na Figura 3.46:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 3.46 Exibindo a data e a hora em uma caixa de mensagem.

Poderíamos criar todos os comandos necessários, para exibir a hora e a data neste formato, cada  vez que a exibição fosse necessária. Porém é mais prático criar uma Sub-rotina que faz este trabalho. Cada vez que precisarmos exibir a data e a hora neste formato, é só chamarmos a Sub-rotina.

Na Listagem 3.8,   temos o código da Sub-rotina exibe_data_hora, a qual faz a exibição da data e da hora, no formato proposto pela Figura 3.46.

Listagem 3.8 – A Sub-rotina exibe_data_hora

1             Sub exibe_data_hora

2                 mes_atual=Month(Date())

3                 mes_nome=MonthName(mes_atual,False)

4                 mensagem = "Ano atual: " & Year(Date()) & Chr(13)

5                 mensagem = mensagem & "Mês atual: " & mes_nome & Chr(13)

6                 mensagem = mensagem & "Hoje é dia: " & Day(Date())& Chr(13)

                   mensagem = mensagem & Chr(13) & "***************" & Chr(13)& Chr(13)

7                 hora_atual = Hour(Time())

8                 minuto_atual = Minute(Time())

9                 secundo_atual = Second(Time())

10               mensagem = mensagem & "Hora atual: " & hora_atual & chr(13)

11               mensagem = mensagem & "Minuto atual: " & minuto_atual & chr(13)

12               mensagem = mensagem & "Secundo atual: " & secundo_atual

13               MsgBox mensagem

14           End Sub

Agora, cada vez que for necessário exibir a data e a hora nos formatos do exemplo, basta chamar a Sub-rotina exibe_data_hora, utilizando um dos seguintes comandos:

Call exibe_data_hora

ou

exibe_data_hora

Criando e utilizando Funções

Uma Função é um grupo de comandos que podem ser executados, simplesmente através da chamada do nome da Funçao. Podemos passar um ou mais argumentos para uma Função. Quando uma Função é chamada, a execução desloca-se para dentro da Função, depois de executados todos os comandos dentro da Função, a execução do Script continua, com o comando seguinte ao que chamou a Função. A diferença da Função para a Sub-rotina, é que a Função sempre retorna um valor para o comando que a chamou.

A sintaxe para declaração de uma Função é a seguinte:

Function Nome_da_Função(argumento1, argumento2, ..., argumenton)

                Comando1

                Comando2

                ...

                Comandon

End Function

Uma Função pode, ou não, conter argumentos. Caso sejam necessários argumentos, os mesmos serão passados quando a Função for chamada, e devem ser passados, na mesma ordem em que foram definidos.

DICA! Quando você criar Função, procure utilizar nomes que descrevam os objetivos da Função. Com isso você torna o entendimento do código mais fácil para quem for utilizá-lo.

Considere o seguinte exemplo de declaração de uma Função:

Função Converte_para_dolar(valor_em_real, cotacao_dolar)

                Comando1

                Comando2

                ...

                Comandon

End Function

Neste caso, declaramos uma Função chamada Converte_para_dolar, a qual espera receber 2 parâmetros: um valor em real e a cotação do dólar.

Uma vez criada a Função, devemos chamá-la, em um comando de atribuição, isto é, o valor retornado pela função, deve ser atribuído a uma variável, ou exibido através de um comando como MsgBox. No exemplo abaixo, estamos atribuindo o valor de retorno da função, à variável valor_dolar.

valor_dolar = Converte_para_dolar (1500,1.81)

Também poderíamos exibir o valor retornado pela função, utilizando o comando MsgBox, conforme indicado a seguir:

MsgBox “Valor em dólar: “ & Converte_para_dolar (1500,1.81)

Observe que os parâmetros são passados dentro dos parênteses, e na mesma ordem definida quando da criação da função.

Também poderíamos declarar uma Função, sem parâmetros. Neste caso posso simplesmente não utilizar os parênteses após o nome da Função, ou utilizar um par de parênteses, sem nada dentro, conforme indicado abaixo:

Function Nome_da_Função

                Comando1

                Comando2

                ...

                Comandon

End Function

ou

Sub Nome_da_Função( )

                Comando1

                Comando2

                ...

                Comandon

End Function

Por exemplo, vamos criar uma função que converte um valor de um ângulo de Graus para Radianos. Depois utilizaremos a função dentro de um laço For...Next, para exibir o valor em radianos, para os ângulos de 0 à 20 graus.

Na Listagem 3.9, temos o exemplo de um Script onde foi criada a função CRad, que converte um valore em graus para radianos. Depois utilizamos um laço for para exibir, através de uma Caixa de mensagem os valores em radianos, para os ângulos de 0 à 20 graus.

Listagem 3.9 – A Função CRad – Converte valores de graus para radianos.

1             <HTML>

2             <HEAD>

3             <TITLE>Exemplo de criação de função – CRad.</TITLE>

4             </HEAD>

5             <BODY>

6             <SCRIPT LANGUAGE=vbscript>

7             <!--

8             ‘Criação da função CRad.

9             Function CRad(valor_graus)

10               CRad = (valor_graus*3.14)/180

11           End Function

12           For i=0 to 20

13             mensagem = mensagem & "Angulo: " & i & " Valor em Radianos: " &                

               FormatNumber(CRad(i),5)& Chr(13)

14           Next

15           MsgBox mensagem

16           -->

17           </SCRIPT>

18           <P>Converte de graus para radianos.</P>

19           </BODY>

20           </HTML>

Observe que dentro da função, atribuímos a variável CRad um determinado valor. É isso que caracteriza uma função. Dentro do código da função, devemos atribuir a uma variável que tenha o mesmo nome da função, um determinado valor. Este valor é que será o valor de retorno da função.

Também cabe salientar o uso da função FormatNumber, dentro do laço For. A função FormatNumber é utilizada para formatar a maneira como um número é exibido. Neste caso, utilizamos a função FormatNumber, para limitar o número de casas decimais, a 5 casas depois da vírgula.

Em cada passada do laço For...Next, chamamos a função CRad, para fazer a conversão de Graus para radianos. O Valor retornado pela função CRad, é passado para a função FormatNumber, para ser formatado com apenas 5 casas decimais.

A linha 13 está sendo exibida em duas linhas, por questões de espaço. Quando for criar este script, todo o conteúdo da linha 13, deve ser digitado em uma única linha.


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • 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-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI