Pesquisar este blog

domingo, 20 de outubro de 2013

OPERADOR \

Operador \


    Empregado para dividir dois números e retornar a parte inteira da divisão, desprezando a parte fracionária, utilizando a seguinte sintaxe:

Resultado = Número1 \ Número2
  • Antes da divisão ser efetuada, ambas as expressões são arredondadas para Byte, Integer ou Long. O valor resultante será do tipo Byte, Integer, Long ou uma Variant contendo o tipo Byte, Integer, Long , independentemente do resultado ser ou não um número inteiro;
  • Se uma das expressões for Null, o resultado será sempre Null (propagação do Null).
  • Se uma das expressões for uma Variant contendo Empty, o resultado será zero;
  • Se o denominador for zero (0), ocorrerá um erro por estouro de capacidade (overflow).

Exemplo: O exemplo que se segue indica como empregar o operador \ para efetuar uma divisão inteira:

Dim Valor as variant
Valor = 11\4 ‘Retorna 2
Valor = 12\4 ‘Retorna 3
Valor = 10\3 ‘Retorna 3

Até a Próxima!!

OPERADOR –

Operador –


    Empregado para encontrar a diferença entre dois números ou para indicar um valor negativo, utilizando a seguinte sintaxe:

    Resultado = Número1 – Número2

    Observação: A operação de subtração emprega as mesmas regras de precisão utilizadas para o operador de adição.

Exemplo: Os seguintes exemplos são válidos para o uso do operador “-“ no cálculo da diferença dos números ou datas:

Resultado = 2 – 2 ‘Retorna 0
Resultado = 123.45 – 100 ‘Retorna –22.45
Exp = 10: Exp2 = 20/01/2003  ‘Inicialização das variáveis
Resultado = Exp1 + Exp2 ‘Retorna 10/01/2003 – subtrai 10 dias da data 

Até a Próxima!!

OPERADOR *

Operador *


    Utilizado para multiplicar dois números, empregando a seguinte sintaxe:

Resultado = Número1 * Número2

    Ardem de precisão do operador de multiplicação não é a mesma empregada na adição e subtração. Tipo  de dado resultante é sempre aquela da expressão de maior precisão, sando obedecida a seguinte ordem de ascendência na precisão: Byte, Integer, Long, Single, Currency, Double e Decimal, exceto quando:
  • A multiplicação envolve um Single com um Long, resultando em um Double;
  • Se uma ou ambas as expressões forem Null, o resultado será sempre Null.
  • Se uma ou ambas as expressões forem Empty, o resultado será 0.

Exemplo: O exemplo a seguir demonstra o emprego do operador * para multiplicar duas expressões válidas:

Dim Valor as variant
Valor = 3*4 ‘Retorna 12

Valor = 123.45 * 100 ‘Retorna 12345

Até a Próxima!!

segunda-feira, 20 de maio de 2013

OPERADOR +

Operador +


    Operador de adição coma seguinte sintaxe:

Resultado = expressão1 + expressão2

    Se ambas as expressões forem valores numéricos, a soma aritmética será efetuada. Se um ou ambos os valores forem strings o VBA irá efetuar a concatenação das strings. Porém, se ambas as strings forem numéricas, o VBA poderá efetuar a soma e devolver para Resultado uma nova string numérica resultante. Para ter certeza de que strings são concatenadas, empregue o operador "&" de concatenação.

    Se pelo menos uma das expressões não for uma Variant, as seguinte regras se aplicam:
  • Se ambas as expressões forem dados numéricos de qualquer tipo (Byte, Boolean, Integer, Long, Single, Double, Date, Currency ou Decimal) ocorrerá a adição dos valores;
  • Se ambas as expressões forem strings, ocorrerá a concatenação das strings;
  • Se uma expressão for um tipo de dado numérico e a outra uma variável Variant diferente de Null, ocorrerá a adição das expressões;
  • Se uma expressão for uma string e a outra uma variável Variant diferente de Null ocorrerá a concatenação das expressões;
  • Se uma expressão for um tipo de dado numérico e a outra for uma string, ocorre erro Type mismatch (tipos não equivalentes);
  • Se uma ou ambas as expressões forem variáveis Variant contendo o valor Null, o resultado será sempre Null (chama-se propagação do Null);
  • Se ambas as expressões forem variáveis Variant contendo strings, ou forem variáveis String, ocorrerá a concatenação das expressões;
    Para operações de adição envolvendo apenas expressões de tipos de dados numéricos, o valor resultante será do tipo de dado mais preciso, empregando-se a seguinte ordem de precisão: Byte, Integer, Long, Single, Double, Currency e Decimal.

    São válidas as seguintes exceções para esta regra:
  • A adição de um valor Single, com um Long resulta em um Double;
  • A adição de qualquer valor a uma variável Date (data válida) resulta sempre em outra variável Date.
