Pesquisar este blog

terça-feira, 22 de outubro de 2013

ENUM

Enum


    Instrução empregada para declarar tipo de enumerados, úteis para criar séries sucessivas de consrantes utilizadas em seu código, usando a seguinte sintaxe:

[Public | Private] Enum Nome
Enum1 [=expressão]
Enum2 [=expressão]
...

End Enum

  • Public: Argumento opcional que especifica que o tipo do enumerador é visível em todo o projeto. Enum é público por padrão;
  • Private: Argumento opcional, especificando que o tipo do enumerador é visível apenas no módulo em que foi declarado;
  • Nome: Argumento obrigatório, indica o nome do tipo do enumerador;
  • Enum1, Enum2...: Argumento obrigatório, é um nome válido para especificar o nome atribuído a cada um dos elementos enumerados;
  • Expressão: Argumento opcional, indica o valor do elemento enumerado (normalmente do tipo Long). Se a expressão não for especificada, o valor atribuído será zero (0) para o primeiro elemento enumerado e será somado 1 para cada um dos demais elementos imediatamente que o sucedem.

As seguintes considerações são válidas sobre enumeradores:
  • A instrução Enum pode aparecer apenas ao nível do módulo;
  • O valor atribuído a um enumerador é constante, não podendo ser alterado em tempo de execução;
  • Uma vez que uma instrução Enum é criada, você pode empregá-la para declarar variáveis, argumentos ou tipos de dados retornados por procedimentos;
  • Enum aceita valores negativos para os elementos enumerados;
  • O nome atribuído a um enumerador não pode ser o mesmo nome de um módulo;
  • Não é possível percorrer um tipo de dado enumerado em um bloco With.

Exemplo: O exemplo a seguir mostra como empregar a instrução Enum para definir uma coleção de constantes sucessivas, onde Anterior recebe -1, Primeiro = 0, Próximo = 1 e último = 2.

Public Enum TipoDeAcesso

Anterior = -1
Primeiro
Próximo
Último
End Enum

Até a Próxima!!

DIM

Dim


    Instrução para declaração de variáveis e alocação de espaço de memória, que utiliza esta sintaxe:
Dim [WithEvents] Nome [([índices])] [As [New] Tipo] [,WithEvents] Nome ...

Onde os argumentos são:
  • WithEvents: Argumento opcional, a instrução WithEvents é válida apenas em módulos Classe, sendo uma palavra-chave que especifica que a variável é uma variável empregada para responder a eventos disparados pelo objeto ActiveX que ela representa. Não é possível declarar variáveis matrizes ou empregar a instrução New com WithEvents;
  • Nome: Argumento obrigatório indicando o nome da variável;
  • Índices: Argumento opcional, indica a dimensão de uma variável matriz (array). Você pode declarar até 60 dimensões para uma variável, utilizando a seguinte sintaxe:
  • MenorDimensão To] MaiorDimensão [, MenorDimensão To] ...

    Quando um argumento MenorDimensão não é explicitamente declarado, a menor dimensão de uma matriz é controlada pela instrução Option Base 9padrão = 0).
  • New: Argumento opcional, é uma palavra-chave que permite a criação implícita de um novo exemplar de um objeto na primeira referência feita a ela no seu código (quando uma variável de objeto é declarada As New TipoDeObjeto, não é necessário empregar uma instrução Set variável = New TipoDeObjeto para criá-lo durante  a execução do código). A palavra-chave New não pode ser empregada para: declarar variáveis que não sejam objetos, para criar exemplares d objetos dependentes de outros objetos ou ser empregada com WithEvents;
  • Tipo: Argumento opcional, é o tipo de dados do valor retornado por procedimentos Function existentes na DLL, podendo ser Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (de comprimento variável), Variant, um tipo definido pelo usuário ou um tipo de objeto;

