Tipos de variáveis ​​​​visual básico. Linguagem de programação Visual Basic

Porque o Visual básico pode determinar por si mesmo tipo de variável de acordo com ela significado(cm. Variante), então o tipo da variável não precisa ser declarado (não especificado). No entanto, declaração de variáveisé uma regra de boa etiqueta de programação, e também permite evitar alguns erros no programa, como grafia desigual do nome da variável em diferentes locais do programa, não conformidade com tipos de dados nos cálculos.

A variável é declarada no início da janela de código ou no início do procedimento usando o operador Escurecer com esta entrada:

Dim Variable_name As Variable_type

O tipo de variável são palavras Byte, Longo, String e outros da tabela de tipos (veja acima).

Por exemplo:
Escurecer um como byte
Variável declarada A tipo Byte. Você pode colocar um número de 0 a 255 em tal variável. Quando você tenta atribuir uma variável mais Ocorrerá um erro e um número com parte fracionária será arredondado.

Dim b como string
Variável declarada b tipo Corda. Esta variável conterá o texto (embora o texto também possa consistir em números, mas 2 mais 3 é 23).

Ao declarar diversas variáveis, você pode listá-las usando vírgula:
Dim a como byte, b como string

Após a linha de declaração, você pode atribuir um valor a uma variável.

Por exemplo:
Escurecer um como byte
uma = 5

Visual Basic também permite criar seus próprios tipos de dados. Esse recurso é importante quando você lida com um grupo de elementos de dados relacionados entre si, mas que pertencem a categorias de dados diferentes. Você pode criar seus próprios tipos (UDT - tipo definido pelo usuário) usando a instrução Structure e declarar variáveis ​​relacionadas a esses novos tipos usando a instrução Dim. Mas tenha em mente que a instrução Structure não pode ser localizada em um procedimento de evento - ela deve estar localizada no topo do código do formulário, junto com outras declarações de variáveis, ou no código do módulo.

Por exemplo, a declaração a seguir cria um tipo de dados personalizado denominado Funcionário que pode armazenar os nomes, data de nascimento e data de contratação associados a esse funcionário:

Estrutura Funcionário Dim Nome As String Dim DateOfBirth As Date Dim HireDate As Date End Estrutura

Depois de criar um tipo de dados, você poderá usá-lo no código do formulário ou nos procedimentos de evento do módulo. As instruções a seguir usam o novo tipo Employee. A primeira instrução cria uma variável chamada ProductManager do tipo Employee e a segunda instrução define o componente Name dessa variável como "Eric Cody":

Dim ProductManager como funcionário ProductManager.Name = "Eric Cody"

Parece definir propriedades, não é? O Visual Basic usa a mesma notação para relacionamentos entre objetos e propriedades e para relacionamentos entre tipos de dados definidos pelo usuário e componentes variáveis.

Constantes: variáveis ​​que não mudam

Se uma variável no seu programa contém um valor que nunca muda (como pi, que é uma entidade matemática fixa), você pode considerar armazenar esse valor como uma constante em vez de uma variável. Uma constante é um nome significativo que substitui um número ou sequência de teste que nunca muda. As constantes são úteis porque aumentam a legibilidade do código do programa e reduzem o número de erros de software e facilitar a aplicação mudanças globais no código. As constantes agem como variáveis, mas você não pode alterar seus valores enquanto o programa está em execução. Eles são declarados usando a palavra-chave Const, conforme mostrado no exemplo a seguir:

Const Pi como duplo = 3,14159265

Esta instrução cria uma constante chamada Pi que pode ser usada no código do programa no lugar do valor de pi. Para disponibilizar uma constante para todos os objetos e procedimentos de eventos do seu formulário, coloque esta instrução no topo do código do seu formulário junto com outras declarações de variáveis ​​e estruturas que tenham um escopo que se estende a todos os procedimentos de eventos do formulário. Para disponibilizar uma constante de todos os formulários e módulos do programa (e não apenas do Form1 ), crie uma constante no código do módulo especificando antes dela palavra-chave Público Por exemplo:

Const público Pi como duplo = 3,14159265

No próximo exercício, usaremos constantes em um procedimento de evento.

Usando uma constante em um procedimento de evento
  1. No menu Arquivo, selecione Abrir e clique em Projeto. A caixa de diálogo Abrir Projeto é exibida.
  2. Abra o projeto Constant Tester localizado na pasta c:\vbnet03sbs\Capítulo 5\testador constante.
  3. Se o formulário do projeto não estiver visível, clique em Form1.vb no Solution Explorer e, em seguida, clique no botão View Designer. O formulário aparece no Windows Forms Designer Teste constante. Constant Tester é o “esqueleto” do programa. A interface do usuário está completa, mas você deve inserir o código do programa.
  4. Clique duas vezes no botão Mostrar constante formulários. O procedimento de evento Button1_Click aparece no Editor de Código.
  5. Insira as seguintes instruções no procedimento de evento Button1_Click:

    Const Pi como duplo = 3,14159265 Label1.Text = Pi

    Conselho. Escolha o posicionamento de suas declarações com base em como você planeja usar constantes ou variáveis. Normalmente, os programadores tentam tornar o escopo das declarações o menor possível, mas ainda assim tê-lo disponível em todas as partes do código onde for necessário. Por exemplo, se uma constante for necessária apenas em um procedimento de evento único, você colocaria a declaração dessa constante dentro desse procedimento de evento. Entretanto, se você precisar disponibilizá-lo para todos os procedimentos de evento do seu formulário, coloque sua declaração no topo do código do formulário.

    Para iniciar o programa, clique no botão Iniciar localizado na barra de ferramentas padrão.

    Clique no botão Mostrar constante. A constante Pi aparecerá no campo do rótulo conforme mostrado abaixo.

    Para parar o programa, clique no botão Saída.

    Constantes são úteis em código de programa, especialmente ao calcular fórmulas matemáticas. A próxima seção descreve como usar operadores e variáveis ​​para escrever fórmulas.

LINGUAGEM DE PROGRAMAÇÃO VISUAL BÁSICA. TIPOS DE DADOS. DESCRIÇÃO DE VARIÁVEIS, CONSTANTES, MATRIZS

Tipo de dadosé um método de armazenamento e apresentação de dados em um sistema de computador.

Os seguintes tipos de dados podem ser armazenados e processados ​​no Visual Basic.

Byte é um número inteiro não negativo. Aceita valores de 0 a 255, ocupa 1 byte.

Booleano - valor lógico. Assume um dos dois valores True e False, ocupa 2 bytes.

Moeda é um número decimal estendido. Utilizado para realizar cálculos monetários com número fixo de casas decimais, ocupa 8 bytes. (Até 15 casas à esquerda da vírgula e até 4 casas à direita da vírgula).

Data - data. Usado para armazenar datas/horas, ocupa 8 bytes.

Duplo - número decimal de precisão dupla, ocupa 8 bytes.

Inteiro - valor numérico inteiro curto, ocupa 2 bytes. Usado para representar números inteiros no intervalo de -32768 a 32767.

Longo - inteiro longo, ocupa 4 bytes. Usado para representar números inteiros no intervalo -2147483648 a 2147483647.

Único - número decimal de precisão normal, ocupa 4 bytes. Usado para representar números negativos no intervalo -3,402823E 38 a -1,401298E-45 e para representar números positivos no intervalo 1,401298E-45 a 3,402823E 38.

String - string de comprimento variável. A memória ocupada depende linearmente do número de caracteres na linha.

String * comprimento - uma string de comprimento constante.

Variante - valor arbitrário. É usado para armazenamento de dados qualquer tipo. Ocupa 16 bytes, mais um byte por caractere se o valor for uma string.

Objeto - objeto. Usado apenas para armazenar referências a objetos, ocupa 4 bytes.

Variávelé uma área de memória nomeada projetada para armazenar dados que mudam durante a execução do programa. Para acessar o conteúdo desta área de memória, basta saber o nome da variável.

O nome de uma variável (identificador) é uma sequência de caracteres que distingue esta variável de outros objetos do programa (identifica a variável no programa).

Ao nomear variáveis, você deve seguir as seguintes regras:

O primeiro caractere do nome deve ser uma letra. Os caracteres restantes são letras e números (letras maiúsculas e minúsculas são diferentes). Você pode usar o símbolo "_";

  • Você não pode usar o caractere “.” no nome;
  • o número de caracteres do nome não deve exceder 255;
  • O nome da variável não deve coincidir com palavras reservadas (de serviço) da linguagem.

Os recursos a seguir existem no Visual Basic. declarações de tipo de variável.

  1. A variável não pode ser declarada. Neste caso, o tipo padrão será Variant. No entanto, isso pode levar a uma operação lenta e ineficiente do programa e ao desperdício de memória.
  2. Uma variável pode ser declarada explicitamente usando a instrução de definição de variável:Dim Nome da variável [como tipo de variável],
    por exemplo: Dim d como Long.
    Para garantir que as variáveis ​​sejam sempre declaradas explicitamente, você deve usar a opção Option Explicit na seção (Geral) (Declarações) de formulários, módulos ou classes existentes. Depois de definir essa opção, o Visual Basic exigirá declarações explícitas de variáveis ​​e gerará uma mensagem de erro se você usar uma variável não declarada em seu código.
  3. Uma variável pode ser declarada implicitamente:

    Usando o operador de declaração de tipo:

DefType Letra inicial [- Letra final];

Em vez de OerType, uma das palavras-chave que denotam o tipo é indicada:

Deflnt (para tipo Inteiro);
- DefLng (para tipo Long);
- DefSng (para tipo Único);
- DefStr (para tipo String) e assim por diante;

O tipo de uma variável às vezes pode ser inferido a partir do sufixo anexado ao nome da variável. Apenas seis tipos de variáveis ​​podem ter sufixos:

- % - digite Inteiro;
- & - digite Longo;
- ! - Tipo único;
- # - Tipo duplo;
- $ - Tipo de string;
- @ - Tipo de moeda.

Se uma variável cujo tipo é indicado implicitamente por um sufixo ocorrer múltiplas vezes em um programa, então o sufixo só poderá ser especificado uma vez, na primeira vez que a variável for usada no programa.

Constantes- quantidades cujos valores não podem mudar. Assim como as variáveis, as constantes são declaradas no início do código do programa com o operador:

Const ConstantName = Valor, por exemplo: Const Pi = 3,14159

Somente valores constantes e suas combinações, incluindo operadores aritméticos e/ou lógicos, podem ser usados ​​como valor.

Variedadeé um conjunto de elementos de um determinado tipo, cada um com seu próprio número de série, denominado índice.