Exemplo: Os seguintes exemplos são válidos para as variáveis Resultado, Exp1 e Exp2, sem declaração específica de tipo (e portanto, consideradas pelo VBA como Variant):

Dim Resultado, Exp1, Exp2

Resultado = 2^2  ' Retorna 4
Resultado = 123.45 + 100 ' Retorna 223.45
Exp1 = "16": Exp2 = 8 ' Inicialização das variáveis
Resultado = Exp1 + Exp2  ' Retorna 24
Exp1 = "16": Exp2 = "8" ' Inicialização das variáveis
Resultado = Exp1 + Exp2  ' Retorna 168- concatenação das strings
Exp1 = 10: Exp2 = 20/01/2013 ' Inicialização das variáveis
Resultado = Exp1 + Exp2  ' Retorna 30/01/2013

Até a Próxima!!

OPERADOR ^

Operador ^


    Empregado para elevar um número à potência de um expoente, empregando a seguinte sintaxe:

Resultado = número ^ expoente

    Número poderá ser negativo apenas se o expoente for um valor inteiro. O valor resultante é do tipo Double (ou uma Variant contendo um valor Double). Caso o número ou Expoente sejam nulos (Null), o resultado será sempre nulo.

Exemplo: Neste exemplo, a variável Valor foi declarada sem definição de tipo, o que fará com que o VBA lhe atribua o tipo Variant, Após a operação de Exponenciação, Valor conterá um tipo Double.

Dim Valor
Valor = 2^4   ' Retorna 16
Valor = 16^(1/2)   ' Retorna 4

Até a Próxima!!

OPERADOR =

Operador =


    Empregado para atribuir um valor a uma variável ou propriedade, com a seguinte sintaxe:

Variável = valor

    O nome do lado esquerdo do sinal de igualdade pode indicar uma variável, elemento de uma matriz e propriedades definidas como leitura/gravação.

Até a Próxima!!

PRECEDÊNCIA DOS OPERADORES

Precedência dos operadores


    A precedência dos operadores indica o ordem predeterminada em que os cálculos serão efetuados. Quando uma expressão contém diversos tipos de operadores, os operadores aritméticos serão avaliados primeiro, seguidos do operadores de comparação e por último dos operadores lógicos.

    A ordem de precedência de cada tipo de operador pode ser verificada na próxima tabela, na qual a ordem de precedência está definida de cima para baixo e da esquerda para a direita.

Operadores aritméticos Operadores de comparação Operadores lógicos
Exponenciação (^) Igualdade (=) Not
Negação (-) Diferente (<>) And
Multiplicação (*) e Divisão (/) Menor que (<) Or
Divisão inteira (\) Maior que (>) XOR
Resto aritmético(Mod) Menor ou igual a (<=) Eqv
Adição (+) e Subtração (-) Maior ou igual a (>=) Imp
Concatenação (&) Like, Is  

Observações:

1° - Quando ocorre multiplicação e divisão (ou adição e subtração) em uma expressão matemática, cada operação é avaliada à medida que aparecem: da esquerda para a direita - pois ambas possuem a mesma ordem de precedência. Empregue parênteses para definir a ordem em que as operações matemáticas deverão ser efetuadas (lembre-se que a ordem de precedência é mantida dentro dos parênteses).

2° - Apesar do operador de concatenação (&) não ser um operador aritmético, quando o mesmo ocorrer em uma expressão, ele será executado após todos os operadores aritméticos e antes dos operadores lógicos.

3° - O operador Like, por ser empregado apenas em equivalências de padrões (muitas vezes empregando coringas) possui a mesma precedência dos operadores de comparação.

4° - O operador Is é empregado apenas para comparação de objetos entre si, não sendo indicado para comparar valores.

Até a Próxima!!