As seguintes considerações são válidas sobre a instrução Dim:
  • Variáveis declaradas com Dim ao nível de módulo estão disponíveis para todos os procedimentos existentes no módulo. Caso sejam declaradas dentro de um procedimento, estão disponíveis apenas para o procedimento;
  • Quando uma variável declarada com Dim não possui o tipo de dados especificado, ela será definida para o tipo de dados Variant, a menos que se empregue uma das instruções DefType para definir o tipo de dados padrão;
  • Não há distinção entre instrução Dim e a instrução Private quando a variável é declarada ao nível de módulo. Porém, recomenda-se que ao n´vel de módulo você empregue a instrução Private, para tornar seu código mais claro;
  • É possível declarar múltiplas variáveis com uma única instrução Dim, utilizando uma mesma linha de código. Entretanto, todas as variáveis deverão ter seu tipo de dados explicitamente declarado, ou serão consideradas como Variant;
  • A instrução Dim pode ser empregada para declarar variáveis de objeto com ou sem o emprego da palavra-chave New. Quando New não for utilizado para a declaração de uma variável de objeto, você deverá obrigatoriamente utilizar a instrução Set Variável as New Objeto parc criar um novo exemplar do objeto desejado, ou ocorrerá um erro em tempo de execução ao tentar acessar sua interface;
  • Quando uma variável de objeto é declarada sem a palavra-chave New, seu valor será a constante Nothing até que a variável seja inicializada com a instrução Set;
  • Você pode empregar a instrução Dim Variável () (seguida de parênteses vazios) para declarar uma matriz dinâmica, sem dimensão definida. Dentro do procedimento, empregue a instrução ReDim para redimensionar a matriz para o número de dimensões desejado;
  • Quando variáveis de dados são inicializadas, variáveis numéricas possuem o valor zero (0), variáveis String o valor “” (string vazia), e variáveis String de comprimento fixo são preenchidas com zeros. Variáveis Variant são inicializadas com o valor padrão do tipo a ele atribuído;
  • É boa norma de programação empregar a declaração de variáveis no início do módulo ou procedimento onde elas se aplicam.

Exemplo: O exemplo que se segue demonstra como empregar a instrução Dim para declarar variáveis numéricas, matrizes e objetos. O valor padrão para o índice inferior de uma matriz é zero (0), a menos que explicitamente alterado por uma instrução Option Base.

‘ Variável Valor1 Valor2 não tem tipo declarado (consideradas Variant)
Dim Valor1, Valor2
‘ Declaração implícita de variáveis Long
Dim Valor As Llong
‘ Múltiplas declarações em uma única linha exigem a declaração de tipo individual
Dim Resultado As Boolean, DataNasc As Date
‘ Dias é uma matriz de 311 elementos pois Option Base = 0, com elementos de 0 a 30
Dim Dias(30)
‘ Matriz1 é bidimensional de 20 elementos do tipo Integer
Dim Matriz1(3,4) As Integer
‘ Matriz2 é tridimensional do tipo Long com dimensões explicitamente declaradas
DimMyMatriz(1 To 6, 3 To 10, 4 To 8) As Long
‘ Matriz3 é uma matriz dinâmica, sem dimensões definidas
Dim Matriz3()

Até a Próxima!!

DEFTYPE

DefType


    Instruções empregadas ao nível do módulo para definir o tipo padrão de variáveis, argumentos passados  para procedimentos e valores retornados por procedimentos Function e Property Get, cujos nomes se iniciem pelo caractere especificado, utilizando esta sintaxe:

DefType FaixaDeLetras1 [, FaixaDeLetras2] ...

Onde,
  • DefType: é o nome da instrução que define o padrão para tipo de dado, podendo se DefBoll (para Boolean), DefByte (para Byte), DefInt 9para Integer), DefLng (para Long), DefCur (para Currency), DefSng (para Single), DefDbl (para Double), DefDate (para Date), DefStr (para String), DefObj (para Object), DefVar (para Variant);
  • FaixaDelETRAS: Argumento obrigatório que especifica a faixa de letras que define a primeira letra de variáveis de um determinado tipo.
As seguintes considerações são válidas para a instrução DefType:
  • A instrução DefType utilizada afeta apenas o módulo atual no qual é declarada;
  • Ao se especificar uma faixa de letras para um tipo de dado, normalmente supõe-se que as variáveis se iniciem com os primeiros 128 caracteres da tabela ASCII. Porém, ao especificar a faixa A-Z, define-se o tipo padrão de variáveis cujo tipo não foi declarado explicitamente, mesmo que o caractere inicial da variável seja um caractere estendido (situado na faixa de 128-255 da tabela ASCII);
  • Uma vez que a faixa A-Z foi especificada, não é mais possível empregar outras instruções DefType, ou ocorrerá um erro de compilação;
  • A instução DefType não afeta membros de variáveis cujo tipo definido pelo usuário, pois seus elementos devem ser explicitamente declarados.

Exemplo: O exemplo que se segue demonstra como definir que o tipo padrão de todas as variáveis iniciadas com as letras A-F será Long:

DefLng A-F
DefInt G-K
DefStr S
Function Teste ()
Dim eValor
Dim iValor
Dim sTexto
eValor = 1 ‘gValor é do tipo Long, pois recebeu o tipo padrão
iValor = 1.5 ‘iValor é Integer, contendo o valor 1
sTexto = “Texto” ‘sTexto é do tipo String
End Function

Até a Próxima!!

DECLARE

Declare


    Instrução empregada apenas ao nível do módulo para referenciar procedimentos externos contidos em DLLs (Dynamic Link Library), utilizando estas sintaxes:

[Public |Private] Declare Sub Nome Lib “DLL” [Alias “Apelido”] [(Args)]
[Public |Private] Declare Function Nome Lib “DLL” [Alias “Apelido”] [(Args)] [As Tipo]


Onde os argumentos são:
  • Public: Argumento opcional empregado apenas ao nível de módulo para declarar procedimentos públicos (disponíveis para todos os procedimentos de todos os módulos de aplicativo). Não pode ser empregada no interior de um procedimento;
  • Private: Argumento opcional empregado apenas ao nível de módulo para declarar procedimentos privados (disponíveis apenas para os procedimentos existentes no módulo atual). Não pode ser empregada no interior de um procedimento;
  • Sub: Argumento opcional que indica que o procedimento não retorna um valor;
  • Function: Argumento opcional que indica que o procedimento retorna um valor, o qual pode ser empregado em uma expressão;
  • Nome: Argumento obrigatório que indica o nome do procedimento a ser executado existente na DLL. Os nomes de procedimentos são sensíveis à capitalização das letras;
  • Lib: Argumento obrigatório, indica que uma DLL contém o procedimento declarado;
  • DLL: Argumento obrigatório, indica o nome do arquivo (arquivo.DLL) que contém o procedimento declarado;
  • Alias: Argumento opcional, indica que o procedimento será chamado utilizando-se um apelido. Este artifício é útil para evitar conflitos de nomes de procedimentos existentes em DLL como nome de variáveis públicas, constantes ou funções do VBA;
  • Apelido: Argumento opcional, indica que o nome real do procedimento no interior da DLL. Se o primeiro caractere não for um sinal numérico (#), o nome do apelido será o mesmo nome existente na DLL. Caso o primeiro caractere seja #, todos os caracteres que o precedem indicam a posição do procedimento dentro da DLL;
  • Args: Argumento opcional, indica a lista de argumentos esperados pelo procedimento a ser executado pela DLL. A lista de argumentos Args possui a seguinte sintaxe:
[ArgumentoOpcional] {ByVal |ByRref] [ParamArray] Variável [()] [As Tipo]

Onde:
    • ArgumentoOpcional: Indica um argumento não obrigatório. Porém se o argumento for utilizado, todos os demais argumentos na lista de argumentos também deverão ser opcionais, declarados com palavra-chave Optional;
    • ByVal: Argumento opcional que indica que o argumento é passado por valor;
    • ByRef: Indica que o argumento é passado por referência (padrão do VBA);
    • ParamArray: Argumento opcional, empregado apenas como o último argumento da lista, indicando que o argumento é uma matriz ou Variant contendo uma matriz de elementos. A palavra-chave ParamArray permite que você forneça um número arbitrário de argumentos, não podendo ser empregada com Byval, ByRef ou Optional;
    • Variável: Argumento obrigatório, indica o nome da variável a ser passada para o procedimento;
    • (): Argumento obrigatório para variáveis matrizes, indicando que o nome do argumento é uma matriz;
    • Tipo: Argumento opcional, indica o tipo do argumento passado para o procedimento, podendo ser Byte, Boolean, Integer, Long, Curreny, Single, Double, Date, String (de comprimento variável), Object, Variant, um tipo definido pelo usuário ou um tipo de objeto;
As seguintes considerações são válidas para a instrução Declare:
  • Quando especificar o tipo de dado na lista de argumentos, você podará utilizar o tipo As Any para inibir a verificação de tipo durante a chamada do procedimento (qualquer tipo pode ser passado, porém, se você não empregar o tipo esperado pelo procedimento existente na DLL, um erro fatal poderá ocorrer retirando o sistema do ar);
  • Parênteses vazios indicam que o procedimento não possui qualquer argumento a ser passado;
  • Você não pode declarar uma String de comprimento fixo na lista de argumentos. Porém, como muitas DLLs retornam dados e valores em strings, é comum declarar uma string de comprimento fixo fora da instrução Declare e passa-la por referência para o procedimento existente na DLL;
  • A constante VBNullString é empregada ao se chamar procedimentos em DLL que exigem que a string tenha um valor Nulo (strings terminadas como caractere Null). Esta opção é diferente do emprego de “” (string vazia);
  • Módulos Classe permitem apenas o emprego de instruções Declare privadas (utilizando a instrução Private)

Exemplo: O próximo exemplo indica como utilizar a função Declare para declarar procedimentos em DLLs em um módulo do VBA, utilizando DLLs de 16 e 32 bits (DLLs de 16 bits podem ser acessadas apenas em aplicativos 16 bits, como o Microsoft Access versão 2 e Visual Basic 4 16 bits):

‘Usando Microsoft Windows 16-bits
Declare Sub MeuBeep Lib “User.DLL” Alias “MessageBeep” (ByVal N As Integer)
‘Usando Microsoft Windows 32-bits
Declare Sub MeuBeep Lib “User32.DLL” Alias “MessageBeep” (ByVal N As Integer)
‘ Use a posição original do procedimento dentro da DLL.
Declare Function GetWinFlags Lib “Kernel” Alias “#132” () As Long

Até a Próxima!!

CREATEOBJECT

CreateObject


    Função empregada para criar e retornar uma referência a um objeto ActiveX passível de ser acessado pelo seu aplicativo, utilizando esta sintaxe:

CreateObject(Classe, [NomeDoServidor])

Onde os argumentos são:
  • .Classe: Argumento obrigatório, do tipo Variant ou String, contendo o nome do aplicativo e classe do objeto a ser criado, fornecido com a sintaxe Aplicativo.Objet, onde:
    • Aplicativo: Argumento obrigatório indicando o nome do aplicativo (ou do servidor ActiveX) fornecedor do objeto;
    • Obejto: Argumento obrigatório indicando o tipo ou a classe do objeto a ser criado.
    • NomeDoServidor: Argumento opcional do tipo Variant ou String, indica o nome do servidor de rede onde o objeto será criado. Se o nome do servidor for uma String vazia (“”), o objeto será criado na máquina local.
As seguintes considerações são válidas para a função CreateObject:
  • Tipo de aplicativo capaz de suportar a automação OLE fornece pelo menos um tipo de objeto. Por exemplo, o Microsoft Excel fornece um objeto Application que por sua vez possui um objeto Sheet (planilha);
  • Para criar um objeto é obrigatório atribuir o objeto retornado a uma variável declarada As Variant, As Object ou As Tipo, onde tipo é o mesmo tipo de objeto a ser criado;
  • Ao declarar uma variável como sendo do tipo Variant ou Object, o acesso aos métodos deste objeto será do tipo tardio (late bound), impedindo o VBA de efetuar verificações de consistência no seu código no momento da compilação;
  • Para permitir o acesso precoce (early bound) à interface do objeto criado, declare uma variável como sendo do mesmo tipo do objeto que ela irá conter. Referências precoces fornecem sempre uma melhor performance na execução do seu código. Note que para criar referências precoces, o projeto atual do VBA deverá ter uma referência explícita ao modelo de objetos que se quer acessar (criada com o comando de menu Ferramentas/Referências do VBA);
  • Ao criar uma referência a um objeto utilizando a função CreateObject, um novo exemplar do servidor daquele objeto será criado na memória do seu computador, independentemente de haver ou não outro exemplar em execução (por exemplo, a cada execução da instrução Obejto = CreateObject(“Excel.Sheet”), um novo exemplar do Excel será aberto);
  • Para referenciar um exemplar de um objeto que já esteja sendo executado na memória do seu computador, empregue a função GetObject;
  • Você pode criar um objeto remoto em um computador servidor de rede, passando para o argumento NomeDoServidor o caminho UNC completo para o servidor. Por exemplo, a expressão \\Servidor\C indica que o nome do computador onde o objeto é criado é “Servidor”. Para fazer com que o aplicativo se torne visível no computador remoto, pode ser necessário adicionar uma entrada no Registo do computador que cria o objeto (consulte a documentação da COM – Component Object Model – do Microsoft Developer Network para maiores informações).

Exemplo: O exemplo a seguir cria uma referência tardia (early bound)) a uma planilha do Microsoft Excel, utilizando a função CreateObject e acessa propriedades e métodos do objeto criado:

