Pesquisar este blog

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!!