Uma matriz é definida usando o operador:

DimVariableName([LowerLimitTo]
Limite superior) .

Por exemplo: Dim b (a a 15) - declaração de um array b composto por 15 elementos.

O Visual Basic, por padrão, indexa os elementos do array começando em zero, ou seja, o índice 0 é o primeiro elemento do array, o índice 1 é o segundo e assim por diante. O operador Option Base 1 permite definir a indexação do array a partir de 1. Este operador deve estar na seção (Geral) (Declarações).

Nesta parte, você aprenderá sobre os tipos de dados que podem ser manipulados pelo VBA, como os dados temporários são armazenados no VBA, como combinar variáveis ​​e constantes para criar novos valores e como incluir funções integradas em expressões.

Trabalho de laboratório nº 3. Visão geral dos tipos de dados VB. Variáveis ​​e

constantes. Compatibilidade de tipo de dados. Operador de atribuição. Operadores aritméticos e lógicos. Funções integradas

Objetivo da lição: Conheça os tipos de dados. Ser capaz de criar variáveis. Ser capaz de definir tipos de dados para variáveis. Ser capaz de criar constantes nomeadas. Conheça o escopo

variáveis ​​e constantes. Conheça a conversão de tipo. Saiba como usar o operador de atribuição. Conhecer operações aritméticas e lógicas. Saiba como usar a concatenação de strings. Ser capaz de usar funções integradas do VBA. Materiais para a aula: Excel 2003.

Visão geral dos tipos de dadosVisualBásico (VB)

Antes de aprender sobre variáveis, você deve entender como o VBA armazena diferentes tipos de informações. O VBA, como a maioria dos outros sistemas de programação, divide os dados que processa em números, datas, texto e outros tipos. Tipo de dados(dados tipo) é um termo que se refere a certos tipos de dados que o VBA armazena e pode manipular. Na tabela 9 tipos generalizados Dados VBA, mostra quanta memória cada tipo ocupa, descreve brevemente os tipos de dados e fornece o intervalo de valores que o tipo pode armazenar.

Tabela 9– Tipos de dados VBA

Digite o nome

Tamanho embytes

Inteiros positivos de 0 a 255

Inteiros de -32768 a 32767

Inteiros longos de -2147483648 a 2147483647

Números reais de precisão ordinária com

ponto flutuante.

Números negativos:

de -3,402823E38 a -1,401298E-45.

Números positivos:

de 1.401298E-45 a 3.402823E38

Números reais de dupla precisão com

ponto flutuante.

Números negativos:

de -1,79769313486232E308 a

4.94065645841247E-324.

Números positivos:

de 4.94065645841247E-324 a

1.79769313486232E308

Números com até 15 dígitos antes da vírgula e 4 dígitos depois dela (unidades monetárias). De -922337203685477,5808 a 922337203685477,5807

Para armazenar valores lógicos; só pode conter valores True ou False

Digite o nome

Tamanho embytes

Descrição e faixa de valores

Para armazenar uma combinação de informações de data e hora. O intervalo de datas pode ser de 1º de janeiro de 100 a 31 de dezembro de 9999. Intervalo de horário de 00:00:00 a 23:59:59

String (string de comprimento variável)

10 bytes + Usado para armazenar texto. O comprimento da string pode variar de 0 caracteres a (aproximadamente) 2 bilhões de caracteres

Corda

comprimento fixo)

Comprimento Usado para armazenar texto. Podem strings (uma contém de um a (aproximadamente) 65.400 bytes por caractere)

16 bytes + 1 byte/caractere

O tipo Variant pode armazenar qualquer outro tipo de dados. O intervalo dos dados Variant depende dos dados reais que estão sendo armazenados. No caso de texto, o intervalo corresponde ao tipo string; no caso de números, o intervalo é igual ao do tipo Double

Usado para acessar qualquer objeto reconhecido pelo VBA. Armazena o endereço de um objeto na memória

Na tabela 9 você encontrou uma representação de dados chamada notação exponêncial(científico notação), que é usado para exibir números muito grandes e muito pequenos em formato compacto em dispositivos externos (monitor, impressora, etc.). Na notação exponencial, os valores são escritos sem zeros à esquerda ou à direita e possuem apenas um dígito à esquerda da casa decimal. O número é multiplicado por 10 até certo ponto para mostrar onde realmente está a casa decimal.

O VBA possui seis tipos de dados numéricos diferentes: Byte, Inteiro, Longo, Solteiro, Dobro E Moeda. Os tipos de dados numéricos são usados ​​para armazenar (e manipular) números em vários formatos, dependendo do tipo específico.

Normalmente, um programa VBA (como qualquer outro programa) “toma” decisões verificando se várias condições são verdadeiras. Para facilitar o teste das condições e garantir que os resultados desses testes sejam armazenados, o VBA fornece um tipo de dados booleano. Valores booleanos Verdadeiro E Falso chamado boleano(boleano) valores. Seu nome está associado ao nome do matemático que desenvolveu o sistema de lógica matemática. O tipo de dados booleano do VBA também é chamado de boleano. O tipo booleano VBA requer dois bytes de memória e pode ter um de dois valores: Verdadeiro ou Falso. Se você exibir o tipo boleano na tela, o VBA o converte automaticamente em uma string contendo a palavra Verdadeiro, ou Falso. Valores booleanos são obtidos como

o resultado da operação de comparação.

VBA usa tipo Data para armazenar datas e horas. Não há necessidade de se preocupar com como o VBA armazena dados de tipo Data, – você pode simplesmente exibir, salvar ou manipular datas; O VBA lida automaticamente com todos os detalhes da conversão de um número sequencial em ano, mês, dia e hora. Tipo VBA Dataé um tipo datas consecutivas(serial datas). Datas consecutivas armazenam a data como um número de dias a partir de uma determinada data de início. Data base para tipo VBA Dataé 30 de dezembro de 1899. O VBA usa números negativos para representar datas anteriores a 30/12/1899 e números positivos para representar datas posteriores a 30/12/1899. O número 0 representa a própria data, 30/12/1899. De acordo com este esquema, 1º de janeiro de 1900 é escrito como o número 2 (1º de janeiro de 1990 é 2 dias depois de 30 de dezembro de 1899), mas o número –2 é a data 28 de dezembro de 1899 (dois dias antes de 30 de dezembro de 1899). ). Para verificar isso, escreva um procedimento simples.

Exercício 1. Escreva um procedimento que imprima uma mensagem de data.

Por esta:

Escreva um procedimento (Listagem 3):

Listagem 3 ProcedimentoDataTeste

1 SubDataTeste()

2 Dim d Como Data 3

Como resultado deste procedimento, a data base será exibida na tela (Fig. 15).