Public Sub Teste ()
Dim Planilha As Object
Set Planilha = CreateObject(“Excel.Sheet”)
‘ Torne a Planilha visível
Planilha.Application.Visible = True
‘ Coloque o texto “”VBA” na célula A1
Planilha.Application.Cells (1,1).Value = “VBA”
‘ Obtenha a versão atual do Excel na célula B1
Planilha.Application.Cells (1,2).Value = Planilha.Application.Version
‘ Grave a Panilha e feche o Excel
Planilha.Application.Save “C:\TesteCreateObject.XLS”
Planilha.Application.Quit
‘ Libere a variável de objeto
Set Planilha = Nothing
End Sub

    O próximo exemplo cria uma referência precoce ao modelo de objetos do Microsoft Excel, permitindo ao VBA efetuar verificações de consistência na sintaxe empregada no seu código. Repare nesse caso, é necessário criar uma sucessão de objetos hierárquicos no código, de acordo com a estrutura do modelo de objetos exposto pelo Excel:

Public Teste ()
Dim MSExcel As Excel.Application
Dim PastaDeTrabalho As Excel.Workbook
Dim Planilha As Excel.WorkSheet
Set MSExcel = CreateObject(“Excel.Application”)
Set PastaDeTrabalho = MSExcel.WorkBooks.Add
Set Planilha = PastaDeTrabalho.WorkSheets(1)
‘ Torne o Excel visível
MSExcel.Visible = True
‘ Coloque o texto “”VBA” na célula A1
Planilha.Cells(1,1).Value = “VBA”
‘ Obtenha a versão atual do Excel na célula B1
Planilha.Cells(1,2).Value = MSExcel.Version
‘ Grave a Planilha e feche o Excel
Planilha.SaveAs “C\:TesteCreateObject.XLS”
MSExcel.Quit
‘ Libere a variável de objeto.
Set MSExcel = Nothing
End Sub

Até a Próxima!!

CONST

Const


    Instrução empregada para declaração das constantes a serem utilizadas em seus procedimentos, de forma a evitar o emprego de números literais (ou números mágicos), facilitando a manutenção e compreensão do código, utilizando esta sintaxe:

[Public |Private] Const NomeDaConstante [As Tipo] = expressão

Onde os argumentos são:
  • Public: Argumento opcional empregado apenas ao nível do módulo para declarar procedimentos públicos (disponíveis para todos os procedimentos de todos os módulos de aplicativo), não pode ser empregada no interior de um procedimento;
  • Private: Argumento opcional empregado apenas ao nível de módulo para declarar procedimentos privados (disponíveis apenas paras os procedimentos existentes no módulo atual), não pode ser empregada no interior do procedimento;
  • NomeDaConstante: Argumento obrigatório, indica o nome da constante a ser criada;
  • Tipo: Argumento opcional, indica o tipo de dado da constante, podendo ser Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String ou Variant. É obrigatório o emprego da cláusula As Tipo para cada constante declarada;
  • Expressão: Argumento obrigatório, é o valor literal (ou constante) a ser atribuído à constante declarada, podendo ser qualquer combinação de valores e operadores lógicos ou aritméticos, excetuando-se o operador Is.
  • São válidas as seguintes considerações sobre constantes:
  • Constantes são privadas por padrão, a menos que declaradas com a instrução Public. Quando declaradas dentro de procedimentos, são obrigatoriamente privadas. Módulos Classe, não aceitam constantes públicas;
  • Você pode declarar diversas constantes em uma mesma linha de código, separando seus valores por vírgulas. Neste caso, ao se empregar a palavra-chave Public no início da linha, todas as constantes declaradas nesta linha serão públicas;
  • Não é permitido empregar funções ou variáveis na composição de expressões que definem o valor de uma constante: apenas valores literais são aceitos;
  • Se você não declara explicitamente o tipo de uma constante, o tipo de dado que ela contém será  o mais adequado para a expressão fornecida em sua declaração;

Exemplo: Este exemplo emprega a instrução Const para declarar constantes no lugar de valores literais:

Const Pi = 3.141515
Const Dia1 = “Segunda-feira”
Const Um Terço = 1/3

Até a Próxima!!

CALLBYNAME

CallByName


    Função empregada para definir ou acessar o valor de uma propriedade, ou executa um método qualquer existente em um objeto, utilizando esta sintaxe:

CallByName(Objeto, Procedimento, TipoDeChamada, [Argumentos])