Arroz. 15 Em um valor de data sequencial, a parte inteira (os números à esquerda da casa decimal) é o número total de dias a partir da data base. A data sequencial do VBA pode ter dígitos à direita da casa decimal; esses números indicam a hora do dia como parte do dia. Uma hora é 1/24 de um dia (aproximadamente 0,0416. Da mesma forma, um minuto é 1/1440 de um dia e um segundo é 1/86.400 de um dia. Você pode subtrair uma data de outra, adicionar a uma data ou subtraia números para alterar seus valores. Por exemplo, se você precisar determinar o número de dias entre duas datas, basta subtrair a data anterior da posterior. Porque esses são valores como Data, o VBA “sabe” que o objetivo do cálculo é obter a diferença em dias entre essas duas datas. Da mesma forma, se você precisar determinar uma data 60 dias após uma determinada data, basta adicionar 60 a essa data.

O VBA possui vários procedimentos integrados (descritos nesta seção) para extrair separadamente o ano, mês, dia, hora, minuto e segundo de uma variável como Data.

Quaisquer dados de texto salvos em um programa VBA são chamados linhas(cordas). Strings em VBA são salvas usando tipo de dados Corda. As strings recebem esse nome porque os dados de texto geralmente são tratados como sequências de caracteres. A linha pode conter caracteres de texto quaisquer tipos: letras do alfabeto, números, sinais de pontuação ou símbolos diversos. Existem duas categorias de strings: strings de comprimento variável, que aumentam ou diminuem de tamanho, e strings de comprimento fixo, cujo tamanho permanece sempre o mesmo. Todas as strings no VBA são strings de comprimento variável, a menos que você especifique um comprimento fixo. A maioria dos dados de entrada do usuário (em caixa de diálogo, células da planilha) são dados de string. Além disso, como você só pode exibir texto na tela, todos os outros tipos de dados devem ser convertidos em dados de string antes de serem exibidos na tela. Muitos procedimentos integrados do VBA (como Caixa de mensagens) usam dados de string em todos ou alguns de seus argumentos. O VBA fornece vários operadores para concatenação(concatenar), ou seja, unir e comparar strings. O VBA também possui várias rotinas integradas para ajudá-lo a extrair substrings de strings mais longas, localizar caracteres ou palavras em uma string, alterar a caixa das letras em uma string e assim por diante. Esta parte descreve operadores de string VBA e procedimentos para manipular strings VBA.

Tipo de dados Varianteé um tipo de dados especial que pode armazenar qualquer um dos tipos listados na tabela. 9, exceto tipo Objeto. VBA usa tipo Variante para todas as variáveis, a menos que você declare explicitamente o tipo da variável, conforme descrito posteriormente nesta seção. Tipo de dados Variante assumir características de um determinado tipo que possuem atualmente. Por exemplo, se o tipo de dados Variante contém dados de string Variante aceita características do tipo String. Se tipo de dados Variante contêm dados numéricos, Variante assume características de algum tipo numérico, geralmente - Dobro, embora tipos Variante também pode ter características de tipo Inteiro, Longo, Solteiro ou Moeda. Embora os tipos Variante Convenientes e que eliminam parte do trabalho de escrever procedimentos, eles exigem mais memória do que qualquer outro tipo de dados, exceto strings grandes. Além disso, operações matemáticas e operações de comparação em tipos de dados Variante são mais lentas do que operações semelhantes em qualquer outro tipo de dados. Em geral, você deve evitar o uso de variáveis Variante: se você confiar em variáveis ​​de tipo Variante, você pode desenvolver o hábito de programação desleixada e achar difícil encontrar e corrigir erros em programas.

Variáveis

Variável(variável) é o nome que o programador dá à área

memória do computador usada para armazenar algum tipo de dados. Variáveis ​​​​VBA podem armazenar qualquer um dos tipos de dados listados na tabela. 9.

Identificador(identificador) é o nome que você dá aos elementos nos procedimentos e módulos que você cria, como variáveis. O termo identificador baseia-se no fato de que os nomes criados identificam locais específicos de memória (no caso de um nome de variável), grupos de instruções (no caso de uma macro ou nome de procedimento) ou outros elementos do programa.

Nomes de variáveis não é "sensível" ao estado de registro(não caso- confidencial), ou seja, escrever o nome da variável em maiúscula ou em letras maiúsculas não importa.

A maneira mais fácil de criar uma variável é usá-la em uma instrução VBA. O VBA cria uma variável e reserva memória para o local da variável na memória na primeira vez que essa variável aparece em uma instrução (geralmente uma instrução que armazena um valor de dados em uma variável).

Armazenar um valor de dados em uma variável é chamado atribuição a uma variável(atribuindo o variável ou fazendo um atribuição). A atribuição é realizada através do operador de atribuição, representado pelo sinal de igual (=). A linha a seguir é um exemplo de atribuição de um valor a uma variável:

Esta instrução armazena o valor numérico 25 no local de memória especificado pelo nome da variável MinhaVar.

Criar uma variável usando-a em uma instrução é chamado declaração implícita de variável(implícito variável declaração). Ao usar uma variável em uma instrução, você está implicitamente dizendo (declarando) ao VBA que deseja criar essa variável. Todas as variáveis ​​que o VBA cria por declaração implícita de variável têm um tipo de dados Variante. A declaração implícita de variável também é conhecida como declaração de variável "no vôo"(sobre- o- voar).

Declarações implícitas de variáveis ​​são convenientes, mas apresentam problemas potenciais. Por exemplo, quando você tem uma variável chamada MinhaVar e você cometerá um erro no nome mais tarde ao digitar Mvar. Dependendo de onde o nome da variável incorreto aparece no seu código, o VBA pode gerar um erro de tempo de execução ou simplesmente criar uma nova variável. Se o VBA criar uma nova variável, você poderá ter problemas muito difíceis de detectar.

Por essas e outras razões, o VBA oferece a capacidade de fazer explícito(explícito) declaração de variáveis.

Para declarar variáveis ​​explicitamente, use a instrução VBA Escurecer com a seguinte sintaxe:

Escurecer nome1 [, nome2 ]

nomeN é qualquer identificador de variável válido. Todas as variáveis ​​que você cria com esta forma de palavra-chave Escurecer, são variáveis

tipo Variante.

Uma variável só pode ser declarada uma vez em um procedimento ou módulo separado. Como a instrução Dim vem antes de qualquer instrução que realmente utilize a variável, você pode colocá-la em qualquer lugar do procedimento. Na prática de programação, é uma boa regra coletar todas as declarações explícitas de variáveis ​​em um só lugar, no início de um procedimento.

Tarefa 2. Modifique o procedimento OláExcel da parte anterior, usando uma definição de variável explícita.

Por esta:

b mudar o procedimento OláExcel (Listagem 4):

Listagem 4 ProcedimentoOláExcel

1 Sub OláExcel()

2 Dim HelloMsg "variável para MsgBox 3

Operador Escurecer (na linha 2) da Listagem 4 declara uma variável OláMsg e reserva uma área de memória para isso (nesta sub-rotina OláMsg é uma variável do tipo Variante). A linha 2 inclui um comentário final indicando a finalidade desta variável. A linha 4 atribui a uma variável OláMsg linhas "Olá,Excel!" . A seguir (na linha 5) a variável HelloMsg é usada como um dos argumentos do procedimento Caixa de mensagem. Função Caixa de mensagem exibe a mesma caixa de mensagem de antes. Embora Caixa de mensagem agora recebe seu primeiro argumento de uma variável, esta variável contém a mesma informação de string que foi escrita anteriormente (nas listagens da parte anterior) diretamente no operador Caixa de mensagem.

Todas as variáveis ​​no VBA, declaradas implícita ou explicitamente, são variantes, a menos que você especifique o tipo da variável na instrução que a declara. Para anúncio digitado variável e seu tipo usando o operador Escurecer adicione a palavra-chave As após a variável e insira o nome do tipo de dados para essa variável. Aqui está a sintaxe geral para usar o operador Escurecer ao declarar variáveis ​​digitadas:

Escurecer varnamel [, varname2 ]

varnameN representa qualquer nome de variável VBA válido, um tipoN – qualquer um dos nomes de tipo de dados VBA.

Depois que uma variável digitada é declarada, independentemente de a variável ser declarada explícita ou implicitamente e de como o tipo é especificado, essa variável mantém o mesmo tipo enquanto existir. Você não pode declarar novamente uma variável ou redefinir seu tipo.

Com uma declaração implícita, você também pode especificar o tipo da variável adicionando

caractere especial chamado símbolo de definição de tipo(tipo- definição personagem), até o final do nome da variável. Na tabela A Figura 10 lista os símbolos de definição de tipo VBA e os tipos que eles representam. Tabela 10– Símbolos de definição de tipo

Tipo

Símbolo de definição

Tipo

Símbolo definições

InteiroLongo

MoedaDobro

Os caracteres de definição de tipo só podem aparecer no final do nome de uma variável. Embora você deva saber o que são símbolos de definição de tipo e como eles são usados, você raramente precisará usá-los – usar a instrução Dim com a palavra-chave As é muito mais fácil e claro. A maioria dos programadores VBA não usa símbolos de definição de tipo.

Tarefa 3. Modifique o procedimento OláExcel da tarefa 3, usando a definição de uma variável digitada.

Por esta:

b mudar o procedimento OláExcel (Listagem 5):

Listagem 5 ProcedimentoOláExcel

1 Sub OláExcel()

2 Dim HelloMsg como string 3

    HelloMsg = "Olá, Excel!"

    Title$ = "Meu primeiro programa"

    MsgBox HelloMsg, Título$

Esta versão do procedimento OláExcel funciona da mesma forma que os anteriores. A linha 1 contém a declaração do procedimento. Na linha 2 a declaração Escurecer declara explicitamente uma variável OláMsg. Já que a operadora Escurecer inclui palavra-chave Como e digite o nome Corda, variável OláMsg tem tipo Corda. A linha 4 atribui o texto da mensagem a uma variável de string OláMsg. A linha 5 declara implicitamente uma variável Título$ e ao mesmo tempo atribui o texto do título da caixa de mensagem à variável. Porque o nome da variável Título$ termina com um caractere de definição de tipo para uma string, esta variável também é do tipo String. Finalmente, a linha 6 usa o operador Caixa de mensagem para exibir uma caixa de mensagem; nesta instrução, tanto o texto da mensagem quanto a barra de título da janela são variáveis: OláMsg E Título$, respectivamente.

Depois de adicionar um símbolo de definição de tipo a uma variável, você deve incluir um símbolo de definição de tipo sempre que usar o nome da variável.

Independentemente de variáveis ​​do tipo serem declaradas Corda usando o operador Escurecer ou adicionando o caractere de definição de tipo $, as variáveis ​​de string criadas serão strings de comprimento variável por padrão.

Variáveis ​​de string de comprimento variável mudam de comprimento dependendo do comprimento da string que está sendo armazenada pela variável. Às vezes você pode precisar usar a linha comprimento fixo(fixo- comprimento). Strings de comprimento fixo têm sempre o mesmo comprimento. A linha a seguir mostra a sintaxe geral para criar uma string de comprimento fixo:

Escurecer nome da vareta Como corda * N

nome da vareta é qualquer nome de variável válido, um N – é qualquer número de 1 a 65.400 caracteres

Escopo: Disponibilidade Variável

Prazo escopo(escopo) refere-se ao escopo de um procedimento ou módulo VBA onde uma determinada variável, procedimento ou outro identificador está acessível. Esta parte descreve dois níveis básicos de escopo: processual e modular. Variáveis, procedimentos e identificadores que são acessíveis apenas dentro de um procedimento têm escopo em nível processual, e aqueles que são acessíveis a todos os procedimentos em um módulo têm escopo em nível de módulo.

Uma variável declarada em um procedimento só pode ser acessada por esse procedimento. Por exemplo, variável OláMsg da linha 2 da Listagem 5, só é acessível no procedimento OláExcel; nenhum outro procedimento tem acesso a esta variável.

Portanto eles dizem que a variável OláMsg Tem escopo do nível processual(procedimento- nível escopo). Na verdade, a variável OláMsg só existe realmente enquanto o VBA está realmente executando o procedimento OláExcel.

Tarefa 4. Crie dois procedimentos cujo escopo sejam variáveis ​​de nível processual.

Por esta:

b insira dois procedimentos concluídos (Listagem 6):

Listagem 6 ProcedimentoOláExcel

1 Sub OláExcel()

2 Dim HelloMsg como string 3

    HelloMsg = "Olá, Excel!"

    MsgBox HelloMsg, "Meu primeiro programa"

8 Sub OláDave()

9 Dim HelloMsg como string 10

    HelloMsg = "Boa tarde, Excel!"

    MsgBox HelloMsg, "Outra caixa de mensagem"

As linhas 1–6 contêm o mesmo procedimento OláExcel da Listagem 4, que funciona exatamente da mesma forma. Um procedimento foi adicionado ao módulo OláDave, que começa na linha 8 da Listagem 6. Procedimento OláDave funciona da mesma forma que o procedimento OláExcel, ele apenas exibe uma mensagem de texto e um título diferentes em sua caixa de diálogo. Nas linhas 2 e 9, ambos os procedimentos utilizam o operador Escurecer para declarar variáveis ​​localmente com o nome OláMsg.

Às vezes é necessário que vários procedimentos tenham acesso à mesma variável. Geralmente é mais eficiente calcular um valor uma vez, armazená-lo em uma variável e depois usar essa variável em vários procedimentos do que calcular o mesmo valor repetidamente.

O VBA permite declarar variáveis ​​que são acessíveis a vários procedimentos. Quando uma variável está disponível para todos os procedimentos em um módulo, diz-se que essa variável tem escopo nível modular(módulo nível). O VBA limita o escopo de uma variável em nível de módulo ao módulo no qual a variável é declarada (o VBA fornece maneiras de estender ainda mais o escopo de uma variável; esses métodos são descritos a seguir).

Para disponibilizar uma variável para todos os procedimentos em um módulo específico, coloque a instrução Escurecer para isso no início do módulo antes de qualquer declaração de procedimento.

Exercício 1

Crie dois procedimentos e uma única declaração de variável em nível de módulo (mova a instrução para a linha 1 Escurecer com variável OláMsg removendo as linhas 2 e 9 da Listagem 6).

O nome da variável deve ser exclusivo dentro do seu escopo. No entanto, é possível ter variáveis ​​com o mesmo nome em diferente níveis de escopo. Quando variáveis ​​têm o mesmo nome, mas escopos diferentes, o VBA usa a variável com mais local(local) escopo.

Exigindo declaração explícita de variáveis

Embora a declaração implícita de variáveis ​​(declarar variáveis ​​simplesmente usando-as) seja conveniente, ela apresenta alguns problemas. Quando as variáveis ​​são declaradas implicitamente, existe o risco de criar inadvertidamente uma nova variável quando na verdade deveria estar usando uma já existente, ou de usar uma variável existente quando o usuário pretende criar uma nova. Ambas as situações levam a erros no código que são muito difíceis de rastrear.

Para facilitar a detecção de erros relacionados a declarações implícitas de variáveis ​​a qualquer momento, o VBA fornece o comando OpçãoExplícito. Usando OpçãoExplícito O VBA exige que todas as variáveis ​​sejam declaradas (usando o operador Escurecer) antes de usá-los no módulo.

Para definir o modo em que o VBA requer declarações explícitas para todas as variáveis ​​em um módulo, adicione o comando OpçãoExplícito para a área de declaração do módulo, ou seja, para o início do módulo antes de qualquer declaração de variável ou procedimento. Comandos como OpçãoExplícito, são chamados diretivas do compilador(compilador diretivas).

Equipe OpçãoExplícito afeta apenas o módulo em que aparece. Se o projeto que contém este módulo também contiver outros módulos, eles não serão afetados pelo comando OpçãoExplícito. Você deve incluir o comando Option Explicit em cada módulo que requer declarações explícitas de variáveis.

Desde a inclusão OpçãoExplícito em todos os módulos é muito útil, o Editor VB fornece uma maneira de incluir automaticamente este comando em cada novo módulo quando você o cria. Para que o Editor VB adicione o comando OpçãoExplícito Para cada novo módulo, siga estas etapas:

ь selecione um comando Ferramentas/ Opções (Serviço/Opções); Editor VB exibe caixa de diálogo Opções;

ь clique na guia editor (editor) para exibir opções de edição, se necessário;

ь marque a caixa de seleção Exigir Variável Declaração (Descrição explícita de variáveis);

e selecione OK. Editor VB fecha caixa de diálogo Opções.

Exercício 2

Defina o comando para ativar automaticamente Opção Explícito em cada novo módulo quando ele é criado.

Constantes

Constante(constante) é um valor em um programa VBA que não muda. Os exemplos de procedimentos já dados acima usam constantes de string como "Olá,Excel!" E "Meu primeiro programa". Constantes como elas são chamadas constantes literais(literal constantes), porque o valor literal é gravado diretamente no código.

Você também pode escrever constantes numéricas literais e datas em código VBA; exemplos de constantes literais numéricas incluem números 25 , 3.14 . Exemplos de constantes de data literais incluem datas #12/31/96# ou #28 de outubro de 1997#(Você aprenderá mais sobre como escrever constantes de data posteriormente nesta parte).

VBA permite que você crie constantes nomeadas(nomeado constantes). Uma constante nomeada, como uma variável, tem um nome dado a ela; este nome representa um valor imutável específico. Entretanto, diferentemente de uma variável, o valor de uma constante nomeada nunca muda. A linha a seguir mostra a sintaxe geral para declarar constantes nomeadas:

Const. nome = valor [operador nome2… ] _

[, caminhoZ =valor3 [operador nome4 ] … ]

nomeN representa qualquer identificador válido, valorN – qualquer valor de dados: numérico, string ou data, um operador – uma operação aritmética ou de comparação entre dois nomes de constantes descritas anteriormente. Próximas linhas mostra várias declarações de constantes nomeadas: Const Pi = 3.14, text = "Hello Excel!"

Const Pi2 = 2*Pi

Escopo das constantes

Tal como acontece com as variáveis, você pode declarar constantes nomeadas em procedimentos ou na área de declaração no início de um módulo. Uma constante declarada em um procedimento possui escopo em nível processual, enquanto uma constante declarada no escopo de declaração de um módulo possui escopo em nível modular. As constantes nomeadas seguem as mesmas regras de escopo das variáveis.

Escrevendo constantes literais

Ao escrever constantes de string literais em código VBA, siga estas regras:

ь constantes de string devem ser colocadas entre aspas duplas (");

ь é uma constante de string vazia (chamada linha zeronulo corda ou vazio corda) é indicado por duas aspas duplas sem nada entre elas ("");

b A constante da string deve estar toda na mesma linha.

Ao escrever constantes numéricas literais em código VBA, siga estas regras:

ü As constantes numéricas devem consistir apenas em caracteres numéricos de 0 a 9;

b uma constante numérica pode começar com um sinal (-) e pode conter um ponto decimal;

b Você pode usar notação exponencial para constantes numéricas.

O VBA reconhece constantes de data em vários formatos diferentes; Você deve colocar todas as constantes de data entre sinais de cerquilha (#). As linhas a seguir mostram alguns dos formatos de constantes de data que o VBA reconhece: #2-5-97 21:17:34# #February 5, 1997 9:17:34pm# #Mag-31-97# #15 April 1997#

Independentemente de qual dos seguintes formatos uma constante literal do tipo Date é escrita, o VBA reformata a constante (quando o ponto de inserção é removido da linha após escrever a constante) para estar em conformidade com um dos dois formatos a seguir, dependendo se o A constante de data contém informações sobre a hora: #2/5/1997 21:17:34 PM# #2/5/1997# Existem apenas duas constantes booleanas corretas: True e False.

Especificando um tipo constante

Quando você declara uma constante nomeada ou usa uma constante literal, o VBA "acredita" que o valor representado por essa constante foi

o tipo de dados que melhor corresponde à expressão atribuída à constante.

No VBA, você pode definir o tipo de uma constante. A sintaxe geral para declarar uma constante digitada é:

Const. nome Como tipo = valor[, nome Como tipo = valor]

nome é qualquer nome de constante válido, tipo – o nome de qualquer tipo de dados VBA e valor – o valor que você atribui à constante.

A linha a seguir ilustra a declaração correta de uma constante com um tipo específico:

Const Pi como duplo = 3,14

Domésticoconstantes

VBA fornece vários constantes internas(intrínseco constantes), também chamado constantes predefinidas(predefinido constantes). Uma constante interna é uma constante nomeada que foi definida pelos desenvolvedores do VBA. Todas as constantes internas definidas pelo VBA começam com letras vb para indicar que eles são definidos pela linguagem Visual Basic for Applications (ou Visual Basic). Por exemplo, constantes vbOKOnly, vbOKCancel são definidos pelo VBA. Constantes internas do Excel 2002 começam com letras XL para deixar claro que eles são definidos pelo Excel. Graças às constantes internas, é mais fácil usar alguns procedimentos integrados do VBA, como a instrução Caixa de mensagem, que você já conhece, e a operadora Caixa de entrada, que serão discutidos posteriormente nesta parte.

Exibir janelas de mensagens. Recebendo dados do usuário

Receber dados do usuário, armazená-los em uma variável e exibir os resultados das ações realizadas nele são os elementos básicos necessários para escrever procedimentos interativos. Interativo(interativo) procedimento é um procedimento que troca informações com o usuário, ou seja, o procedimento interage com o usuário exibindo mensagens e recebendo entradas.

Função Caixa de mensagem exibir uma caixa de mensagem tem a seguinte sintaxe:

CaixaMensagem(Incitar [, Botões ] [, Título ] [, Arquivo de ajuda , Contexto ])

argumento Incitar Caixa de mensagem exibe esta linha em uma caixa de diálogo; deve sempre fornecer um argumento Incitar, já que isso é argumento obrigatório(obrigatório argumento). Argumento Botões (argumento opcional), é uma expressão numérica que determina os botões e mensagens exibidos na caixa de diálogo. Argumento Título representa qualquer valor de string (literal, constante ou variável). Caixa de mensagemTítulo, VBA é exibido na barra de título da caixa de diálogo Caixa de mensagem palavra " MicrosoftExcel" . Argumento Arquivo de ajuda – arquivo de ajuda, Contexto – seção no arquivo de ajuda. O texto da mensagem pode ser colocado entre parênteses, mas os parênteses são opcionais quando a função Caixa de mensagem

usado como operador.

Os dados inseridos pelo usuário são chamados dados de entrada(entrada). Para receber informações do usuário sobre um procedimento, use a função Caixa de entrada. Função(função) é um tipo especial de procedimento VBA que retorna um valor. Função Caixa de entrada exibe uma caixa de diálogo contendo texto que solicita ao usuário que insira algum valor e uma caixa de texto para inserir esse valor. Caixa de diálogo exibida Caixa de entrada, também contém botões de comando OK E Cancelar.

Função Caixa de entrada tem a seguinte sintaxe:

stringvar=Caixa de entrada( Incitar[, Título] [, Padrão] [, XPos] [, YPos] _

[, Arquivo de ajuda, Contexto])

Aqui stringvar representa qualquer variável que pode armazenar uma string (ou uma variável do tipo Corda, ou - Variante). Argumento Incitar representa qualquer valor de string (literal, constante ou variável). Caixa de entrada exibe essa string como um prompt em uma caixa de diálogo; deve sempre fornecer um argumento Incitar, já que isso é argumento obrigatório; todos os outros são opcionais. Argumento Título é o segundo argumento para Caixa de entrada. Título representa qualquer valor de string (literal, constante ou variável). Caixa de entrada exibe o texto desta string na barra de título da caixa de diálogo. Se você omitir o argumento Título, o VBA é exibido na barra de título da caixa de diálogo Caixa de entrada palavra " MicrosoftExcel" . Argumento Padrão – uma expressão de string exibida no campo de entrada como padrão se o usuário não inserir outra string; se este argumento for omitido, o campo de entrada ficará vazio. Argumentos XPos E YPos pode ser qualquer expressão numérica. Esses argumentos permitem especificar onde a janela de entrada aparece na janela ativa e são as coordenadas do canto superior esquerdo da caixa de diálogo: XPos – distância horizontal da borda esquerda da janela; YPos – esta é a distância vertical da borda superior da janela. Ambas as distâncias são medidas em twips ( idiotas); Um twip é igual a 1/20 de um ponto (um ponto é a medida de uma fonte impressa). Como um ponto tem 1/72 de polegada, um twip equivale a aproximadamente 0,0007 polegada. Últimos dois argumentos opcionais para a função Caixa de entrada- Esse Arquivo de ajuda E Contexto. Eles têm o mesmo propósito que argumentos de funções semelhantes Caixa de mensagem.

Usando argumentos de função nomeada

Como você deve ter notado, é fácil omitir acidentalmente vírgulas ou reorganizar valores de argumentos em funções que possuem argumentos opcionais ou múltiplos argumentos, apesar da ajuda da propriedade Auto Rápido (Breve informação) Editor VB. Omitir ou reorganizar argumentos na lista de argumentos de uma função pode resultar em erros de incompatibilidade de tipo. O erro (pior ainda) pode não ser detectado. Para evitar erros de programação e facilitar o uso de funções que possuem argumentos opcionais, o VBA oferece uma alternativa para listar os valores na lista de argumentos em uma ordem específica. Você também pode transferir

valores de argumento de função usando argumentos nomeados(nomeado argumentos) funções. As linhas a seguir mostram duas declarações Caixa de mensagem, que têm o mesmo resultado; A primeira instrução usa o método de enumeração de argumentos regulares e a segunda usa o método de argumentos nomeado:

MsgBox AnyMsg, AnyTitle

Prompt MsgBox:=AnyMsg, Título:=AnyTitle

O símbolo que atribui um valor a um argumento nomeado (:=) não é exatamente o mesmo que o operador de atribuição regular (=). Se você omitir os dois pontos (:) ao atribuir um valor a um argumento nomeado, o VBA não detectará necessariamente um erro de sintaxe, mas poderá não interpretar a instrução corretamente. Quando o VBA executa esta instrução, ele exibe um dos vários erros de tempo de execução possíveis, geralmente um erro de incompatibilidade de tipo.

Você não pode misturar argumentos nomeados com uma lista de argumentos regulares na mesma chamada de função. Você deve usar argumentos nomeados ou uma lista de argumentos regulares para cada chamada de função individual.

Tarefa 5. Escreva um procedimento que calcule a área de um círculo, mas obtenha o raio do círculo do usuário do procedimento.

Por esta:

Insira o procedimento (Listagem 7):

Listagem 7 – Recebendo dados de entrada usando um operadorCaixa de entrada

    Const Pi As Single =3,14 "aproximação do valor pi

    Dim CircleArea As Single " salva a área calculada do círculo 3

4 Sublista3_07()

    Const BoxTitle = "Área do círculo"!}

    Dim Radius como único, Temp como string 7

    Temp = InputBox("Insira o raio de " & Chr(13) & "círculo", BoxTitle)

    Raio = CSng(Temp)

    CircleArea = Pi * Raio * Raio

    MsgBox CircleArea, vbInformation + vbOKCancel, BoxTitle

As linhas 1 e 2 da Listagem 7 declaram uma constante Pi e uma variável Área Círculo nível modular. A linha 4 contém a declaração do procedimento real. A linha 5 declara uma constante de nível processual Título da caixa; esta constante tem apenas acesso local no procedimento Lista3_07. Na linha 8 a instrução chama a função Caixa de entrada. Ele exibe seu primeiro argumento como texto em uma caixa de diálogo, solicitando que o usuário insira algum tipo de valor. Nesta declaração Caixa de entrada exibe o texto "Insira o raio do círculo" (função Chr(13) - símbolo de salto para nova linha) para informar aos usuários do procedimento qual valor eles devem inserir. Caixa de entrada usa o segundo argumento,

12 Fim Sub

representado por uma constante Título da caixa, como o título da caixa de diálogo. Ao executar a instrução Caixa de entrada uma caixa de diálogo é exibida (Fig. 16)

Área de um círculo

Insira o raio do círculo

Arroz. 16 O usuário insere um número na caixa de texto e seleciona um botão de comando OK ou Cancelar para fechar a caixa de diálogo como qualquer outra janela do Windows. Sempre que você chamar qualquer função, você precisará usar de alguma forma o valor de retorno da função. O valor retornado pela função é chamado resultado da função(função resultado). Conforme mostrado na linha 8 no caso da função Caixa de entrada, cujo resultado é atribuído a uma variável Temperatura. Resultado da função Caixa de entrada é sempre uma string (é por isso que a variável Temperatura foi anunciado como Corda). Já que a variável Temperatura foi declarado explicitamente como Corda, o valor da string deverá ser convertido em um valor numérico antes de poder ser usado em cálculos matemáticos. A linha 9 da Listagem 7 faz exatamente isso, usando a função VBA integrada CSng para converter a entrada do usuário em um número do tipo Single.

Expressões emVisualBásico

Expressão(expressão) é um valor ou grupo de valores que expressa um único valor. Cada expressão calculado para(ou tem o resultado de) um significado separado. As expressões consistem em uma ou mais das seguintes partes: constantes (literais ou nomeadas), variáveis ​​(de qualquer tipo de dados), sinais de operador, matrizes, elementos de matriz, funções.

Todas as expressões resultam em um único valor de um tipo de dados específico. As expressões também podem resultar em um dos valores especiais Vazio(uma variável não inicializada do tipo Variante ou o resultado de uma expressão contendo uma variável não inicializada do tipo Variante) ou Nulo(Nulo representa uma expressão contendo dados inválidos). Quando você usa um caractere em uma expressão, os elementos de dados (variáveis ​​ou constantes) nos quais a ação é executada são chamados operandos(operandos); a maioria das operações requer dois operandos.

Compatibilidade de tipo de dados. Conversão automática de dados

Nem todos os tipos de dados são compatíveis entre si e não é possível usar tipos de dados incompatíveis na mesma expressão. Por exemplo, a adição aritmética de uma string a um número não faz sentido, uma vez que tal expressão não é significativa e o VBA não pode avaliá-la.

Muitos tipos de dados são compatíveis entre si. Por exemplo, você pode

combinar diferentes tipos de dados numéricos na mesma expressão; O VBA executa automaticamente as conversões de tipo necessárias para vários tipos numéricos. Às vezes, o VBA também pode converter automaticamente outros tipos de dados para que todos os tipos em uma expressão sejam compatíveis, embora isso nem sempre seja possível. É muito importante controlar e conhecer o tipo da expressão porque se as expressões contiverem tipos incompatíveis, o VBA gera um erro de tempo de execução - erro incompatibilidade de tipo(tipo- incompatibilidade). Ao processar uma expressão contendo diferentes tipos de dados, o VBA primeiro “tenta” resolver quaisquer diferenças de tipo convertendo os valores na expressão em tipos de dados compatíveis. Se a conversão de tipo não resolver quaisquer diferenças, um erro em tempo de execução será exibido e o procedimento interromperá a execução. Por exemplo, na expressão 25 & Ciência da Computação, o VBA sempre realiza concatenação de strings (juntando duas strings), independentemente dos tipos de variáveis; o resultado é o tipo Corda; esta expressão nunca causa um erro de incompatibilidade de tipo.

O VBA normalmente converte todos os tipos de dados numéricos em uma expressão para o tipo de maior precisão e, em seguida, fornece esse tipo ao resultado da expressão. Por exemplo, se a expressão contiver valores numéricos com tipos Inteiro E Solteiro, o resultado da expressão é o tipo Solteiro– o tipo de maior precisão nesta expressão. Se você atribuir o resultado de uma expressão numérica a uma variável com menos precisão do que o tipo real do resultado da expressão, o VBA arredondará o resultado da expressão até que sua precisão corresponda ao tipo esperado. Por exemplo, se você atribuir uma expressão numérica que resulte em um número do tipo Dobro, tipo de variável Inteiro, VBA arredonda número de precisão dupla para digitar Inteiro.

Quando você converte um número em uma string, o VBA cria uma string contendo todos os dígitos desse número e uma casa decimal (se o número tiver uma). O número 3413,72 (o ponto é usado para escrever um número no código), por exemplo, é convertido na string “3413,72”. Se o número for muito grande ou muito pequeno, o VBA pode criar uma representação em string do número em notação científica; por exemplo, o número 0,0000000004927 é convertido na string "4.927E–11".

O VBA pode converter uma string em um número somente se a string contiver uma representação simbólica do número em notação decimal ou científica. As strings "988,6", "812", "-186,7", "1,ZE10" representam números e o VBA pode convertê-los em números. As linhas "1.045", "$ 74.550" e "Bom dia!" não pode ser convertido em números.

Quando o VBA converte valores do tipo boleano em números, o que significa Verdadeiroé convertido para 1 e o valor Falso– para 0. Quando o VBA converte um número em um tipo boleano, zero é convertido em Falso, e qualquer outro valor é convertido para Verdadeiro. Quando o VBA converte valores do tipo boleano para strings, o VBA usa a string "True" para Verdadeiro e "Falso" - para Falso.

Quando o VBA converte o tipo de dados Data para um número, o resultado é um valor numérico - um número do tipo Dobro, que contém o número de dias desde 30 de dezembro de 1899 (um número negativo representa uma data anterior a 30/12/1899). Parte decimal números (se presentes) expressam a hora do dia como parte

dia; 0 é meia-noite e 0,5 é meio-dia. No VBA, convertendo tipos de dados numéricos em tipos Dataé simplesmente o inverso da conversão de tipo Data em número.

Operador de atribuição (=)

Este operador é usado para atribuir o resultado de uma expressão a uma variável. A sintaxe do formulário do operador de atribuição é a seguinte:

nome da vareta = expressão

variável nome da vareta - qualquer variável, um expressão - qualquer expressão.

Quando você executa um operador de atribuição, o VBA primeiro avalia a expressão à direita do operador de atribuição (=) e depois armazena o resultado da expressão na variável cujo nome está à esquerda do operador de atribuição.

Ilustração do operador de atribuição em um diagrama de blocos:

varname = expressão

Quando você atribui o resultado de uma expressão a uma variável com um tipo de dados específico, esse resultado pode ser de um tipo de dados compatível com o tipo da variável que recebe o novo valor. Em muitos casos, o VBA pode converter o tipo de dados do resultado de uma expressão em um tipo compatível com o tipo da variável que recebe o novo valor se o resultado da expressão e a variável ainda não possuírem tipos compatíveis. Tipo de variável Variante qualquer tipo de dados pode ser atribuído.

Operaçoes aritimeticas

O VBA pode realizar todas as operações aritméticas usuais (implementadas por meio de expressões aritméticas): adição, subtração, multiplicação e divisão, bem como elevar números a uma potência especificada, e fornece operações matemáticas especiais adicionais para divisão inteira e divisão de módulo (Tabela 11).

Tabela 11- Sinais de operação (notações) usados ​​em expressões aritméticas VBA (Ni é qualquer expressão numérica VBA válida)

Sinal

Sintaxe

Nome/Descrição

Adição. Adiciona N1 a N2

Subtração. Subtrai N2 de N1

Multiplicação. Multiplica N1 por N2

Divisão. Divide N1 por N2.

Divisão inteira. Divide N1 por N2, descartando qualquer parte fracionária para que o resultado seja um número inteiro.

Divisão de módulos. Divide N1 por N2, retornando apenas o restante da operação de divisão.

Exponenciação. Eleva N1 à potência N2.

Ambos os operandos devem ser expressões numéricas ou strings que o VBA pode converter em um número.

Operações de comparação

As operações de comparação às vezes também são chamadas operações relacionais(relacional operadores). Na maioria das vezes, as operações de comparação são utilizadas para definir critérios para a tomada de uma decisão ou para formular uma descrição das condições sob as quais um grupo de comandos deve ser repetido (organização do ciclo).

O resultado de qualquer operação de comparação é um valor do tipo boleano: Verdadeiro ou Falso. Os operadores de comparação são usados ​​para comparar valores literais, constantes ou variáveis ​​de qualquer tipo semelhante (Tabela 12).

Nome/descrição

Igualdade. Verdadeiro , SeElé igual a E2, caso contrário –Falso

Menor que. Verdadeiro , SeElmenor que E2, caso contrário –Falso

Menos que ou igual a.Verdadeiro, se E1 for menor ou igual

E2, caso contrário –Falso

Mais do que. Verdadeiro , se E1 for maior que E2, caso contrário –Falso

Melhor que ou igual a.Verdadeiro, se E1 for maior ou igual a

E2, caso contrário –Falso

Não igual.Verdadeiro, se E1 não for igual a E2, caso contrário – Falso

Objeto. Verdadeiro, se El se referir ao mesmo objeto que E2, caso contrário –Falso Semelhança. Ambos os operandos devem ser valores do tipo

Tabela 12– Símbolos de comparação (E nesta tabela representa qualquer expressão VBA válida)

Operação/Operador

Sintaxe

f

exemplo,

Corda. Verdadeiro, se El corresponder

Comparação de strings binárias e de texto

O VBA oferece duas maneiras diferentes de comparar caracteres de casos diferentes. O primeiro método que o VBA usa para comparar strings é chamado binário (binário) ou comparação binária e é o método de comparação padrão. Para selecionar o método de comparação de strings do VBA (binário ou texto), use a diretiva OpçãoComparar:

Opção Comparar [ Binário | Texto]

Na comparação de texto, o VBA “trata” letras maiúsculas como equivalentes a letras minúsculas.

Concatenação de strings

O VBA fornece a capacidade de concatenar (colar) strings para formar strings mais longas. Anexar uma string a outra é chamado concatenação(concatenação) linhas. O sinal & só pode ser usado para concatenar strings. A sintaxe geral para o sinal & é:

Operando1 & Operando2 [& Operando3… ]

Operando1 E Operando2 – qualquer string válida ou expressão numérica. Se um ou ambos os operandos forem expressões numéricas, o VBA converte os números em strings antes de executar a operação de concatenação. O tipo de dados do resultado da concatenação de strings é sempre o tipo Corda.

Operadores lógicos

Os usos mais comuns dos operadores lógicos VBA são combinar os resultados de expressões de comparação individuais para criar critérios de decisão complexos em um procedimento ou criar condições sob as quais um grupo de instruções deve ser repetido (Tabela 13).

Tabela 13– Operadores lógicos (E nesta tabela representa qualquer expressão válida com um resultado booleano, como um operador de comparação)

Nome/descrição da sintaxe do operador

E El e E2 Conjunção. Verdadeiro, se E1 e E2 forem significativos

Verdadeiro , de outra forma -Falso Ou El Ou E2 Disjunção. Verdadeiro, se uma expressão ou ambas (E1 e

E2) são iguaisVerdadeiro ; de outra forma -Falso Não Não El Negação. Verdadeiro, se E1 tiver um valor Falso; Falso,

SeElé igualVerdadeiro

Exceção. Verdadeiro, se E1 e E2 tiverem diferentes

valores; de outra forma -Falso

Equivalência. Verdadeiro, se E1 tiver o mesmo

significando o mesmo que E2; de outra forma -Falso

Implicação. Falso, quando E1 é igual Verdadeiro E

E2 é igual aFalso ; de outra forma -Verdadeiro .

Prioridades de operação ao avaliar expressões complexas

Complexo(composto) expressão(complexo expressão) é qualquer expressão formada por duas ou mais expressões. Muitas das expressões que você escreve são expressões complexas, especialmente se controlam a ordem do código em procedimentos ou representam várias fórmulas matemáticas (Tabela 14).

Tabela 14– Hierarquia de declarações/operações da prioridade mais alta para a mais baixa

Comentários do operador/sinal

Exponenciação Prioridade máxima

Unário menos

Multiplicação e divisão têm igual prioridade; eles são avaliados conforme aparecem na expressão da esquerda para a direita

Adição e subtração têm igual prioridade; eles são avaliados conforme aparecem na expressão da esquerda para a direita

Toda concatenação de strings é executada após qualquer operação aritmética na expressão e antes de qualquer comparação ou operação de comparação. operações lógicas

<, <=, >, >=,

Tipo, =,<>, É

Todos os operadores de comparação têm precedência igual e são avaliados conforme aparecem na expressão, da esquerda para a direita. Use parênteses para agrupar operadores de comparação em expressões

Usando funçõesVisual básico

Você já usou as funções integradas do VBA: Caixa de entrada E Caixa de mensagem. Função(função) é uma fórmula integrada que executa operações em expressões e gera um valor. Uma função sempre retorna um valor, que o VBA insere no programa onde o nome da função aparece. As funções VBA são divididas em vários grupos dependendo do tipo de operação ou cálculo que realizam. Não confunda os termos função E procedimento. Normalmente, um procedimento executa uma tarefa específica (ou grupo de tarefas), da mesma forma que um comando de menu específico no Excel, Word ou outro aplicativo executa uma tarefa específica. Uma função opera em um ou mais valores e retorna algum valor resultante (como uma fórmula em uma célula de uma planilha do Excel). Para usar uma função, basta inserir o nome da função em uma instrução VBA junto com quaisquer argumentos que a função exija no ponto da instrução onde você precisa usar o resultado da função. Colocar o nome de uma função em uma instrução VBA para invocar a função é chamado desafio(ligando) funções.

As funções integradas do VBA são divididas em várias categorias com base no propósito geral das funções (matemática, conversão de dados, data e hora, string e manipulação de disco).

Funções matemáticas

O VBA fornece um conjunto padrão de funções matemáticas (Tabela 15). Tabela 15– Funções matemáticas VBA (N significa qualquer expressão numérica)

Devoluções/Ação

Funções (ar-

gengivas)

Retorna valor absolutoN

Abdômen(N)

Cosseno do ânguloN, OndeN

Porque(N)

Retorna o seno de um ângulo;Né o ângulo medido em radianos

Pecado(N)

bronzeado(N)

Retorna a tangente de um ângulo;N– ângulo em radianos

Atn(N)

Retorna o arco tangenteNcomo o ângulo em radianos

Retorna uma constante e, elevado à potência N ( eé a base dos logaritmos naturais e é (aproximadamente) é igual a 2,718282)

Retorna a parte inteira de N. Fix não arredonda o número, mas descarta qualquer parte fracionária. Se N for negativo, Fix retornará o número inteiro negativo mais próximo Melhor que ou igual aN

Registro(N)

Retorna a parte inteira de N. Int não arredonda o número, mas descarta qualquer parte fracionária. Se N for negativo, Int retornará o número inteiro negativo mais próximo menos que ou igual aNRetorna o logaritmo naturalN

aleatório

argumento

é

Devoluções

opcional. Use a função Rnd somente depois

inicializando o gerador de números aleatórios VBA com o operador

Aleatória

Retorna o sinal do número: –1 se N for negativo; 1 se N –

positivo; 0 seNé igual a 0

Retorna a raiz quadrada de N. VBA exibe um erro

tempo de execução, seN– negativo

Funções de conversão de dados

O Visual Basic fornece diversas funções para converter um tipo de dados em outro (Tabela 16). Use essas funções para resolver erros de incompatibilidade de tipo e fornecer controle explícito sobre tipos de dados em expressões.

Tabela 16– Funções de conversão de dados (N é qualquer número, S é qualquer string e E é uma expressão de qualquer tipo)

Função(ar- Retorno/Açãogengivas)

Retorna o número do código do caractere correspondente à primeira letra linhasS. A letra “A”, por exemplo, possui um código de caracteres de 65

Função (argumentos)

Devoluções/Ação

Retorna uma string de um caractere correspondente ao código de caractere N, que deve ser um número entre 0 e 255, inclusive. O código de caractere 65, por exemplo, retorna a letra "A" (Chr(13) é um caractere de retorno de carro, Chr(10) é um caractere de deslocamento de uma linha)

Retorna uma string contendo o valor representado pela expressão E, formatada conforme instruções contidas em S

Retorna uma string contendo a representação hexadecimal de N

Oct(N) Retorna uma string contendo a representação octal de N

Retorna um número inteiro do tipo Longo, representando o valor das cores primárias da imagem. O N em cada argumento deve ser um número inteiro no intervalo de 0 a 255, inclusive. Os argumentos (da esquerda para a direita) são os valores de vermelho, verde e azul

Str(N) Retorna uma string equivalente à expressão numérica N

Retorna um valor numérico correspondente ao número representado pela string S, que deve conter apenas dígitos e uma vírgula decimal, caso contrário o VBA não poderá convertê-lo em um número. Se o VBA não puder converter a string em S, a função Val retornará 0

CBool(N) Retorna o equivalente booleano da expressão numérica N

Byte(de 0 a 255); E – qualquer expressão numérica ou de string válida que possa ser convertida em um número

Retorna um valor numérico do tipo Moeda

Retorna um valor do tipo Data. E pode ser qualquer expressão válida (string ou número) representando uma data no intervalo 1/1/100 12/31/9999 , inclusive

Retorna um valor numérico do tipo Dobro, que pode ser convertido em um número

Retorna um valor numérico do tipo Inteiro; E – qualquer expressão numérica ou de string válida que possa ser convertida em um número

Retorna um valor numérico do tipo Longo; E – qualquer expressão numérica ou de string válida que possa ser convertida em um número

Função (argumentos)

Devoluções/Ação

Retorna um valor numérico do tipo Solteiro; E – qualquer expressão numérica ou de string válida que possa ser convertida em um número

Retorna um valor do tipo Corda; E – qualquer expressão numérica ou de string válida

Retorna um valor do tipo Variante; E – qualquer expressão numérica ou de string válida

Funções de data e hora

As funções de data e hora do VBA normalmente são usadas para obter a data e hora atuais, dividir um valor de data em suas partes componentes ou converter strings e números em valores como Data(Tabela 17).

Tabela 17– Funções de data e hora (N é qualquer expressão numérica válida e D é qualquer expressão válida como Data(incluindo valores como Data, números ou strings que o VBA pode converter em uma data); todos os argumentos da função são obrigatórios, salvo indicação em contrário)

Devoluções/Ação

Funções (ar-

gengivas)

Retorna a data do sistema. Você também pode usar esta função como procedimento para acertar o relógio do sistema do seu computador. Mais detalhes podem ser encontrados no livro de referência. sistemasVBA

Retorna a hora do sistema do computador como um valor do tipo Data. Você também pode usar esta função como procedimento para acertar o relógio do sistema. Mais detalhes podem ser encontrados de sistema de ajuda VBARetorna a data e hora do sistema

Data E

Retorna um número inteiro que faz parte de uma expressão do tipo Data,

inclusivo

Retorna um número inteiro que faz parte de uma expressão do tipo Data E

Dia da semana(D) Hora(D)

inclusivo

Retorna um número inteiro contendo o dia da semana para uma expressão do tipo

Data. O dia da semana é retornado como um número entre 1 e 7,

inclusivo; 1 é domingo, 2 é segunda e assim por diante

Retorna um número inteiro contendo as horas como parte do horário,

um número entre 0 e 23, inclusive. Se a expressão D não for

contém valores de tempo, entãoHoraretorna 0

Funções (ar-gengivas)

DataAdicionar(S, N, D)

DataSerial(N, N, N)

TempoSerial(N, N, N)

Devoluções/Ação

Retorna um número inteiro contendo minutos como parte do tempo em

tipo de expressão Data. Os minutos são retornados como um número entre 0

e 59, inclusive. Se a expressão D não contiver um valor

tempo,Minutoretorna 0

Retorna um número inteiro contendo segundos como parte do tempo em

tipo de expressão Data. Os segundos são retornados como um número entre

0 e 59, inclusive. Se a expressão D não contiver um valor

tempo,Segundoretorna 0

Retorna valor [tipo Variante(Data)], contendo a data até

DateDiff(S, D1, Retorna [tipo Variante(Longo)] número de temporários D2[,Nl [, N2 ]]) intervalos entre duas datas específicas DatePart(S, D, [, Retorna a parte especificada [tipo Variante(Inteiro)] N1 [, N2]]) data dada

ao qual um intervalo de tempo especificado é adicionado

Retorna o valor da data sequencial para a data especificada. Da esquerda para a direita, os argumentos representam o ano, mês e dia. O argumento do ano deve ser um número inteiro entre 100 e 9999, o mês deve estar entre 1 e 12, o dia deve estar entre 1 e 31 (todos os intervalos são inclusivos)

Retorna o valor do tempo serial. Da esquerda para a direita, os argumentos representam horas, minutos e segundos. O argumento horas deve ser um número inteiro entre 0 e 23, argumentos minutos e segundos devem ser números de 0 a 59 Retorna um valor do tipo Data, equivalente à data especificada pelo argumento E, que deve ser uma string, um número ou uma constante representando uma data

meia-noite de acordo com a hora do sistema do computador Algumas das funções listadas já foram utilizadas nos exemplos deste livro, outras serão utilizadas posteriormente.

Funções de string

As funções de string VBA são frequentemente usadas para localizar strings especificadas dentro de outras strings, comparar uma string com outra e copiar partes selecionadas de strings (Tabela 18).

Retorna um valor do tipo Data, contendo o tempo especificado pelo argumento E, que pode ser uma string, um número ou constante representando o tempo Retorna um número que representa o número de segundos desde

Tabela 18– Funções de string (N é qualquer expressão numérica válida e S é qualquer expressão de string válida)

Chiclete)

Retorna a posição de S2 em S1. N1 – posição inicial para

procurar; N2 determina o tipo de comparação. N1 e N2 são opcionais. Se N2 for omitido, então o atual será usado para pesquisar instalaçãoOpção Comparar InStrRev(Sl, S2 Retorna a posição onde a string S2 aparece dentro de S1

[, Nl[, N2]]) LCase(S)

Len(S) LTrim(S)

Espaço(N) StrComp(Sl, S2, N)

na direção do final (ou N1) até o início da linha. N2 determina o tipo de comparação. Se N2 for omitido, então use será usado para pesquisar instalação atualOpção Comparar

Retorna uma string (tipo Corda), contendo uma cópia de S com todos os caracteres maiúsculos convertidos em caracteres minúscula

Retorna uma string; copia N caracteres de S, começando da esquerda último personagemS

Retorna o número de caracteres em S, incluindo caracteres iniciais e finais espaços

do lado esquerdo da linha (espaços iniciais) Retorna uma string; copia caracteres N2 de S, começando na posição do caractere em S especificada por N1. N2 é opcional; se N2 for omitido, Mid retornará tudo caracteres em uma stringSda posiçãoN1 até o final da linha Retorna um valor String; copia N caracteres de S,

começando pelo caractere mais à direitaS

Retorna uma cópia da string S após a remoção dos caracteres de espaço em branco

do lado direito da string (caracteres finais)

Retorna uma sequência de espaços de comprimentoNpersonagens

Compara S1 com S2 e retorna um número que indica o resultado da comparação: -1 se SI< S2; 0, если SI = S2; 1, если SI >S2. N é opcional e especifica se a comparação deve diferenciar maiúsculas de minúsculas. Se N for omitido, as strings serão comparadas usando a configuração atual OpçãoComparar

Retorna uma string convertida em novo uniforme dependendo do código numérico especificado pelo argumento N. O VBA fornece constantes internas para uso com a função StrConv; os mais úteis são: vbProperCase(converte a string para que cada letra que inicia uma palavra fique em maiúscula), vbLowerCase(converte a string em letras minúsculas) e vbUpperCase(converte a string em letras maiúsculas)

Função(ar- Retorno/AçãoChiclete)

String(N, S) Retorna uma string de N caracteres, consistindo no caractere

especificado pelo primeiro caractere emS Trim(S) Retorna uma cópia da string S após remover os caracteres iniciais e

caracteres de espaço em branco à direita desta string UCase(S) Retorna S com todos os caracteres minúsculos,

convertido para caracteres maiúsculos Vários listados na tabela. As 16 funções de conversão de tipos de dados também se aplicam à manipulação de strings: Chr, Format, CStr, em particular.

Formatando Valores de Dados

Embora o VBA possa converter automaticamente qualquer tipo de dados em uma string para exibição usando a função MsgBox ou para inserção em uma planilha do Excel, o formato de dados escolhido pelo VBA pode não ser o desejado. Ao converter um número em uma string, o VBA não adiciona um separador de milhar, cifrões ou outra formatação de número à string. Além disso, se um número for muito grande ou muito pequeno, o VBA cria uma string que representa esse número em notação científica. Ao converter datas, o VBA sempre usa o formato abreviado de data e hora usado pelo sistema operacional do computador e sempre exibe a data e a hora.

Para obter quase qualquer formato de data ao converter números ou datas em strings, você pode usar a função Formatar; você pode até usar a função Formatar para formatar dados de string de acordo com um padrão específico. Você também pode criar formatos de tela personalizados se precisar que os dados apareçam em um formato específico. Sintaxe do operador de formato:

Formatar( Expressão [, Formatar[, Primeiro dia da semana [, Primeira semana do ano]]])

Expressão – qualquer expressão válida (obrigatório); Formatar – uma expressão válida de um formato nomeado ou definido pelo usuário (opcional); Primeiro dia da semana – uma constante que define o primeiro dia da semana (opcional); Primeira semana do ano – uma constante que define a primeira semana do ano (opcional).

Para argumentos Primeiro dia da semana E Primeira semana do ano O VBA nomeou constantes, sobre as quais você pode aprender na Ajuda do VBA em Constantes de data.

Para usar a função Formatar, você pode especificar um formato predefinido (chamado formato nomeado(nomeado formatar) ou crie uma imagem de um formato específico usando combinações de um grupo especial de caracteres chamado caracteres de espaço reservado(espaços reservados). Se precisar criar formatos personalizados para números, datas ou horas, você precisará criar uma string contendo caracteres de espaço reservado para especificar a formatação que a função deve usar Formatar ao converter valores em uma string (Tabela 19). Além disso, na tabela. 19 usado

por exemplo, o valor numérico é 1234,5.

para criar personalizado

Tabela 19– Formatar caracteres de preenchimento

Caractere de espaço reservado

Ação

Um caractere numérico que exibe um dígito se alguém estiver nessa posição ou 0 se não estiver. Você pode usar o caractere 0 para exibir zeros à esquerda para inteiros e zeros à direita para decimais; 00000.000 exibe 00124.500

Um símbolo numérico exibe um dígito se houver algum nesta posição, caso contrário não exibe nada. O caractere de espaço reservado # é equivalente a 0, exceto que os zeros à esquerda e à direita não são exibidos; #####.### exibe 1234,5

$ Exibe um cifrão; $###,###.00 exibe $1.234,50

Caractere de espaço reservado decimal, exibe o ponto decimal na posição designada na sequência de caracteres de espaço reservado 0; #.##.## exibe 1234,5

Símbolo de porcentagem, multiplica o valor por 100 e adiciona um sinal de porcentagem na posição indicada pelos caracteres de preenchimento 0; #0.00% exibe o número 0,12345 como 12,35% (12,345 arredonda para 12,35)

, (vírgula)

Separador de milhares, adiciona vírgulas como separadores de milhares em cadeias de caracteres de preenchimento 0 e #; ###,###,###. 00 exibe 1.234,50

Exibe valores em formato exponencial com sinal de expoente apenas para valores negativos; #.#### E00 exibe 1.2345E03; 0,12345 é exibido como 1,2345E-01

Exibe valores em formato exponencial com expoente para valores positivos e negativos; #.#### E+00 exibe 1.2345E+03

Separa dia, mês e ano para formatação de valores de data. milímetros/ dd/ aa exibe 06/06/97. Os caracteres "/" podem ser substituídos por caracteres de hífen para serem exibidos como 06-06-97

Especifica como exibir meses em datas; eu exibe 2, milímetros– 02, mmm– Fevereiro, mmmm- Fevereiro

Especifica como exibir dias em datas; d exibe 1, dd exibe 01, ddd- Sex, ddd- Sexta-feira

y Exibe o dia do ano como um número de 1 a 366

Especifica como exibir anos em datas; aa exibe 99, uau– 1999

Exibe o trimestre do ano como um número de 1 a 4

Exibe o dia da semana como um número (1 é domingo)

Exibe a semana do ano como um número de 1 a 54

Caractere de espaço reservado

Ação

: (dois pontos) Separa horas, minutos e segundos em valores de formato de hora; ah: milímetros: ss exibe 02:02:02

Especifica como exibir o relógio; para o valor de tempo 02:01:38 h exibe 2, ah exibe 02

Símbolo de espaço reservado para minutos para tempo; para valor de tempo 02:01:08 n exibe 1 e nn exibe 01

Símbolo de espaço reservado para segundos para tempo; para valor de tempo 02:01:08 é exibe 8 e ss exibe 08

Exibe a hora no formato de 12 horas com AM e PM adicionados; h: nnAM/RM exibe 16h. Os formatos alternativos incluem am/pm, A/P e a/p

Espaço reservado para caracteres, exibe um espaço se não houver nenhum caractere correspondente na string formatada (a ordem de preenchimento padrão é da direita para a esquerda)

Exibe todos os caracteres em maiúsculas

Exibe todos os caracteres em letras minúsculas

Usando funções do aplicativo host

Além das funções incorporadas ao Visual Basic for Applications, algumas funções do aplicativo host VBA estão disponíveis no código VBA. Hospedar-aplicativoé uma aplicação na qual são desenvolvidos procedimentos VBA como Word, Excel, PowerPoint, Outlook ou FrontPage. O Excel, por exemplo, possui diversas funções que realizam operações matemáticas, lógicas, financeiras e estatísticas em dados de planilhas. Muitas (embora não todas) dessas funções do Excel podem ser acessadas a partir do código VBA. As funções do aplicativo host disponíveis para o VBA não fazem parte do VBA, elas fazem parte do aplicativo host. Os recursos disponíveis para VBA em um aplicativo host podem não estar disponíveis em outro.

Para usar uma função que pertence a um aplicativo host, acesse a função por meio de um objeto de programa Aplicativo. O objeto Application VBA representa o aplicativo host e todos os seus recursos. Os objetos são descritos com mais detalhes na Parte 6.

Tarefa 6. Escreva um procedimento que use a função Max do Excel.

Por esta:

Insira o procedimento (Listagem 8):

Listagem 8 – Usando funções do ExcelMáx.

1 Sublista3_08()

2 Aplicação MsgBox.Max(9, 17, -18, 20)

Por trás da palavra Aplicativo seguido por um ponto (.) e depois o nome da função Máx. sem espaços. Este ponto, chamado ponto separador(ponto separador), indica que a instrução se refere a uma função Máx., que faz parte do objeto

Aplicativo.

O resultado da função Excel não pode ser ignorado. Você deve sempre incluir parênteses em uma chamada de função do Excel e sempre usar o resultado da função de alguma forma: como um valor em uma expressão, um argumento para outra função ou procedimento ou em uma instrução de atribuição.

Nem todas as funções do aplicativo host estão disponíveis para o VBA. Se você não tiver certeza se uma determinada função do aplicativo host está disponível para o VBA, use Objeto Navegador para verificar se a lista inclui Membros (Componente) esta função, quando selecionada Função de planilha na lista Aulas (Aulas) e com o aplicativo host selecionado na lista Projeto/ Biblioteca (Projeto/Biblioteca). Se função necessária não estiver na lista, então não estará disponível para VBA.

Perguntas de controle

    Defina o conceito de “tipos de dados”. Quais tipos de dados são usados ​​no VBA?

    O que é uma identificação?

    O que é uma variável? O que significa a expressão “definir uma variável implicitamente” e o que significa “explicitamente”?

    Quais constantes são usadas no VBA? O que são constantes internas?

    Para que são utilizadas as funções InputBox e MsgBox?

    O que é uma expressão?

    Defina a sintaxe do operador de atribuição.

    O que são operações relacionais?

    Qual é a prioridade das operações matemáticas?

    Qual palavra-chave existe no VBA que deve ser usada ao acessar Funções do Excel? Para que você pode usar a janela do Navegador de objetos?

  • boleano- O tipo de dados booleano pode armazenar apenas dois valores: Verdadeiro ou Falso, verdadeiro ou falso. Usá-lo em vez de variáveis ​​inteiras é um bom estilo de programação.
  • Byte- o tipo byte é novo no Visual Basic 5 e foi projetado para armazenar números inteiros de 0 a 255. Seu uso permite economizar bastante RAM e reduzir o tamanho dos arrays em comparação com Versões prévias Visual básico. Também é usado ao trabalhar com arquivos binários.
  • Moeda - esse tipo ausente nas versões GW-BASIC e QuickBASIC. Ele foi projetado para evitar erros durante a conversão números decimais em forma binária e vice-versa. (É impossível representar 1/10 como a soma de 1/2,1/4, 1/8, 1/16, etc.) Este tipo pode ter até 4 dígitos após a vírgula decimal e até 14 antes isto. Dentro deste intervalo, os cálculos serão precisos. O identificador é o símbolo “@”. Como todas as operações aritméticas, exceto adição e subtração, são executadas tão lentamente quanto no caso de variáveis ​​de precisão dupla, esse tipo é preferido para cálculos financeiros. (Para quem está se perguntando, esse tipo usa números inteiros de 19 casas que são divididos por 10.000. Isso permite 15 casas decimais e 4 após a casa decimal.)
  • Data- Este tipo de dados permite armazenar valores de hora e data entre meia-noite de 1º de janeiro de 100 e meia-noite de 31 de dezembro de 9999. Tais valores são representados no texto do programa por caracteres "#", por exemplo: NewYear = #1 de janeiro de 2000# Se você inserir apenas um valor de data, o Visual Basic assumirá que o horário é 00:00.
  • Decimal- o tipo numérico mais poderoso. Para armazenar uma variável deste tipo, são alocados 16 bytes. Os limites negativos e positivos do intervalo em que os valores possíveis desta variável estão localizados são idênticos em magnitude e iguais a +/- 79 228 162 514 264 337 593 543 950 335, se você usar números inteiros. Se for necessário armazenar valores fracionários, os limites dos valores possíveis serão alterados em várias ordens de grandeza, dependendo de quantas casas decimais o desenvolvedor usar. Este tipo só pode ser usado para armazenar frações decimais. O desenvolvedor pode usar até 28 casas decimais.
  • Dobro- variáveis ​​​​deste tipo permitem armazenar números com precisão de até 16 dígitos e comprimento de até 300 caracteres. O identificador é "#". Os cálculos com eles também são aproximados e sua velocidade é relativamente baixa. Variáveis ​​duplas são usadas principalmente para cálculos científicos.
  • Inteiro- Variáveis ​​inteiras só podem armazenar números inteiros relativamente pequenos (variando de -32.768 a +32.767). Operaçoes aritimeticas nesses números eles são executados muito rapidamente. Para denotar este tipo, use o símbolo "%": IntegerPerem% = 3
  • Longo- este tipo apareceu pela primeira vez na linguagem QuickBASIC. Essas variáveis ​​armazenam valores inteiros de -2.147.483.648 a +2.147.483.647. Elas são indicadas pelo símbolo “&”. As operações aritméticas com esses números também são muito rápidas e, ao serem executadas em um processador 386DX ou 486DX, houve apenas uma pequena diferença na velocidade de cálculo entre Long e Integer. LongPerem& = 123456789
  • Objeto- na verdade, uma variável desse tipo é apenas um link para uma instância específica de um objeto. 4 bytes são alocados para armazenar a variável.
  • Solteiro- o identificador desses números é o símbolo "!". Este tipo de variável permite armazenar números fracionários com precisão de até sete dígitos. Isso significa que se o resultado for 12345678,97, então a parte 8,97 não é precisa. O resultado poderia ser, por exemplo, 12345670,01. Os números podem ter até 38 caracteres. Os cálculos com essas variáveis ​​também serão aproximados. Além disso, as operações aritméticas são mais lentas do que com variáveis ​​inteiras.
  • Corda- variáveis ​​​​de string armazenam caracteres. Uma forma de indicar esse tipo de variável é adicionar um “$” ao final de seu nome, por exemplo: StringPerem$. Teoricamente, tal variável pode conter até 2 bilhões de caracteres. Em qualquer caso, num computador específico este número será muito menor devido aos volumes limitados memória de acesso aleatório, recursos do Windows ou o número de caracteres usados ​​no formulário. Um dos usos mais básicos de variáveis ​​de string é selecionar informações de campos de entrada.

Por exemplo, se você alterar o texto na caixa de texto 1, a caixa de texto exibirá o mesmo texto, mas sem o último caractere à direita:

Opção Explícita Dim strText As String Private Sub Form_Load() Text1.Text = "" Text2.Text = "" End Sub Private Sub Text1_Change() Em caso de erro Retomar Próximo Text2.Text = strText strText = Left(Text1.Text, Len(Text1 .Texto) - 1) Fim Sub

Variante- este tipo foi adicionado ao Visual Basic 5 a partir da versão 2.0. Uma variável do tipo variante pode conter dados de qualquer tipo. Se o Visual Basic não souber o tipo de dados a receber, você deverá usar variante. O tipo de informação não importa, pois a variante pode conter qualquer tipo de dado (numérico, data/hora, string). O Visual Basic executa automaticamente as transformações de dados necessárias, portanto você não precisa se preocupar com isso. Por outro lado, você pode usar funções integradas para verificar o tipo de dados armazenados em uma variável variante. Eles facilitam verificar se o usuário está inserindo as informações corretamente. Usar um tipo de dados variante torna o programa mais lento porque são necessários tempo e recursos para operações de conversão de tipo. Além disso, muitos programadores percebem que o uso de conversões automáticas de tipos de dados resulta em programas de aparência desleixada. A única razão ao usar a variante é possíveis erros ao converter tipos diretamente pelo programador.

Às vezes, ao usar determinados operadores, funções de API ou simplesmente para suas próprias necessidades, você precisa criar seus próprios tipos de dados. Freqüentemente são chamadas de estruturas. Em sua essência, uma estrutura é como um array unidimensional que colocamos em uma variável. Mas pode incluir dados de diferentes tipos.

A criação do seu próprio tipo de dados é feita usando a instrução Type, que é usada na seção Geral do código do formulário.