Onde os argumentos são:
  • Objeto: Argumento obrigatório do tipo Variant ou Objeto, referindo-se ao nome de um objeto no qual o procedimento será executado;
  • Procedimento: Argumento obrigatório do tipo Variant ou String, referindo-se ao nome da propriedade ou método existente no objeto;
  • TipoDeChamada: Argumento obrigatório, deve ser uma constante do tipo CallType a ser fornecido para o procedimento indicando o tipo de procedimento a ser executado;
  • Argumentos: Argumento opcional do tipo Variant ou Array (matriz), contendo os argumentos obrigatórios necessários à execução do procedimento atual;

Exemplo: O próximo exemplo emprega a função CallByName para recuperar e definir o valor da propriedade Caption da barra de títulos do formulário atual:

Resultado = CallByName(Me, “Caption”, vbGet)
CallByName Me, “Caption”, vbLet, “Novo título”

    No próximo exemplo, emprrega-se a função CallByName para executar o método Move da caixa de texto Text1 do formulário atual, para desloca-la para o canto esquerdo superior do formulário em que se encontra:

Dim strMétodo as string
StrMétodo = “Move”
CallByName Text1, strMmétodo, vbMethod, 0, 0

Até a Próxima!!

ARRAY

Array


    Função empregada para retornar uma variável do tipo Variant contendo uma matriz (array), utilizando a seguinte sintaxe:

Array(ListaDeArgumentos)

Onde:
  • ListaDeArgumentos: argumento obrigatório, consistindo de uma lista d valores delimitados por vírgulas, a serem atribuídas aos elementos da matriz unidimensional que será criada. Caso a lista de argumentos seja suprimida, será criada uma matriz de comprimento zero.
  • São válidas as seguintes considerações para a instrução Array:
  • O VBA emprega a notação clássica de matrizes, no qual refere-se a qualquer elemento da matriz pelo seu índice respectivo fornecido entre parênteses:
  • Valor = Matriz()
  • O índice inferior dos elementos de uma matriz é determinado pela instrução Option Base, tendo por padrão o valor zero (o primeiro elemento da matriz é o índice 0);
  • Para empregar o índice 1 como o primeiro elemento de uma matriz, empregue a instrução Option Base na seção Declaração do Módulo onda a matriz é operada;
  • Uma variável declarada As Variant pode conter uma matriz de qualquer tipo, excetuando-se matrizes contendo Strings de comprimento fixo ou tipos definidos pelo usuário.

Exemplo: Para criar uma matriz de 2 elementos, emprega-se a seguinte sintaxe:

Dim Matriz as Variant, A as Variant
Matriz = Array(10, 20, 30)
A = Matriz(2)  ‘Resultado em A = 30, pois Option Base = 0 por padrão

    Para empregar i índice 1 para se referenciar ao primeiro elemento d euma matriz, empregue esta sintaxe (observe que a instrução Option Base é definida apenas uma vez na seção Declaração do módulo):

Option Base
Dim Semestre, Mês
Semestre = Array(“Janeiro”, “Fevereiro”, “Março”, “Abril”, “Maio”, “Junho”)
Mêz = Array(1)   ‘Resulta em Mês = “Janeiro”

Até a Próxima!!

OPERADOR LIKE

Operador Like


    Empregado para comparar duas variáveis String, utilizando a seguinte sintaxe:

Resultado = String1 Like StringPadrão

    Onde StringPadrão consiste em uma variável String contendo o padrão de comparação a ser utilizado. Levando-se em consideração:
  • Se String1 for equivalente a StringPadrão, o resultado será True, caso contrário é False;
  • Se String1 ou StringPadrão frem Null. O resultado será Null;
  • O comportamento da instrução Like dependerá da instrução Option Compare empregada na seção Declaração do Módulo;
  • O método padrão para comparação de strings em um módulo é Option Compare Binary (leva em consideração maiúsculas/minúsculas);
  • StringPadrão pode ser construída empregando caracteres coringa para efetuar comparações entre padrões de caracteres, utilizando os caracteres listados na próxima lista.


As seguintes considerações são válidas:
  • Um grupo de um ou mais caracteres envolvidos por colchetes ([ ]) pode ser empregado para efetuar a comparação de um único caractere em uma string com os itens contidos nos colchetes;
  • Para encontrar os caracteres especiais [, ], ?, e *, envolva-os em colchetes. O colchete direito ( ] ) não pode ser utilizado dentro de uma lista, mas pode ser empregado fora da lista como um caractere individual;
  • O caractere ! quando empregado dentro de uma lista envolvida por colchetes, indica que a pesquisa deve desconsiderar os caracteres dentro da lista;
  • O VBA permite que você empregue um hífen ( - ) dentro de uma lista para definir a faixa de ocorrência de caracteres. Por exemplo, [ A-F ] efetua uma equivalência com os caracteres A, B, C, D, E e F;
  • A faixa de caracteres deve sempre ser exibida de forma crescente (Exemplo: [ A-G] é uma faixa válida, mas [ G-A] é inválida);
  • Você pode incluir múltiplas faixas de caracteres entre colchetes sem empregar qualquer delimitador entre as faixas;
  • A sequência de caracteres {] é considerada uma string de comprimento zero (“”);

Exemplos: Os exemplos a seguir demonstram como empregar o operador Like para efetuar a equivalência entre uma String e uma StrongPadrão:

Dim Resultado
Resultado = “aBBBa” Like “a*”   ‘Retorna True
Resultado = “F” Like “[A-Z]”   ‘Retorna True
Resultado = “F” Like “[!A-Z]”   ‘Retorna False
Resultado = “a2a” Like “a#a”   ‘Retorna True
Resultado = “aM5b” Like “a[L-P]#[!c-e]”   ‘Retorna True
Resultado = “BAT123khg” Like “B?T*”   ‘Retorna True
Resultado = “cat123khg” Like “B?T*”   ‘Retorna False

Até a Próxima!!

OPERADOR XOR

Operador XOR


    Empregado para efetuar a exclusão lógica de duas expressões, utilizando a seguinte sintaxe:

Resultado = Expressãp1 XOR Expressão2

    Caso uma, apenas uma  das expressões seja True, o resultado será True. Entretanto, se qualquer das expressões for Null, o resultado será sempre Null. Quando nenhum dos resultados for Null, o valor resultante do emprego do operador XOR é determinado pela tabela que se segue:










    O operador XOR também é empregado para efetuar a comparação bit a bit de dois números binários de mesmo comprimento, criando um terceiro número binário cujos bits resultantes obedecem à seguinte tabela:













Exemplo: O exemplo que se segue demonstra como empregar o operador XOR para efetuar a negação lógica de uma expressão:

Dim Resultado, A, B, C, DA = 5: B = 4; C = 3; D = Null
Resultado = a > b XOR b > c ‘ Retorna False
Resultado = b > a XOR b > c  ‘ Retorna True
Resultado = b > a XOR c > b  ‘ Retorna False
Resultado = b > d XOR a > b  ‘ Retorna Null
Resultado = a XOR c  ‘ Retorna 6 (comparação binária)

Até a Próxima!!

OPERADOR IS

Operador Is


    Empregado para comparar duas variáveis contendo referências a objetos, utilizando esta sintaxe:

Resultado = Objeto1 Is Objeto2

    Se Objeto1 e objeto2 forem do mesmo objeto, o resultado será , caso contrário, será False. Duas variáveis podem se referenciar ao mesmo objeto quando uma variável de objeto é atribuída a outra. 

Quando uma delas é atribuída à outra:

Set A = B

Ou quando ambas referem-se a um terceiro objeto:

Set A = B
Set B = C

Exemplo: O exemplo que se segue emprega o operador Is para comparar duas referências a objeto (observe que  como as variáveis não tiveram tipo declarado, são consideradas como Variant pelo VBA):

Dim obj1, obj2, obj3, obj4, Resultado
Obj1 = obj2 
Obj3 = obj3
Obj4 = OutroObjeto

Resultado = obj1 Is obj3  ‘ Retorna True
Resultado = obj4 Is obj3  ‘ Retorna False

Até a Próxima!!

OPERADOR OR

Operador Or


    Empregado para efetuar a disjunção lógica de duas expressões, utilizando a seguinte sintaxe:

Resultado = Expressãp1 or Expressão2

    Se qualquer das expressões for True, o operador Or sempre retornará True. A tabela que se segue demonstra o resultado determinado pelo operador Or quando duas expressões lógicas são comparadas:




    O operador Or também é empregado para efetuar a comparação bit a bit de dois números binários de mesmo comprimento, criando um terceiro número binário cujos bits resultantes obedecem à seguinte tabela:













Exemplo: O exemplo que se segue demonstra como empregar o operador Or para efetuar a negação lógica de uma expressão:

Dim Resultado, A, B, C, DA = 5: B = 4; C = 3; D = Null
Resultado = a > b Or b > c ‘ Retorna True
Resultado = b > a Or b > c  ‘ Retorna True
Resultado = a > b Or b > d  ‘ Retorna True
Resultado = b > d Or b > a  ‘ Retorna Null
Resultado = a Or c  ‘ Retorna 7 (comparação binária) 

Até a Próxima!!

OPERADOR NOT

Operador Not


    Empregado para efetuar a negação lógica de uma expressão, utilizando a seguinte sintaxe:
Resultado = Not Expressão

    O resultado obtido ao se  empregar o operador Not pode ser avaliado na tabela que se segue:










    O operador Not também inverte os valores binários de qualquer variável, alterando as seus bits de dados de acordo com a tabela seguinte:









Exemplo: O exemplo que se segue demonstra como empregar o operador Not para efetuar a negação lógica de uma expressão:

Dim Resultado, A, B, C, D
A = 5: B = 4; C = 3; D = Null
Resultado = Not (A>B) ‘ Retorna False
Resultado = Not (B>A) ‘ Retorna True
Resultado = Not (c>d) ‘ Retorna Null
Resultado = Not A  ‘ Retorna -6 (comparação binária)

Até a Próxima!!

OPERADOR IMP

Operador Imp


    Empregado para efetuar a implicação lógica de duas expressões, utilizando a seguinte sintaxe:

Resultado = Expressãp1 Imp Expressão2

    A tabela que se segue demonstra o resultado determinado pelo operador Imp quando duas expressões lógicas são comparadas:
















    O operador Imp também é empregado para efetuar a comparação bit a bit de dois números binários de mesmo comprimento, criando um terceiro número binário cujos bits resultantes obedecem à seguinte tabela:












Exemplo: Os exemplos que se seguem empregam o operador Imp para efetuar a implicação lógica de duas expressões:

Dim Resultado, A, B, C, D
A = 5: B = 4; C = 3; D = Null
Resultado = a > b Imp b > c ‘Retorna True
Resultado = a > b Imp c > b  ‘Retorna False
Resultado = b > a Imp c > b  ‘Retorna True
Resultado = b > a Imp c > d  ‘Retorna True
Resultado = c > d Imp b > a  ‘Retorna Null
Resultado = a Imp c  ‘Retorna -5 (comparação binária) 

Até a Próxima!!

OPERADOR EQV

Operador Eqv


    Empregado para executar a equivalência lógica de duas expressões, empregando esta sintaxe:

Resultado = Expressãp1 Eqv Expressão2

    Se uma das expressões for Null, o resultado será sempre Null. Caso as expressões sejam True ou False, a tabela que se segue demonstra o resultado obtido quando se comparar os valores empregando-se o operador Eqv:










    O operador Eqv também é empregado para efetuar a comparação bit a bit de dois números binários de mesmo comprimento, criando um terceiro número binário cujos bits resultantes obedecem à seguinte tabela:













Exemplo: Os exemplos que se seguem empregam o operador Eqv para executar equivalência lógica de duas expressões:

Dim Resultado, A, B, C, D
A = 5: B = 4; C = 3; D = Null
Resultado = a > b Eqv b > c ‘ Retorna True
Resultado = b > a Eqv b > c  ‘ Retorna False
Resultado = a > b Eqv b > d  ‘ Retorna Null
Resultado = a Eqv c  ‘ Retorna -2 (comparação binária) 

Até a Próxima!!

OPERADOR AND

Operador And


    Empregado para efetuar a conjunção lógica de duas expressões, retornando True (verdadeiro) ou False (Falso), utilizando esta sintaxe:

Resultado = Expressãp1 And Expressão2
  • Se ambas as expressões forem True, o resultado é sempre True;
  • Se uma das expressões for False, o resultado é sempre False;
  • Se ambas as expressões forem False, o resultado é sempre False.
    A tabela abaixo demonstra o que ocorre quando o valor das expressões é True, False ou Null:













 
 

    O operador And também é empregado para efetuar a comparação bit a bit de dois números binários de mesmo comprimento, criando um terceiro número binário cujos bits resultantes obedecem à seguinte tabela.










Exemplo: O exemplo que se segue demonstra como empregar o operador And para efetuar a conjunção lógica de duas expressões empregando variáveis sem tipo declarado (convertidas para Variant)

Dim Resultado, A, B, C, D
A = 5: B = 4; C = 3; D = Null

Resultado = a > b And b > c ‘ Retorna True

Resultado = b > a And b > c  ‘ Retorna False
Resultado = a > b And b > d  ‘ Retorna Null
Resultado = a And c  ‘ Retorna 1 (comparação binária)

Até a Próxima!!