Вы находитесь на странице: 1из 49

Manual de treinamento

VBA
(Visual Basic for Applications)
CONCEITOS E
TERMOS.................................................................................................................3
C ONCETOS E T ERMOS
B SCOS ..................................................................................................... 4
TCNCOS...................................................................................................7
C ONCETOS E T ERMOS
ESCOPO E
VISIBILIDADE..............................................................................................................9
T POS DE
D ECLARAES .............................................................................................................. 10
VARVES..............................................................................................................12
D ECLARANDO
VARVES.....................................................................................................................17
T POS DE
OPERADOR20
O PERADORES
M ATEMTCOS ........................................................................................................ 21
RELACONAS..........................................................................................................22
O PERADORES
LGCOS................................................................................................................23
O PERADORES
STRNG..................................................................................................................25
O PERADOR DE
CONTROLANDO A EXECUO DO
PROGRAMA......................................................................26
C OMANDOS
C ONDCONAS ........................................................................................................... 27
ENDF................................................................27
F <<C ONDO >> THEN... ELSEF... ELSE... C AS_
S ELECT 29 LAO)...................................................................................................30
C OMANDOS DE L OOPNG ( LOOP..........................................................................30
D O [{W HLE | U NTL } CONDO ] [E XT D O ]
ELEMENT]..........................................................32
F OR E ACH VARVEL N GRUPO [E XT F OR ] N EXT
[C OMANDO >>...................................................................................................................
EXT <<33
VISUAL BASIC PROCEDURES
(PROCEDIMENTOS).................................................................34
P ROCEDMENTOS
SUB..................................................................................................................35
FUNCTON.........................................................................................................36
P ROCEDMENTOS PROCEDMENTO.........................................................................37
O BTENDO DADOS DENTRO DE UM
FUNES......3!
F UNES
MATEMTCAS ............................................................................................................... 39
CONVERSO............................................................................................................41
F UNES DE HORA...........................................................................................................44
F UNES DE D ATA E
STRNG....................................................................................................................48
F UNES DE MATRZES.....................................................................................51
F UNES DE M ANPULAO DE
LGCAS.......................................................................................................................52
F UNES
DSCO......................................................................................................................54
F UNES DE
TESTE......................................................................................................................56
F UNES DE
ESCOLHA.................................................................................................................58
F UNES DE
FORMAT....................................................................................................................61
A F UNO
PROGRAMAO ORIENTADA A
OB"ETOS..............................................................................69
C ONCETOS .. 70 CLASSES......70
OBJETOS......72
HERANA.....74
PROPREDADES)........................................................................................................75
A TRBUTOS ( MTODOS.....76
CONVENES DO CODING DO VISUAL
BASIC........................................................................##
C$%&'()$* ' T'+,$*
nicialmente, necessrio conhecer conceitos e termos utilizados no VBA Visual
Basic for Application para iniciar a adaptao linguagem. A partir de conceitos
solidificados muito mais fcil entender as regras que devem ser seguidas para
desenvolver um cdigo e como deixar ele mais gil.
Os termos so utilizados para simplificar determinados conceitos, ajudando assim
localizar rapidamente assuntos diretamente ligados linguagem. Com o passar do
tempo realizando exerccios e sempre buscando novas formas de melhorar o seu
cdigo (macro), os conceitos e termos passam a ser assimilados mais facilmente.
VBA Visual Basic for Application - 3 VBA - VISUAL BASIC .$+ APPLICATION Data:
JAN/2001
Conceitos e Termos Bsicos
Argumento, Uma constante, varivel, ou expresso passada para um
procedimento.
Conjunto de Caractere ASCII, American Standard Code for nformation
nterchange (ASC) 7-bit caractere atribudos amplamente para representar letras
e smbolos encontrados em um teclado padro U.S. O conjunto de caractere
ASC a mesma dos primeiros 128 caracteres (0127) do conjunto de caractere
ANS.
Concatenao, a juno de duas variveis ou expresses texto.
Exemplo: "12 + "13 resultar em "1213. "Editora + "Terra resultar em "Editora
Terra.
Observao: Entretanto, apesar de podermos usar o operador + para fazer
concatenao, vamos usar em seu lugar sempre o operador &. Esse operador,
em detrimento ao outro, fora a concatenao mesmo quando os dados so
incompatveis. Exemplo !" + !# resultar$ em "%. &'serve que uma expresso
era (tring e a outra num)rica, e o operador + forou a soma. (e us$ssemos
neste exemplo !" & !# resultaria em !"!# apesar da expresso !# ser
num)rica.
Comentrio, Texto que contribui na explicao do cdigo facilitando o trabalho do
programador. No Visual Basic, um comentrio pode ser feito usando uma
apstrofe ('), ou uma palavra chave Rem seguido por um espao.
Constante, Um nome especfico que contm um valor constante para toda a
execuo de um programa. Constantes podem ser usadas em qualquer parte de
seu cdigo. Uma constante pode ser uma string ou nmero literal, outra constante,
ou qualquer combinao que inclua aritmtica ou operadores lgicos exceto s e
exponenciao.
!presso, Uma combinao de palavras-chave, operadores, variveis,
constantes, nmero, ou objeto. Uma expresso pode desempenhar um clculo,
manipular caracteres, ou testar dados.
"ocalidade, O conjunto de informaes que corresponde a lngua de um pas.
Uma localidade afeta a funcionalidade de uma aplicao nos itens de valores,
converses, formatos, datas dos locais especficos. H dois contextos onde a
informao da localidade importante:
A localidade de cdigo afeta a linguagem de termos tais como as palavras-chaves,
as definies de valores locais como o decimal, formatos de data, e caracteres
que classificam pedidos.
A localidade do sistema afeta a funcionalidade da aplicao, quando voc exibe
nmeros ou converte caracteres em data. Voc pode modificar a localidade do
sistema usando os utilitrios do Painel de Controle fornecidos pelo sistema
operacional.
#ada (#ot$ing), Um valor especial que indica que uma varivel de objeto no
mais longa associada com qualquer objeto real.
#ulo (#ull), Um valor indicando que uma varivel no contm dados vlidos. Nulo
o resultado de: Uma designao explcita de Nula para uma varivel. Qualquer
operao entre expresses que contm valores Nulos.
#%mero de rro, Um nmero que abrange toda a srie de 0 a 65,535, que
corresponde ao nmero do erro referenciado pelo objeto Err. Este nmero
representa uma mensagem de erro particular.
&perador de Comparao, Um caractere ou smbolo indicando um relacionamento
entre dois ou mais valores ou expresses. Esses operadores incluem menor que
(<), menor que ou igual a (<=), maior que (>), maior que ou igual a (>=), diferente
(<>), e igual (=).
'ala(ra)C$a(e, Uma palavra ou smbolo reconhecido pela linguagem VB; por
exemplo, uma declarao, nome de funo, ou operador.
'or *efer+ncia, Um meio de passar um argumento para um procedimento,
usando o endereo, em vez do valor. sto permite ao procedimento acessar a
varivel real. Como resultado, o valor real da varivel pode ser alterado dentro do
procedimento que ela foi passada.
'or Valor, Um meio de passar um argumento para um procedimento, usando o
valor, em vez do endereo de memria da varivel. sto permite ao procedimento
acessar uma cpia da varivel. Como um resultado, o valor real da varivel no
pode ser alterado dentro do procedimento que ela foi passada.
'rocedimento, Uma seqncia especfica de declaraes executadas em uma
unidade. Por Exemplo, Function e Sub so tipos de procedimentos.
*un ,ime (,empo de !ecuo), momento em que o cdigo est sendo
executado. Durante o tempo de execuo, voc no pode editar o cdigo.
*un ,ime rror (rro ,empo de !ecuo), Um erro que ocorre quando cdigo
est sendo executado. Um erro em tempo de execuo resulta quando uma
declarao efetua uma operao invlida.
Separadores de -ata, Caracteres usados para separar o dia, ms, e ano quando o
valor da data formatado.
T(/$* 0' D10$*2 A menos que seja especificado de forma diferente, as variveis
no declaradas so atribudas ao tipo de dados Variant. Especificar o tipo de dado
para uma varivel facilita a criao de programas.
Algumas consideraes sobre a necessidade de definir o tipo de dado para uma
varivel armazenar.
- O seu programa for muito grande e utilizar muitas variveis.
- O seu programa tiver que ser executado com o mximo de velocidade
possvel.
- Voc gravar dados diretamente em arquivos de acesso aleatrio.
Alm de V1+(1%), os tipos de dados existentes so: B3)', B$$4'1%, I%)'5'+, L$%5,
S(%54', D$674', C6++'%&3, D'&(,14, D1)', O78'&) e S)+(%5.
Vari(el, Uma varivel um nome conveniente que se refere a uma localizao
de memria do computador, onde voc pode armazenar informaes de um
programa sendo possvel alterar seu valor durante o processamento. Por exemplo,
voc pde cria uma varivel chamada ClickCount para armazenar o nmero de
vezes que um usurio pressionou um objeto em uma pgina da Web. O que
importante que para alterar ou atribuir um valor para essa varivel voc deve
referenci-la pelo seu nome.
Va.io (mpt/), Um valor que indica o primeiro valor designado para uma varivel.
Variveis Vazias so 0 num contexto numrico, ou zero-comprimento ("") num
contexto de string.
Conceitos e Termos Tcnicos
Arra/, Um conjunto de seqncias de elementos ordenados, tendo o mesmo tipo
de dados. Cada elemento de um array tem um nico identificador referenciado por
um nmero (ndice). Mudanas feitas para um elemento de um array, no afeta os
demais elementos.
C0digo de Caractere, Um nmero que representa um caractere especfico dm um
conjunto, tal como o conjunto de caractere da tabela ASC.
Comparao 1it2ise, Uma comparao idntica de bit-a-bit bits posicionando o bit
nas duas expresses numricas.
Comparando Strings, Uma comparao de duas seqncias de caracteres. A
menos que especificado na funo que far a comparao, todas comparaes de
string so do tipo binrio.
Constante Intr3nseca, Uma constante fornecida por uma aplicao. Voc no pode
desabilitar constantes intrnsecas, e no pode criar uma constante com o mesmo
nome da instrseca.
-ata "iteral, Qualquer seqncia de caracteres com um formato vlido que
circundado por sinais de nmero (#). Formatos vlidos incluem o formato de data
especificado pelos valores locais, ou o formato universal de data. Por Exemplo,
#12/31/99# a data literal que representa Dezembro 31, 1999, onde English-U.S.
o valor da localidade para seu requerimento.
No VB, o nico formato reconhecido o US-ENGLSH, apesar da localidade real
do usurio. O formato interpretado mm/dd/yyyy.
scopo, Define a visibilidade de uma varivel, procedimento, ou objeto. Por
Exemplo, uma varivel declarada como Public visvel para todos os
procedimentos em todos os mdulos. Variveis declaradas em procedimentos so
visveis unicamente dentro do procedimento que a declarou, perdendo seu valor
ao trmino deste procedimento.
!presso com String, Qualquer expresso que avalia para seqncia de
caracteres contguos. Elementos de uma expresso de string podem incluir uma
funo que retorne uma string, uma string literal, uma constante de string, ou uma
varivel de string.
!presso do Boolean, Uma expresso que avalia a condio Falsa (False) ou
Verdadeira (True).
!presso de -ata, Qualquer expresso que pode ser interpretada como uma
data. sto inclui qualquer combinao literal de data, nmeros que comparem
datas iguais, strings que comparem datas iguais, e datas voltadas de funes.
Uma expresso de data limitada pelo nmero ou string, em qualquer
combinao, limitada 1 Janeiro de 100 at 31 de dezembro de 9999. Datas so
armazenadas como partes de um nmero real. Valores esquerda do decimal
representam a data; valores direita do decimal representam o tempo. Nmeros
negativos representam datas anterior a 30 de dezembro 1899.
!presso #um4rica, Qualquer expresso que pode ser avaliada como um
nmero. Elementos da expresso pode incluir qualquer combinao de palavras-
chave, variveis, constantes, e operadores que resultam em um nmero.
#3(el de 'rocedimento, Descreve declaraes localizadas dentro de um
procedimento Function ou Sub. Declaraes so realizadas primeiro, seguido por
designaes e outro cdigo do executvel. Por Exemplo:
Sub MySub() ' This statement declares a sub procedure block.
Dim A ' This statement starts the procedure block.
A = "My variable" ' Procedure-level code.
Debug.Print A ' Procedure-level code.
End Sub ' This statement ends a sub procedure block.
#3(el de scrita, Qualquer cdigo exterior a um procedimento referido como um
nvel de cdigo.
'i, Pi um valor igual a constante matemtica aproximadamente de
3.1415926535897932.
'ri(ate, Variveis que so visveis apenas ao Script em que elas so declaradas.
'u1lic, Variveis declaradas Public so visveis para todos procedimentos em
todos mdulos de uma aplicao.
SC&-, Um valor inteiro longo (Long nteger) que usado para passar
informaes detalhadas a funo AP. Os cdigos de condio para interfaces de
OLE e APs so definidas no FACLTY_TF.
Seed, Um valor inicial usado para gerar nmeros do pseudo aleatrios. Por
exemplo, a declarao Randomize cria um nmero usado pela funo Rnd para
criar seqncias de nmero do pseudo aleatrios.
E*&$/$ ' V(*(7(4(010'
O escopo de uma varivel determinado quando voc a declara. Quando voc
declara uma varivel dentro de um procedimento, apenas o cdigo dentro daquele
procedimento pode acessar ou muda o valor daquela varivel. sto um escopo
local e chamado de varivel a nvel-procedimento. Se voc declara uma varivel
exteriormente a um procedimento, voc faz com que todos os procedimentos
reconheam aquela varivel, isto uma varivel a nvel-escrita.
Uma varivel pblica apenas destruda quando ocorre o trmino do script. No
caso da varivel privada, ou seja declarada dentro de um procedimento, sua
destruio ocorre com o trmino da execuo do procedimento. As variveis locais
so usadas para uma determinada tarefa temporria, liberando assim espao de
memria. Voc pode declarar variveis locais com o mesmo nome em vrios
procedimentos diferentes, pois elas so apenas visveis no momento da execuo
do procedimento.
Tipos de Declaraes
C$%*)1%)'*2 A instruo C$%*) deve ser utilizada para declarar uma constante e
definir o seu valor. Depois que uma constante tiver sido declarada, no ser
possvel modific-la ou atribuir-lhe um novo valor.
A declarao de uma constante pode ser feita dentro de um procedimento ou na
parte superior de um mdulo, na seo D'&41+19:'*. Como padro, as
constantes em nvel de mdulo so privadas.
Para declarar uma constante em nvel de mdulo como pblica, a instruo C$%*)
deve ser precedida da palavra-chave P674(&. Para declarar explicitamente uma
constante privada, a instruo C$%*) deve ser precedida da palavra-chave P+(;1)'
para facilitar a leitura e a interpretao do cdigo-fonte.
E<',/4$2 O exemplo apresentado a seguir declara a constante P674(&
<condade> como um nteger e atribui a ela o valor 34.
Public Const condade As nteger = 34
Como o valor de uma constante conhecido, possvel especificar o tipo de
dados em uma instruo Const. Para obter maiores informaes sobre tipos de
dados, consulte "Resumo de tipos de dados" na Ajuda do Visual Basic.
Diversas constantes podem ser declaradas em uma instruo. O tipo de dados
deve ser includo em cada constante. Na instruo apresentada a seguir, as
constantes I010' e S14=+($ so declaradas como I%)'5'+:
C$%*) condade As nteger = 34, conSalrio As Currency = 35000
Vari(eis, Para declarar variveis, geralmente utilizada uma instruo -im.
Essas restries de declarao podem ser colocadas em um procedimento, para
criar uma varivel em nvel de procedimento, ou na parte superior de um mdulo,
na seo -eclara5es, para criar uma varivel em nvel de mdulo.
O exemplo apresentado a seguir cria a varivel *)+N$,' e especifica o tipo de
dados S)+(%5
Dim strNome As String
Caso esta instruo esteja dentro de um procedimento, a varivel *)+N$,' s
poder ser utilizada nesse procedimento.Se a instruo for colocada na seo
D'&41+19:'* do mdulo, a varivel *)+N$,' estar disponvel para todos os
procedimentos dentro do mdulo, mas no para outros mdulos no projeto. Para
tornar essa varivel disponvel para todos os procedimentos no projeto, deve ser
precedida com a instruo P674(&, como no exemplo apresentado a seguir:
Public strNome As String
possvel declarar diversas variveis em uma instruo. Para especificar um tipo
de dado, necessrio incluir o tipo de dados para cada varivel. Na instruo
apresentada a seguir, as variveis intX, intY e intZ so declaradas como tipo
nteger:
Dim intX As nteger, intY As nteger, intZ As nteger
Na instruo apresentada a seguir, intX e intY so declaradas como tipo Variant; apenas
intZ declarada como tipo nteger:
Dim intX, intY, intZ As nteger
VBA Visual Basic for Application - 11 VBA - VISUAL BASIC .$+ APPLICATION Data:
JAN/2001
Declarando Variveis
specificando *estri5es, Os nomes de variveis seguem as regras padronizadas
para serem identificadas pelo VB.
Para darmos nomes a uma varivel necessrio seguir algumas regras bsicas:
- Sempre iniciar com letras (A at Z). No use nmeros ou smbolos para
iniciar o nome de uma varivel.
- Pode-se usar at 255 caracteres para compor o nome da varivel, ento
batize-as com nomes bastante claros, para que, apenas lendo seu nome,
saibamos do que se trata e para que serve. Exemplo:
"NomeDependenteFuncionrio. Parece grande demais, mas s de l-lo j
saberemos que se trata de uma varivel que ir armazenar o nome do
dependente de um funcionrio.
- Na composio do nome no podemos usar espao em branco, sinal de
hfen, smbolos como @#*&^$% ou sinais de pontuao. Pode-se usar
somente Letras do alfabeto, nmeros e o sublinhado.
- Cuidado para no usar nomes reservados pela linguagem. Exemplo: f,
Caption, Name, Sub, End, etc.
-esignando Valores para Vari(eis, Valores so designados para variveis
criando uma expresso do tipo: a varivel encontra-se do lado esquerdo da
expresso, e o valor que voc deseja atribuir no lado direito. Por exemplo:
B = 200
6tili.ando a instruo -IM,
Sinta!e
D(, [>()?E;'%)*] <nomedavar>[([<subscritos>])] [A* [N'@] <tipo>] [,
[>()?E;'%)*] <nomedavar>[([<subscritos>])] [A* [N'@] <tipo>]] . . .
'arte -escrio
>()?E;'%)* - $/&($%14. Palavra-chave que especifica que <nomedavar> uma
varivel de objeto, utilizada para responder a eventos acionados por um objeto
ActiveX. vlida somente em mdulos de classe.
Podem ser declaradas quantas variveis individuais forem necessrias utilizando
WithEvents, mas no podem ser criadas matrizes com >()?E;'%)*. N'@ no
pode ser utilizado com >()?E;'%)*.
<nomedavar> - $7+(51)A+(1. Nome da varivel; segue as convenes de
nomenclatura padro de variveis.
<subscritos> - $/&($%14. Dimenses de uma varivel de matriz; at 60 dimenses
mltiplas podem ser declaradas. O argumento <subscritos> utiliza a sintaxe:
[inferior To] superior [, [inferior To] superior] . . .
Quando no enunciado explicitamente em inferior, o limite inferior de uma matriz
controlado pela instruo Option Base. O limite inferior zero se nenhuma instruo
Option Base estiver presente.
N'@ - $/&($%14. Palavra-chave que permite a criao implcita de um $78')$. Se
voc utilizar New ao declarar a varivel de objeto, uma nova instncia do $78')$
ser criada na primeira referncia a ele. Dessa forma, voc no precisa utilizar a
instruo S') para atribuir a referncia do objeto. A palavra-chave N'@ no pode
ser utilizada para declarar variveis de qualquer tipo de dados intrnseco; no
pode ser utilizada para declarar instncias de objetos dependentes e nem ser
utilizada com WithEvents.
<tipo> - $/&($%14. Tipo de dados da varivel; pode ser: Boolean, Byte, nteger,
Long Currency, Single, Double, Decimal, Date, String, Object e Variant.
Utilizar uma clusula A* <tipo> separada para cada varivel declarada.
Observaes
*s vari$veis declaradas com Dim no nvel de m+dulo esto disponveis para todos
os procedimentos dentro do m+dulo. ,o nvel de procedimento, as vari$veis esto
disponveis somente dentro do procedimento.
Utilize a instruo D(, no nvel de mdulo ou procedimento para declarar o tipo de
dados de uma varivel.
Por exemplo, a instruo a seguir declara uma varivel como nteger:
-im x As nteger
-im y As nteger
x = 10
y = 13
Voc tambm pode utilizar a instruo D(, com parnteses vazios para declarar
uma matriz dinmica. Aps declar-la, utilize a instruo R'D(, dentro de um
procedimento para definir o nmero de dimenses e elementos na matriz. Se voc
tentar declarar novamente uma dimenso para uma varivel de matriz cujo
tamanho tenha sido especificado explicitamente em uma instruo P+(;1)', P674(&
ou D(,, um erro ser gerado.
Vari(eis Scalar e Vari(eis de Arra/ (MA,*I7), Em alguns casos voc
apenas necessita designar um nico valor para uma varivel. Uma varivel
contendo um nico valor chamada de scalar.
Entretanto conveniente designar mais de um valor relacionado apenas a
uma varivel. Neste caso voc pode criar uma varivel que contenha uma
srie de valores. Essa varivel chamada de array. A declarao de uma
varivel de array feita dando-se um nome seguindo os parntesis ( ). No
seguinte exemplo, declarado um array contendo 11 elementos:
Dim Vetor(10)
Embora o nmero mostrado nos parntesis seja 10, todos os arrays no
VBScript so iniciados com base zero, assim este array realmente contm
11 elementos. Em um array de base zero, o nmero de elementos ser
sempre o nmero mostrado entre parntesis acrescido de um. Voc
referencia cada dado de um
elemento de array usando um ndice. Comeando com o zero e finalizando em 10, os
dados podem ser atribuidos aos elementos de um array como se segue:
A(0) = 256
A(1) = 324
A(2) = 100
. . .
A(10) = 55
Os dados podem ser recuperados de qualquer elemento usando um ndice
dentro do elemento de array. Por exemplo:
. . .
SomeVariable = A(8)
. . .
Arrays no so limitados para uma nica dimenso. Voc pode ter 60
dimenses, embora a maioria das pessoas no compreenda mais que trs
ou quatro dimenses. Dimenses mltiplas so declaradas com nmeros
relativos a sua dimenso, separados por vrgula entre parntesis. No
seguinte exemplo, a varivel MyTable possui duas dimenses consistindo
de 6 filas e 11 colunas:
Dim MyTable(5, 10)
Em um array de duas dimenses, o primeiro nmero ser sempre o
nmero de linhas; e o segundo nmero, o nmero de colunas.
Voc pode tambm declarar um array cujo tamanho alterado durante o
processamento do script. Este array chamado de array dinmico. O array
inicialmente declarado dentro de um procedimento usando a declarao
Dim ou ReDim. Entretanto, para um array dinmico, nenhum tamanho ou
dimenso colocado no interior dos parntesis. Por exemplo:
Dim MyArray()
ReDim AnotherArray()
Para usar um array dinmico, voc deve subseqentemente usar a
declarao ReDim para determinar o nmero de dimenses e o tamanho
de cada dimenso. No seguinte exemplo, ReDim atribue 25 ao tamanho
inicial do array dinmico. Com a declarao ReDim feito um
redimencionamento do array para 30, usando a palavra-chave Preserve
para preservar o contedo do array.
ReDim MyArray(25)
. . .
ReDim Preserve MyArray(30)
No h limite para o nmero de vezes que voc pode redimensionar um
array dinmico, mas voc deve saber que se o array for redimensionado
com uma dimenso menor que a anterior, o contedo dos elementos
eliminados sero perdidos.
Ateno; (e voc- no especificar um .tipo/ de dados ou de objeto e se no
0ouver nen0uma instruo Detipo no m+dulo, a vari$vel ser$ Variant, por
padro.
Quando as variveis so inicializadas, uma varivel %6,B+(&1 inicializada como C'+$;
uma seqncia de &1+1&)'+'* de comprimento ;1+(=;'4 inicializada como uma
seqncia de caracteres &$,/+(,'%)$ C'+$ ("") e uma seqncia de &1+1&)'+'* de
comprimento fixo preenchida com C'+$*. As variveis V1+(1%) so inicializadas como
E,/)3. Cada elemento de uma varivel de tipo definida pelo usurio inicializado como
se fosse uma varivel independente.
U)(4(C1%0$ 1 (%*)+69D$ P674(&2 A instruo P674(& pode ser utilizada para
declarar as variveis pblicas em nvel de mdulo.
Public strNome As String
As variveis pblicas podem ser utilizadas em todos os procedimentos do projeto.
Caso uma varivel pblica seja declarada em um mdulo padro ou um mdulo de
classe, ela tambm poder ser utilizada nos projetos que faam referncia ao
projeto onde a varivel pblica declarada.
U)(4(C1%0$ 1 (%*)+69D$ P+(;1)'2 A instruo P+(;1)' pode ser utilizada para
declarar as variveis privadas em nvel de mdulo.
Private MeuNome As String
As variveis privadas podem ser utilizadas somente por procedimentos no mesmo
mdulo.
Observao *o ser utilizada em nvel de m+dulo, a instruo Dim ) equivalente 1
instruo !rivate.) utilizado para facilitar a leitura e a interpretao do c+digo2
fonte.
6tili.ando a instruo Static8 A utilizao da instruo Static, no lugar de uma
instruo -im, significa que a varivel declarada reter os seus valores entre as
chamadas.
U)(4(C1%0$ 1 (%*)+69D$ O/)($% E</4(&()2 Para declarar implicitamente uma
varivel no Visual Basic, basta utiliz-la em uma instruo de atribuio. Todas as
variveis declaradas implicitamente so do tipo Variant. As variveis do tipo
Variant exigem mais recursos de memria que a maioria das outras variveis. O
aplicativo ser mais eficiente se declarar as variveis explicitamente e com um tipo
de dados especfico. A declarao explcita de todas as variveis reduz a
incidncia de erros de nomeao conflitante e de digitao.
Para impedir que o Visual Basic faa declaraes implcitas, necessrio a
insero da instruo O/)($% '</4(&() em um mdulo antes de todos os
procedimentos. Essa instruo obriga-o a declarar explicitamente todas as
variveis dentro do mdulo. Caso um mdulo contenha a instruo O/)($%
'</4(&(), ocorrer um erro de tempo de compilao quando o Visual Basic se
deparar com um nome de varivel que ainda no tenha sido declarada ou que
apresente algum erro de digitao. Exemplo;
&ption !plicit
-im teste As String
Pode ser definida uma opo no ambiente de programao do Visual Basic para
inserir automaticamente a instruo O/)($% '</4(&() em todos os mdulos novos.
Observao; *s matrizes fixas e as matrizes din3micas devem ser declaradas
explicitamente
Tipos de Variveis
As variveis possuem uma importncia fundamental dentro de qualquer linguagem
de programao. Elas armazenam os dados que vo para a memria do
computador, e sempre que referenciamos a elas, esses dados retornam da
memria. E quando esto na memria podem fazer clculos e executar
determinadas funes.
Dica; * escol0a correta da vari$vel no consumo de recursos de processador de
seu computador. (e voc- escol0e o tipo 4ou'le essa vari$vel ir$ consumir os
recursos de sua m$quina para que possa tra'al0ar com n5meros dos tipo
6,7689%96%:6!"6;E2#"6. <as se voc- vai somente armazenar na vari$vel
n5meros na casa do mil0ar, ento a m$quina estar$ a'sorvendo do processador
mais recursos do que vai usar.
#ome -escrio A1rang+ncia
nteger Numrico nteiro -32.768 a 32.767
Long Numrico nteiro -2.147.483.648 a
2.147.483.648
Byte Numrico nteiro 0 a 255
Single Numrico real -3,402823E38 a
-1,401298E-45
1,401298E-45 a
3,402823E38
Doubl Numrico real -1,79769313486232E308 a
4,94065645841247E-324
4,94065645841247E-324 a
1,79769313486232E308
Currency Numrico - Valores
monetrios
-922.337.203.685.477,5808
a
922.337.203.685.477,5807
String Texto 2.147.483.648 de
caracteres nos sistemas 32
bits
65.536 de caracteres nos
sistemas 16 bits
String * comprimento Texot para seqncias
de caracteres de
comprimento fixo
2.147.483.648 de
caracteres nos sistemas 32
bits
65.536 de caracteres nos
sistemas 16 bits
Date Data e Hora entre 01/01/100 a
31/12/9999
Boolean True (verdadeiro) False
(falso)
Object Contm um objeto
Variant Pode ser numrico, string,
objeto ou valor nulo.
#ull, Quando o contedo da varivel um dado invlido ela retorna a palavra-
chave Null.
Vari(el Boolean, Este tipo de varivel contm somente dois valores: True ou
False. ndicado como resultado de comparaes. Exemplo:
Dim Comparao As Boolean
4im ,omeEscola *s (tring
,omeEscola = <odelo >nform$tica
?omparao = @,omeEscola = >nform$ticaA
A varivel Comparao resultar em False.
As propriedades dos objetos que temos que informar True ou False (como por
exemplo Enabled) so do tipo Boolean.
Vari(el -ate, Como o prprio nome diz, so variveis que armazenam Datas.
Entretanto podemos tambm armazenar horas. Para sinalizar para o programa
que vamos armazenar uma data numa determinada varivel usamos o #.
Exemplo: Hoje=#15/07/96#.
Veja o que acontece se usarmos de forma diferente:
Hoje = 15/07/96
O programa ir imaginar que estamos na verdade dividindo 15 por 7 e depois
dividindo por 96.
Hoje = "15/07/96
O programa ir ter seu contedo como uma string (texto) no formato de uma data.
Uma varivel data aceita alguns tipos de clculo como por exemplo:
a = #15/07/96#
b = #30/07/96#
b - a = 15 (Uma data menos outra retorna o intervalo em dias)
a + 3 = #18/07/96# (uma data, mais um valor numrico, soma a quantidade
de dias na data)
a - 3 = #12/07/96# (uma data, menos um valor numrico, subtrai a
quantidade de dias na data)
Vari(el #um4ricas, As variveis nteger, Long, Byte, Single, Double e Currency
armazm em eu contedo somente nmeros. As diferenas entre elas esto na
abrangncia de cada uma e se aceitam ou no casas decimais. A varivel
Currency mais especifica para tratar valores monetrios, e ela j converte os
valores no formato estabelecido no Painel de Controle (Configuraes Regionais)
para moeda.
Vari(el &1ject, O Visual Basic trabalha com objetos. Nossa caixa de
ferramentas est cheia deles. Mas temos tambm objetos Database, Fonts, etc.
Se precisarmos inserir esses objetos em uma varivel usamos um comando
chamado Set, e no o sinal de igual. Exemplo:
Dim BancoDeDados As Object
Set BancoDeDados = OpenDatabase("C:\Visual Basic\BBLO.MDB)
Vari(el String, Esta varivel armazena textos. Esses textos podem ser
caracteres alfanumricos, smbolos, etc. Sempre que formos nos referenciar a
expresso que est contida na varivel string temos que colocar " (aspas).
Exemplo:
NomeEscola="Modelo nformtica.
Neste tipo de varivel podemos fazer comparaes, concatenao de duas
variveis string, ou at extrair uma parte do contedo.
Vari(el Variant, Este tipo de varivel no possui um tipo definido. Ele se
transforma em qualquer tipo dependendo de seu contedo.
Usamos uma Variant quando no sabemos que tipo de dados ter a varivel ou se
j sabemos de antemo que o contedo vai necessitar passar por transformaes
nos tipos de dados armazenados.
O/'+10$+'*
Existe uma srie de operadores, incluindo operadores de aritmtica, operadores
de comparao, operadores de concatenao, e , operadores lgicos.
Quando vrias operaes ocorrem em uma expresso, cada parte avaliada e
resolvida em uma ordem predeterminada chamada precedncia do operador.
Voc pode usar parntesis para alterar a ordem de precedncia e forar a
avaliao de algumas partes de uma expresso. Operaes dentro de parntesis
so sempre resolvidas primeiro, independendo da ordem de resoluo dos
operadores. Dentro dos parntesis, entretanto, a ordem de resoluo dos
operadores mantida.
Quando expresses contm operadores de mais de uma categoria, os operadores
aritmticos so avaliados primeiros, depois os operadores de comparao, e os
operadores lgicos so avaliados por ltimo. Todos os operadores de comparao
tm precedncias iguais; estes, so avaliados da esquerda-para-direita.
Quando ocorrer a multiplicao e a diviso juntamente em uma expresso, cada
operao avaliada da esquerda para direita. gualmente, quando ocorre a adio
e a subtrao juntamente em uma expresso, cada operao avaliada em ordem
da esquerda para direita.
O operador de concatenao de string (&) no um operador aritmtico, mas por
conveno tornou-se e na ordem de resoluo, ele est acima de todos os
operadores de comparao. O operador s um operador de comparao de
objetos. Ele no compara objetos ou seus valores; ele apenas checa e determina
se duas referncias de objeto, referem-se ao mesmo objeto.
Operadores "atemticos
Estes tipos de operadores possuem a finalidade de efetuar clculos.
Operador Descrio Exemplo
+ Soma Var = 18+5
- Subtrao Var = 18-5
* Multiplicao Var = 18*5
/ Diviso Var = 18/5
\ Diviso. Resultado
ser um nmero inteiro
Var = 18\5
^ Exponenciao Var = 18^5
Mod Resto da Diviso Var = 18 Mod 5
Esses operadores respeitam uma ordem de precedncia universal:
1. Exponenciao
2. Multiplicao e Diviso
3. Adio e Subtrao
Caso precisemos efetuar um calculo: 3+4*2^2/4-1+5 resultar em 11. Se por
algum motivo precisarmos que o programa efetue a soma primeiro, ento
devemos coloca-la entre parnteses: (3+4)*2^2/4-(1+5) = 1. Usamos os
parnteses para mudar a ordem de precedncia dos operadores.
Os operadores atuam no somente em nmeros, mas tambm nas variveis cujo
contedo seja valores numricos.
Operadores #elacionais
Estes operadores fazem comparaes entre variveis ou expresses. O retorno
desta comparao ser sempre True (Verdadeiro) ou False (Falso). Nos exemplos
abaixo todas as comparaes sero verdadeiras.
Operador Descrio Exemplo
> Menor 3 < 5
< Maior 5 > 3
<= Menor ou
gual
3 <= 5
>= Maior ou
gual
5 >= 3
= gual 5 = 5
<> Diferente 3 <> 5
Operadores $%&icos
Enquanto que os operadores matemticos retornam o resultado de um clculo, os
operadores lgicos sempre retornam True quando a lgica exata, ou False
quando a lgica no exata.
And, Usamos quando precisamos comparar duas relaes e ambas tem que ser
verdadeira.
20 > 10 and 5 = 5
O Resultado ser verdadeiro ( True ). 20 maior que 10 e 5 igual a 5.
20 > 10 and 5 = 4
O Resultado ser falso (False). 20 maior que 10 mas 5 no igual a 4. Somente
1 das duas expresses deram certo.
9(, Abreviatura de Equivalente. Faz uma equivalncia lgica entre duas
expresses.
10 > 8 Eqv 8 > 6
Retorna verdadeiro, pois ambas comparaes so iguais.
8 > 10 Eqv 8 > 6
Retorna falso, pois as comparaes retornam valores diferentes.
Imp, Abreviatura de mplicao (uma coisa implica em outra). O resultado ser
False somente se a primeira comparao for True e a segunda for False. Nos
outros casos o resultado ser sempre True. Este operador o nico onde a ordem
dos operandos faz diferena.
9 > 8 mp 6 > 8
Retorna Falso, pois a primeira comparao Verdadeira e a segunda falsa.
10 > 8 mp 8 > 6
Retorna Verdadeiro.
8 > 10 mp 6 > 8
Retorna Verdadeiro.
#ot, um operador que inverte o resultado, passando algo que seria verdadeiro
para falso e vice-versa.
Not(10 > 5)
O resultado ser falso. 10 maior que 5. Seria Verdadeira a comparao, mas
como possui o Not, e ele inverte o resultado, o retorno falso.
&r, Usamos quando precisamos comparar dois relacionamentos e pelo menos
um deve ser verdadeiro ( ou um ou outro ).
20 < 10 Or 5 > 4
O resultado ser verdadeiro. 20 no menor que 10, mas 5 maior que 4.
20 < 10 Or 4 > 5
O resultado ser falso. 20 no menor que 10 e nem 4 maior que 5.
:or, Este operador exige preciso. No admite confuso na comparao dos
relacionamentos. Ou uma coisa ou outra. Nunca as duas.
8 > 10 Xor 8 > 6
Retorna verdadeiro, pois o resultado das duas comparaes foi diferente. A
primeira falsa e a segunda verdadeira.
8 > 10 Xor 6 > 8
Retorna falso, pois o resultado das duas comparaes foi semelhante. A primeira
falsa e a segunda tambm.
10 > 8 Xor 8 > 6
Retorna falso, pois o resultado das duas comparaes foi semelhante. A primeira
verdadeira e a segunda tambm.
Operador de 'trin&
O mais simples de todos. o smbolo "& que serve para juntar duas expresses
ou variveis texto. Exemplo:
"Lionardo " & "Fonseca Paiva
Resulta em "Lionardo Fonseca Paiva. O operador "+ tambm pode ser usado,
mas no aconselhado, uma vez que o "& possui uma abrangncia maior,
convertendo expresses de outros formatos para o string para forar a
concatenao.
C$%)+$41%0$ 1 E<'&69D$ 0$ P+$5+1,1
6sando -eclara5es Condicionais
Voc pode controlar o fluxo de seu script com declaraes condicionais e
declaraes do looping. Usando declaraes condicionais, voc pode escrever
cdigo no VB que faz decises e repete aes.
As seguintes declaraes condicionais so disponveis no VB:
Declarao f...Then...Else
Declarao Select Case
6sando "ooping para repetir C0digos
O Looping permite a voc executar uma seqncia de declaraes dependendo
de uma condio. Alguns looping repetem as declaraes at uma condio ser
Falsa; outros repetem declaraes at uma condio ser Verdadeira. H tambm
looping que repetem declaraes num nmero especfico de vezes.
As seguintes declaraes de looping so disponveis no VB:
4o...Boop Permanece no looping, enquanto ou at uma condio ser Verdadeira.
C0ile...Cend Permanece no looping enquanto uma condio Verdadeira.
Dor...,ext Usa um contador para executar as declaraes num nmero especfico
de vezes.
Dor Eac0...,ext Repete um grupo de declaraes para cada item de uma coleo
ou cada elemento de um array.
Comandos Condicionais
F EEC$%0(9D$FF THEN... ELSEF... ELSE... ENDF
I; <<Condio== ,>#??? #- I;, O f...Then...Else uma declarao usada
para avaliar uma condio seja ela Falsa (False) ou Verdadeira (True) e, contando
com o resultado, para executar um ou mais comandos. Usualmente a condio
uma expresso que usa um operador de comparao para comparar um valor ou
varivel com outra.
f...Then...Else podem estar endentadas em muitos nveis dependendo de sua
necessidade.
Traduzindo: F = Se, THEN = Ento, END F = Fim do Comando Se.
Veja um exemplo:
4im ?ontador as >nteger
?ontador = "8
>D ?ontador . "8 E0en
Frint ?ontador ) menor que "8
End >f
Frint Dim do Frograma
O programa verifica: Se contador for menor que 20 ento imprima no formulrio
"Contador menor que 20. Quando terminar imprima "Fim do Programa.
Quando uma determinada condio que colocamos no comando F verdadeira
ele comea a executar todas as linhas que existem entre F e END F. Se a
condio no for verdadeira ento o programa passa a execuo para a linha aps
o END F e ignora tudo que houver dentro da estrutura F... END F.
4im ?ontador as >nteger
?ontador = "8
>D ?ontador / "8 E0en
Frint ?ontador ) maior que "8
End >f
Frint Dim do Frograma
Agora o programa ir verificar se Contador maior que 20. Ele no maior que
20. Esta condio falsa. Ento, sendo assim, ele no executar as linhas
existentes dentro da estrutura F...END F, e s ir imprimir no formulrio a frase
"Fim do Programa.
I; <<Condio== ,>#??? "S??? #- I;, Acrescentamos na estrutura o
comando ELSE, que sempre executado quando a condio no verdadeira.
Traduzindo: F = Se, THEN = Ento, ELSE = Seno, END F = Fim do Comando
Se.
4im ?ontador as >nteger
?ontador = "8
>D ?ontador . "8 E0en
Frint ?ontador ) menor que "8
EB(E
Frint ?ontador ) maior ou igual a "8
End >f
Frint Dim do Frograma
O programa verifica: Se o Contador for menor que 20 imprima a frase: "Contador
menor que 20, seno, imprima "Contador maior ou igual a 20.
Perceba que agora o programa ir executar um comando da estrutura, seja um ou
outro, mas pelo menor um ser executado. Se a condio for verdadeira o
comando executado sempre o que esta aps o comando F, se for falsa ele
ignora as instrues que existem aps o comando F e passa a execuo para a
linha aps o ELSE e vai at o final.
$embre(se: (empre que usar o comando >D ) necess$rio usar o comando EGE,
ap+s a condio, e depois encerrar a estrutura condicional >D com E,4 >D.
I; <<Condio== ,>#??? "SI;??? #-I;, Modificamos comando ELSE para
ELSE F, que sempre executado quando a condio no verdadeira, mas
ainda dependendo de uma outra condio.
Traduzindo: F = Se, THEN = Ento, ELSEF = Seno se, END F = Fim do
Comando Se.
4im ?ontador as >nteger
?ontador = "8
>D ?ontador . "8 E0en
Frint ?ontador ) menor que "8
EB(E>D ?ontador = "8
Frint ?ontador ) igual a "8
EB(E
Frint ?ontador ) maior que "8
End >f
Frint Dim do Frograma
O programa verifica se o contador menor que 20. Se no for verifica se ento
igual a 20, seno ir imprimir que contador maior que 20.
Veja outro exemplo:
f txtNumero = 0 Then
Print "Nmero digitado: & txtNumero
Elsef txtNumero = 1 Then
Print "Nmero digitado: & txtNumero
Elsef txtNumero = 2 Then
Print "Nmero digitado: & txtNumero
Elsef txtNumero = 3 Then
Print "Nmero digitado: & txtNumero
Elsef txtNumero = 4 Then
Print "Nmero digitado: & txtNumero
Elsef txtNumero = 5 Then
Print "Nmero digitado: & txtNumero
Else
Print "O nmero no esta entre 0 e 5
End f
'elect Case
A estrutura Select Case fornece uma alternativa para f...Then...Elsef durante a
execuo seletiva de um bloco de cdigo dentre vrios blocos de cdigo. Uma
declarao Select Case fornece funcionalidade semelhante f...Then...Else,
porm, o cdigo torna-se mais legvel e eficiente.
Uma estrutura Select Case avalia uma nica expresso no topo da estrutura. O
resultado da expresso ento comparada com os valores para cada Case da
estrutura. Se h uma afirmao verdadeira, o bloco de declaraes associadas
com aquele Case executado:
Veja a estrutura do comando:
&po = #
(elect ?ase &po
?ase !
Frint &po ! acionada
?ase "
Frint &po " acionada
?ase #
Frint &po # acionada
End (elect
Veja que este comando verifica se a Opo 1, depois verifica se 2 e depois se
3. Se a varivel Opo for 3 ele executar as instrues contidas na prxima
linha. Caso a varivel Opo no seja 1,2 ou 3 ento o comando SELECT CASE
encerrado.
&po = #
(elect ?ase &po
?ase !
Frint &po ! acionada
?ase "
Frint &po " acionada
?ase #
Frint &po # acionada
?ase Else
Frint &po no ) !," ou #
End (elect
Acrescentando na estrutura clusula CASE ELSE (caso contrrio), o Visual Basic
ir verificar se a varivel 1,2 ou 3, no sendo ento ser CASE ELSE, e a linha
seguinte a esta clusula ser executada.
No comando Case podemos usar tambm intervalos, como por exemplo:
?ase " to 6
Ou seja, caso a condio esteja entre 2 e 4.
Caso queira que na verificao da condio seja avaliado se a varivel maior ou
menor que determinada expresso, usamos:
Case I* > 50
Comandos de $oopin& )$ao*
4o HIC0ile J KntilL condioM HExit 4oM Boop ou 4o HExit 4oM Boop
HIC0ile J KntilL condioM
-& @>I" <<Condio== "&&' ( ;aa en9uanto ), Executa todos os comandos
que existem entre DO WHLE e o LOOP. Quando a execuo do programa
encontra o comando LOOP, o DO WHLE reavaliado e a rotina continua at que
a condio estabelecida esteja satisfeita.
?ontador = 8
4o C0ile ?ontador . !8
?ontador = ?ontador + !
Frint ?ontador
Boop
Frint Dim da execuo
nicializamos uma varivel de nome Contador com Zero, e pedimos para o
programa: "Repita as instrues abaixo enquanto Contador for menor que 10.
O comando LOOP faz com que o programa volte para a linha do DO WHLE e
teste a condio de novo. Somente quando a condio for verdadeira, ou seja,
quando Contador for maior ou igual a 10, que o programa executar a linha aps o
LOOP.
Perceba que dependendo do resultado da condio, os comandos existentes
dentro da estrutura podem no ser executados, passando direto para a linha aps
o comando LOOP.
-& ??? "&&' @>I" <<Condio== ( *epita en9uanto ), Neste caso o Comando
Do abre a seqncia de repetio, mas no faz nenhum teste de condio. Este
teste feito no final da estrutura com o comando LOOP WHLE, ou seja,
obrigatoriamente as instrues contidas aps o comando DO, sero executadas.
?ontador = 8
4o
?ontador = ?ontador + !
Frint ?ontador
Loop While contador < 10
Frint Dim da execuo
-& 6#,I" <<Condio== "&&' ( ;aa at4 9ue), Executa todos os comandos que
existem entre DO UNTL e o LOOP. Quando a execuo do programa encontra o
comando LOOP, o DO UNTL reavaliado e a rotina continua at que a condio
estabelecida esteja satisfeita.
?ontador = 8
4o Kntil contador /= !8
?ontador = ?ontador + !
Frint ?ontador
Boop
Frint Dim da execuo
Daa enquanto
?ontador for menor
que !8.
Netorne para repetir os comandos
enquanto o ?ontador for menor que
!8.
Daa at) que
?ontador seOa maior
ou igual a !8.
nicializamos uma varivel de nome Contador com Zero, e pedimos para o programa:
"Repita as instrues abaixo at que Contador seja maior ou igual que 10. O comando
LOOP faz com que o programa volte para a linha do DO UNTL e teste a condio de
novo. Somente quando a condio for verdadeira, ou seja, quando Contador for realmente
maior ou igual a 10, que o programa executar a linha aps o LOOP.
Semelhante ao DO WHLE, dependendo do resultado da condio os comandos
existentes dentro da estrutura podem no ser executados, passando direto para a
linha aps o comando LOOP.
-& ??? "&&' 6#,I" <<Condio== ( *epita at4 9ue ), O Comando DO abre a
seqncia de repetio, mas no faz nenhum teste de condio. Este teste feito
no final da estrutura com o comando LOOP UNTL, ou seja, obrigatoriamente as
instrues contidas aps o comando DO, sero executadas.
?ontador = 8
4o
?ontador = ?ontador + !
Frint ?ontador
Loop Until Contador >= 10
Frint Dim da execuo
Netorne para repetir os comandos
at) que o ?ontador seOa maior ou
igual a !8.
+or ,ac- varivel .n &r/po 0,1it +or2 3e1t 0element2
;&* <<Inter(alo== ??? #:, (Conte de n%mero inicial at4 numero final), O
comando FOR faz uma contagem de um determinado intervalo de nmeros.
Sempre que essa contagem encontra com o comando NEXT (prximo) a
execuo do programa retorna ao comando FOR at que o nmero final seja
alcanado.
Exemplo:
?ontador = 8
Dor ?ontador = ! to !8
Frint * vari$vel ?ontador agora vale &?ontador
,ext
Frint Dim da execuo
Neste programa, o Visual Basic inicializa a varivel C$%)10$+ com zero e o
comando FOR avisa "vamos contar at 10, comeando pelo 1. As instrues
contidas na linha abaixo so executadas, e quando o comando NEXT
encontrado a execuo volta para o FOR, e a varivel Contador incrementada
em mais um e assim por diante. Quando Contador for igual a 10 a estrutura
FOR/NEXT desfeita.
S,', Usamos o STEP em conjunto com o FOR para fazer com que a contagem
seja incrementada.
Exemplo:
Se queremos que o comando conte de 2 em 2 colocamos
?ontador = 8
Dor ?ontador /= ! to !8 (tep "
Frint * vari$vel ?ontador agora vale & ?ontador
,ext
Frint Dim da execuo
Neste programa o Visual Basic inicializa a varivel Contador em zero, e o
comando FOR avisa "vamos contar at 10, comeando pelo 1. As instrues
contidas na linha abaixo so executadas, e quando o comando NEXT
encontrado a execuo volta para o FOR, e a varivel Contador incrementada
em mais dois devido a funo (tep, ento no primeiro loop ele vai conter 3 depois
5, 7, 9... e assim por diante. Quando Contador for maior ou igual a 10 a estrutura
FOR/NEXT desfeita.
?ont
e de
um
t)!8
>ncrementa o
contador de "
,4.T 55Comando66
!it -o, Fora a sada de um LOOP, seja WHLE ou UNTL, mesmo que a
condio estabelecida no seja verdadeira:
?ontador = 8
4o C0ile ?ontador . !8
?ontador = ?ontador + !
Frint ?ontador
if ?ontador = % t0en
Exit 4o
end if
Boop
Frint Dim da execuo
!it ;or, Fora a sada de um FOR..NEXT, mesmo que o nmero final no tenha
sido alcanado.
?ontador = 8
Dor ?ontador = ! to !8
Frint * vari$vel ?ontador agora vale &?ontador
>f ?ontador = 9
Exit Dor
end if
,ext
Frint Dim da execuo
!it Su1, Fora a sada da Sub rotina. Quando a execuo do programa encontra
este comando, o Visual Basic transfere o controle do programa para a linha
seguinte a aquela que chamou a rotina.
!it ;unction, Fora a sada da funo. Quando a execuo do programa
encontra este comando, o Visual Basic transfere o controle do programa para a
linha seguinte a aquela que chamou a rotina.
V(*614 B1*(& P+$&'06+'* (P+$&'0(,'%)$*)
Uma seqncia nomeada de instrues executadas como uma unidade. Por
exemplo, ;unction, 'ropert/ e Su1 so tipos de procedimentos. Um nome de
procedimento sempre definido ao nvel de mdulo. Todo cdigo executvel deve
estar contido em um procedimento. Procedimentos no podem ser aninhados
dentro de outros procedimentos
VBA Visual Basic for Application - 34 VBA - VISUAL BASIC .$+ APPLICATION Data:
JAN/2001
!rocedimentos '/b
Um procedimento Sub uma srie de declaraes do VB, dentro das declaraes
Sub e End Sub. Um procedimento Sub no retorna valor, mas voc pode tomar
argumentos (constantes, variveis, ou expresses que so passados durante a
chamada da Sub).
Se um procedimento Sub no tem argumentos, sua declarao deve incluir um
conjunto vazio de parntesis ().
O seguinte procedimento Sub usa duas funes intrnsecas do VB, MsgBox e
nputBox, para obter do usurio alguma informao. Depois exibe os resultados de
um clculo baseado nas informaes. O clculo desempenhado em um
procedimento Function criado usando o VB.
Sub ConvertTemp()
temp = nputBox("Please enter the temperature in degrees F.", 1)
MsgBox "The temperature is " & Celsius(temp) & " degrees C."
End Sub
!rocedimentos +/nction
Um procedimento Function uma srie de declaraes do VB dentro das
declaraes Function e End Function. Um procedimento Function parecido com
um procedimento Sub, com a diferena de voc poder retornar um valor.
Um procedimento Function pode tomar argumentos (constantes, variveis, ou
expresses que so passadas pelo procedimento de chamada).
Se um procedimento Function no tem argumentos, sua declarao deve incluir
um conjunto vazio de parntesis. Uma Function retorna um valor que ser
atribuido ao nome da funo no procedimento de chamada. O tipo do valor
retornado por uma Function ser sempre Variant.
No seguinte exemplo, a funo Celsius calcula a temperatura em graus Celsius do
grau Fahrenheit. Quando a funo chamada do procedimento Sub
ConvertTemp, uma varivel contendo o valor do argumento passado funo. O
resultado do clculo voltado ao procedimento chamado e exibido em uma caixa
de mensagem.
Sub ConvertTemp()
temp = nputBox("Please enter the temperature in degrees F.", 1)
MsgBox "The temperature is " & Celsius(temp) & " degrees C."
End Sub
Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
Obtendo dados dentro de /m !rocedimento
Cada valor passado dentro de seus procedimentos usando um argumento.
Argumentos servem como "pontes de valor" dos dados que voc deseja passar
dentro de seu procedimento.
Voc pode especificar seus argumentos com um nome de uma varivel.
Quando voc cria um procedimento usando uma declarao Sub ou uma
declarao Function, os parntesis devem incluir os nomes dos argumentos.
Quaisquer argumentos so colocados no interior desses parntesis, separados por
vrgulas. No seguinte exemplo, fDegrees uma "ponte de valor" que passa o valor
da temperatura a ser calculada na funo:
Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
Para obter o valor dos dados de um procedimento, voc deve usar uma Function.
Lembre-se, que um procedimento Function pode retornar um valor; e um
procedimento Sub no pode.
Usando Procedimentos Sub e Function em seu Cdigo Voc deve usar um
procedimento Function em seu cdigo do lado direito a uma expresso. Por
Exemplo:
Temp = Celsius(fDegrees)
ou
MsgBox "A temperatura do Celsius est " & Celsius(fDegrees) & " graus."
Para chamar um procedimento Sub de outro procedimento, voc deve apenas
referenciar o nome da procedure passando ou no argumentos. A declarao Call
no requerida, mas se voc us-la, deve colocar os argumentos entre
parntesis.
O seguinte exemplo mostra duas chamadas ao procedimento MyProc. Um usa a
declarao Call no cdigo; o outro no. Ambos fazer exatamente a mesma coisa.
Call MyProc(firstarg, secondarg)
MyProc firstarg, secondarg
Note que os parntesis so omitidos na chamada quando a declarao Call no
usada.
F6%9:'*
Funes nada mais que rotinas prontas para executar determinadas aes.
Existem no Visual Basic diversos tipos de funes que nos auxiliam na
programao em todos os aspectos. So funes que fazem clculos, funes que
exibem resultados.
Existem funes que precisam de um argumento para executar uma tarefa, outras
somente retorna algum valor sem necessidade do argumento.
+/nes matemticas
ABS, Retorna sempre um valor positivo (absoluto).
VarivelNumrica = Abs(Expresso numrica)
Frint *'s@26%A
Valor mpresso: 45
A,#, Retorna o arco-tangente de um nmero.
VarivelNumrica = Atn(Expresso numrica)
C&S, Calcula o cosseno de um ngulo
VarivelNumrica = Cos(<expressoNumrica>)
;I:, Retorna a parte inteira de um nmero, ignorando as casas decimais, se
houver. No faz arredondamento
VarivelNumrica = Fix(<expressoNumrica>)
Frint Dix@!6%.:;A
Valor mpresso: 145
Frint Dix@2!6%.:;A
Valor mpresso: -145
>:, Retorna a representao hexadecimal de um nmero decimal.
VarivelNumrica = Hex(<expressoNumrica>)
I#,? Retorna a parte inteira de um nmero, ignorando as casas decimais, se
houver. No faz arredondamento. Se o argumento for um nmero negativo ser
incrementado em um.
VarivelNumrica = NT(<expressoNumrica>)
Frint >nt@!6%.:;A
Valor mpresso: 145
Frint >nt@2!6%.:;A
Valor mpresso: -146
"&A, Calcula o logaritmo natural de um nmero
VarivelNumrica = LOG(<expressoNumrica>)
*#-, Retorna um nmero randmico, ou seja, escolhe um nmero
aleatoriamente.
VarivelNumrica = Rnd[(<expressoNumrica>)]
SA#, Retorna -1 se o argumento for um nmero negativo, e 1 se for um nmero
positivo.
VBA Visual Basic for Application - 39 VBA - VISUAL BASIC .$+ APPLICATION Data:
JAN/2001
VarivelNumrica = Sgn(<expressoNumrica>)
SI#, Calcula o seno de um ngulo.
VarivelNumrica = Sin(<expressoNumrica>)
SB*, Calcula a raiz quadrada de um nmero.
VarivelNumrica = Sqr(<expressoNumrica>)
,A#, Calcula a tangente de um ngulo.
VarivelNumrica = Tan(<expressoNumrica>)
+/nes de Converso
Cada funo converte uma expresso em um tipo de dados especfico.
S(%)1<'
F6%9D$(E'</+'**D$F)
O argumento obrigatrio <expresso> pode ser qualquer expresso de seqncia
ou expresso numrica.
T(/$* 0' +')$+%$2 O nome da funo determina o tipo de retorno como mostrado
a seguir:
ASC, Retorna o cdigo ANS do primeiro caractere de uma String.
VarivelNumrica = Asc(<string>)
Frint *sc@PQPA
Valor mpresso: 66 (Numero correspondente na tabela ASC da letra B.)
CB&&", Converte uma expresso para um valor lgico (True ou false). Se o
argumento for um zero, retornar False, caso contrrio ser True.
VarivelLgica = CBool(<expresso>)
Frint ?'ool@6#A
Valor mpresso: True
Frint ?'ool@8A
Valor mpresso: False
Frint ?'ool@6 = 9A
Valor mpresso: False. O resultado da comparao no verdadeira.
CBC,, Converte uma expresso para um tipo Byte.
VarivelByte = cbyte(<expresso>)
Frint ?'Rte@!%%.%9A
Valor mpresso: 156
Frint ?'Rte@#%%.%9A
Erro. Overflow. Expresses do tipo byte no podem ser maior que 255.
CC6*, Converte uma expresso numrica para um tipo-moeda.
VarivelCurrency = Ccur(<expresso numrica>)
Frint ?cur@!"8A
Valor mpresso: 120
C-A,, Converte uma expresso para um tipo Data. Entretanto, esta converso
se concretizar desde que a expresso usada como argumento seja mesmo no
formato de uma data, ou seja, dia/ms/Ano. Se pedirmos para fazer converso da
palavra "teste para data ser retornado um erro.
VarivelData = Cdate(<expresso>)
Frint ?date@!"S86S7%A
Valor mpresso: 12/04/95
Frint ?date@!"867%A
Erro. O contedo informado como argumento no est formatado como
data.
Frint ?date@#8S8"S7%A
Erro. O argumento no uma data real
importante salientar que essa converso necessrio principalmente quando o
usurio digita uma data e esta data vai ser objeto de clculo. Ento a converso
necessria.
C-B", Converte uma expresso numrica em um nmero de ponto flutuante de
preciso dupla.
VarivelNumrica = Cdbl(<expresso numrica>)
C>*, Retorna o caractere correspondente ao cdigo na tabela ASC
VarivelString = Chr(<cdigoDoCaractere>)
Frint ?0r@99A
Valor mpresso: B
CI#,, Converte uma expresso numrica em um nmero inteiro. Faz
arredondamento.
VarivelNumrica = Cnt(<expresso numrica>)
Frint ?>nt@6%.68A
Valor mpresso: 45
Frint ?>nt@6%.98A
Valor mpresso: 46
C"#A, Converte uma expresso numrica em um nmero inteiro longo.
VarivelNumrica = CLng(<expresso>)
VarivelNumrica = CLng(<expresso numrica>)
Frint ?lng@6%.68A
Valor mpresso: 45
Frint ?lng@6%.98A
Valor mpresso: 46
A diferena entre a funo CNT e CLNG a abrangncia da prpria varivel.
CS#A, Converte uma expresso numrica em um nmero de ponto flutuante de
preciso simples.
VarivelNumrica = CSng(<expresso >)
CS,*, Converte uma expresso numrica, data ou outra em uma string (texto).
VarivelString = CStr(<expresso>)
Frint ?str@6%"A
Valor mpresso: 452
CVA*, Converte uma expresso de qualquer tipo para o tipo variante.
VarivelVariant = Cvar(<expresso>)
S,*, Converte um valor numrico para o tipo String (texto). Valido somente para
argumentos numricos.
VarivelString = Str(<expressoNumrica>)
Frint (tr@6%"A
Valor mpresso: 452
S,*C&#V, Retorna uma string convertida de acordo com o tipo de converso
especificado.
VarivelString = Strconv(<ExpressoString>, <TipoDeConverso>)
Tipos de converso que podemos usar:
vbUpperCase Converte toda a expresso em letras maisculas.
vbLowerCase Converte toda a expresso em letras minsculas.
vbProperCase Converte somente a primeira letra em maiscula e o
restante em minsculo.
Frint (tr?onv@Bionardo, v'Kpper?aseA
Valor mpresso: LONARDO
Frint (tr?onv@B>&,*N4&, v'Froper?aseA
Valor mpresso: Lionardo
VA", Converte uma String com caracteres numricos em uma varivel numrica.
VarivelNumrica = Val(<stringNumrica>)
Frint Tar@88#A
Valor mpresso: 3
Frint Tar@!"#A
Valor mpresso: 123
+/nes de Data e 7ora
-A,, Retorna a data corrente do sistema operacional.
VarivelData = Date
-A,A--, ncrementa uma data nos dias, meses ou anos especificados.
VarivelVariant = DateAdd(<ntervalo>, <ncremento>,<ExpressoData>)
Retorna uma Variant que contm uma data qual foi adicionado um determinado
intervalo de tempo.
<ntervalo> Expresso de seqncia de caracteres que o intervalo de tempo que
voc quer adicionar. Tipos de caracteres usados:
yyyy Ano
q Trimestre
m Ms
y Dia do ano
d Dia
w Dia da semana
ww Semana
h Hora
n Minuto
s Segundo
<ncremento> Expresso numrica que o nmero de intervalos que voc quer
adicionar. Pode ser positivo (para obter datas no futuro) ou negativo (para obter
datas no passado).
<ExpressoData> Data que est sendo adicionada.
Frint 4ate*dd@PdP,",P#!S8;S79PA
Valor mpresso: 02/08/96
A funo DateAdd pode ser usada para adicionar a uma data ou subtrair dela um
intervalo de tempo especificado. Por exemplo, voc poderia usar DateAdd para
calcular uma data 30 dias a partir de hoje ou uma hora que 45 minutos a partir
de agora.
Se quiser adicionar dias a data, voc pode usar Dia do Ano ("y"), Dia ("d") ou Dia
da Semana ("w").
A funo DateAdd no retornar uma data invlida. O exemplo abaixo adiciona um
ms a 31 de janeiro:
DateAdd("m", 1, "31-Jan-95")
Neste caso, DateAdd retorna 28-Fev-95 e no 31-Fev-95. Se date for 31-Jan-96,
ele retornar 29-Fev-96 pois 1996 um ano bissexto.
-A,-I;;, Calcula o intervalo entre duas datas.
VarivelData=DateDiff(<intervalo>, <expressoData1>, <expressoData2>)
<ntervalo> Expresso de seqncia de caracteres, que o intervalo de tempo
que voc usa para calcular a diferena entre uma data e outra.
O argumento intervalo tem estas configuraes:
yyyy Ano
q Trimestre
m Ms
y Dia do ano
d Dia
w Dia da semana
ww Semana
h Hora
n Minuto
s Segundo
<ExpressoData1 e 2> Duas datas que voc quer usar no clculo.
4im data! *s 4ate
4im data" *s 4ate
4ata! = U#!S;S79U
4ata" = U:S:S79U
Frint 4ate4iff@PdP, data!, data"A
Valor mpresso: 8
A funo DateDiff pode ser usada para determinar quantos intervalos de tempo
especificados existem entre duas datas. Por exemplo, voc poderia usar DateDiff
para calcular o nmero de dias entre duas datas ou o nmero de semanas entre o
dia de hoje e o final do ano.
Se quiser saber o nmero de dias entre date1 e date2, voc pode usar tanto o Dia
do Ano ("y") como o Dia ("d").
Quando intervalo Dia da Semana ("w"), DateDiff retorna o nmero de semanas
entre as duas datas. Se date1 cair numa segunda-feira, DateDiff contar o nmero
de segundas-feiras at a date2. Ele conta date2, mas no date1. Se, contudo,
interval for Semana ("ww"), a funo DateDiff retornar o nmero de semanas do
calendrio entre as duas datas. Ele conta o nmero de domingos entre date1 e
date2. DateDiff contar date2 se ela cair num domingo; mas no contar a date1,
mesmo que caia num domingo.
Se date1 se referir a um ponto no tempo posterior date2, a funo DateDiff
retornar um nmero negativo.
Se data for um literal de data (uma data entre sinais numricos (#)), o ano, se
especificado, se tornar uma parte permanente dessa data. Contudo, se data
estiver entre aspas ("") e voc omitir o ano, o ano atual ser inserido no cdigo
sempre que a expresso data for avaliada. sto torna possvel escrever um cdigo
que pode ser usado em anos diferentes.
-A,'A*,, Extrai de uma determinada data uma parte dela relativo a dia, ms,
semana, quinzena, etc.
ParteDaData = DatePart(<intervalo>, <expressoData>)
ntervalo pode ser:
yyyy Ano
q Trimestre
m Ms
y Dia do ano
d Dia
w Dia da semana
ww Semana
h Hora
n Minuto
s Segundo
4im 4ata *s 4ate
4ata = U:S"S79U
Frint 4ateFart@PmP, dataA
Valor mpresso: 8
-A,S*IA", Retorna uma data para um dia, ms e ano especificados, ou seja,
informe cada item separado que a funo monta a data.
VariavelData = DateSerial(<ano>, <ms>, <dia>)
Frint 4ate(erial@P79P,P8:P,P8"PA
Valor mpresso: 02/08/96
-A,VA"6, Retorna a data especificada numa string, ou seja, converte uma
varivel String para o tipo Data.
VarivelData = DateValue(<VarivelStringDeData>)
Frint 4ateTalue@P8"S8:S79PA
Valor mpresso: 02/08/96
-AC, Retorna o dia do ms referente a uma data.
VarivelNumrica = Day(<expressoData>)
Frint 4aR@P8"S8:S79PA
Valor mpresso: 2
>&6*, Retorna a hora de uma expresso de data e hora.
VarivelNumrica = Hour(<ExpressoHora>)
Frint Gour@P!"#6!"PA
Valor mpresso: 12
Frint Gour@noVA
Valor mpresso: 15
MI#6,, Retorna o minuto de uma expresso de data e hora.
VarivelNumrica = Minute(<ExpressoHora>)
M&#,>, Retorna o ms de uma data.
VarivelNumrica = Month(<ExpressoData>)
#&@, Retorna a data e a hora correntes do sistema operacional.
VarivelData = Now
Frint ,oV
Valor mpresso: 02/08/96 15:08:07
SC&#-, Retorna os segundos de uma expresso de data e hora.
VarivelNumrica = Second(<ExpressoHora>)
,IM, Retorna a hora corrente do sistema operacional.
VarivelData = Time
Frint Eime
Valor mpresso: 15:08:07
,IM*, Calcula a quantidade de segundos passados desde a meia noite.
VarivelNumrica = Timer
,IMVA"6, Retorna a hora especificada numa string, ou seja, converte uma
String cujo contedo est no formato de hora para uma varivel tipo Data e Hora.
VarivelData = TimeValue(<ExpressoStringDeHora>)
@D-AC, Retorna o dia da semana de uma data, ou seja, seu numero
correspondente: 1 para Domingo at 7 para Sbado.
VarivelNumrica = WeekDay(<ExpressoData>)
CA*, Retorna o ano de uma data.
VarivelNumrica = Year(<ExpressoData>)
+/nes de 'trin&
I#S,*, Retorna a posio da primeira ocorrncia de uma seqncia de
caracteres dentro de outra
Varivel = nStr ({<posionicial>,] <string>,
<SubStringAPesquisar>[, <MtodoDeComparao])
<Posio nicial>: Expresso numrica que define a posio inicial de cada
pesquisa. Se omitido, a pesquisa comea na posio do primeiro caractere.. Este
argumento necessrio se o Mtodo de Comparao for especificado.
<String>: Expresso de seqncia de caracteres que est sendo pesquisada.
<SubStringAPesquisar>: Expresso de seqncia de caracteres procurada.
<MtodoDeComparao>: Especifica o tipo comparao de seqncias de
caracteres. Este argumento pode ser omitido, pode ser 0 ou 1. Especifique 0
(padro) para realizar uma comparao binria. Especifique 1 para realizar uma
comparao textual que desconsidere maisculas/minsculas. Se este argumento
for omitido, a configurao de &ption Compare determinar o tipo de comparao.
Frint >n(tr@:,PBionardo DonsecaP, PD&P,!A
Valor mpresso: 10
A partir do 8 caractere procure na expresso "Lionardo Fonseca em que posio
comea a expresso "FO, e ignore diferenciao maisculas/minsculas.
Frint >n(tr@:,PBionardo DonsecaP, PD&P,8A
Valor mpresso: 0 (no encontrado).
"CAS, Converte uma expresso string para minsculas.
VarivelString = Lcase (<stringAConverter>)
Frint Bcase@Editora EerraA
Valor mpresso: editora terra
";,, Retorna uma quantidade de caracteres que se encontra da esquerda para
a direita.
VarivelString = Left(<string>, <QuantidadeDeCaracteres>)
Frint Beft@PBionardoP,6A
Valor mpresso: Lion
"#, Retorna o nmero de caracteres de uma expresso String ou nmero de
bytes requerido para armazenar uma varivel.
VarivelNumrica = Len (ExpressoCaractere>)
Print Len("Lionardo)
Valor mpresso: 8
",*IM, Remove os espaos em branco esquerda de uma String.
VarivelString = Ltrim (<ExpressoString>)
MI-, Retorna uma Substring de uma String, ou seja, retorna um nmero
especificado de caracteres de uma seqncia de caracteres.
SubString=Mid(<string>,<posionicial>[, <quantidadeDeCaracteres>])
<String>: Expresso de seqncia de caracteres a partir da qual os caracteres so
retornados.
<Posionicial>: Posio de caractere em String na qual a parte a ser
considerada inicia. Se Posio nicial for maior do que o nmero de caracteres em
String, Mid retorna uma seqncia de caracteres de comprimento zero.
<QuantidadeDeCaracteres>: Nmero de caracteres a serem retornados. Se
omitidos ou se o nmero de caracteres do texto for inferior ao
QuantidadeDeCaracteres (inclusive o caractere em Posioncial), sero
retornados todos os caracteres desde a Posionicial at o final da seqncia de
caracteres.
Frint <id@PBionardo Donseca FaivaP,!8,:A
Valor mpresso: Fonseca
Na expresso String "Lionardo Fonseca Paiva, a partir do 10 caractere conte 8
para frente e retorne a String que esta neste intervalo.
*IA>,, Retorna uma substring com os caracteres que se encontram da direita
para a esquerda dentro de uma expresso String.
VarivelNumrica=Right([<ExpressoString>, <QuantidadeDeCaracteres>)
Frint Nig0t@Bionardo Donseca,;A
Valor mpresso: Fonseca
*,*IM, Remove os espaos direita em uma String.
VarivelString = Rtrim(<string>)
S'AC, Retorna uma String com uma determinada quantidade de espaos
vazios.
VarivelString = Space(<quantidadeDeCaracteres>)
S,*, Retorna a representao de um nmero como uma String.
VarivelString = Str (<ExpressoNumrica>)
S,*C&M', Compara duas expresses Strings.
VarivelNumrica=StrComp(<string>,<string>[,Comparao>])
<Comparao>: Especifica o tipo de comparao de seqncias de caracteres. Este
argumento pode ser omitido, pode ser 0 ou 1. Especifique 0 (padro) para fazer uma
comparao binria. Especifique 1 para fazer uma comparao de texto.
Valores de retorno da funo: )E quando a primeira String for menor que a
Segunda, F quando forem iguais e E quando a primeira String for maior que a
segunda.
S,*I#A, Repete um determinado caractere a quantidade de vezes estabelecido
na funo.
String = String (<QuantidadeDeCaracteres>, <caracteres>)
Frint (tring@#8,P2PA
Valor mpresso: ------------------------------
,*IM, Remove os espaos esquerda e direita de uma string.
VarivelString = Trim(<String>)
6CAS, Converte uma expresso String para maisculas.
VarivelString = Ucase (<string>)
Print Ucase("Editora Terra)
Valor mpresso: EDTORA TERRA
+/nes de "anip/lao de "atri8es
A**AC, Retorna um Array do tipo Variant.
ArrayVariant = Array (<NmeroDeElemento>)
<NmeroDeElemento>: Consiste de uma lista delimitada por vrgula de um
nmero arbitrrio de valores que so atribudos aos elementos da matriz contidos
em Variant. Se nenhum argumento for especificado, ser criada uma matriz de
comprimento zero.
Embora uma Variant que contm uma matriz seja conceitualmente diferente de
uma matriz cujos elementos so do tipo Variant, o modo como so acessados os
elementos da matriz o mesmo. A notao usada para se referir a um elemento
de uma matriz consiste no nome da varivel seguido por parnteses que contm
um nmero do ndice que indica o elemento desejado.
O limite inferior de uma matriz criada com a funo Array determinado pelo limite
inferior especificado com a instruo Option Base.
4im Tariavel<atriz *s Tariant
Tariavel<atriz = *rraR@P4omP, P(egP, PEerP, PWuaP, PWuiP, P(exP, P($'PA
Frint Tariavel<atriz@"A
Valor mpresso: Ter
Frint Tariavel<atriz@6A
Valor mpresso: Qui
"B&6#-, Retorna o menor ndice de uma matriz.
VarivelNumrica = Lbound(<NomeDaMatriz>)
4im Tariavel<atriz *s Tariant
Tariavel<atriz = *rraR@P4omP, P(egP, PEerP, PWuaP, PWuiP, P(exP, P($'PA
Frint BQound@Tariavel<atrizA
Valor mpresso: 0
6B&6#-, Retorna o maior ndice de uma matriz.
VarivelMatriz = Ubound(<NomeDaMatriz>])
4im Tariavel<atriz *s Tariant
Tariavel<atriz = *rraR@P4omP, P(egP, PEerP, PWuaP, PWuiP, P(exP, P($'PA
Frint KQound@Tariavel<atrizA
Valor mpresso: 6
+/nes $%&icas
II;, Analisa uma expresso lgica, e retorna valores para quando for falso ou
verdadeiro.
ExpressoDeRetorno = F (<ExpressoLgica>,
<ExpressoParaVerdadeiro>, <ExpressoParaFalso>)
Frint iif@!8 / ",!8 ) maior que ", " ) maior que !8A
Valor mpresso: 10 maior que 2
Frint iif@!8= %,>gual, 4iferenteA
Valor mpresso: Diferente
S@I,C>, Avalia uma lista de expresses e retorna o valor associado quela
primeiro avaliada como verdadeira.
Switch(Expr-1, Valor-1[, Expr-2, Valor-2 , Expr-etc, Valor-etc])
<Expr>: Expresso variant que voc quer avaliar.
<Valor>: Valor ou expresso que retornado se a expresso correspondente for
True.
A lista de argumentos da funo Switch consiste de pares de expresses e
valores. As expresses so avaliadas medida que aparecem na lista da
esquerda para a direita e retornado o valor associado primeira expresso para
avaliar True. Se as partes no forem corretamente pareadas, ocorre um erro em
tempo de execuo.
Por exemplo, se expr-1 for True, Switch retornar valor-1. Se expr-1 for False, mas
expr-2 for True, Switch retornar valor-2, e assim por diante.
Switch retornar um valor Null se nenhuma das expresses for True.
Switch avalia todas as expresses, mesmo que retorne apenas uma delas. Por
este motivo, voc deve ficar atento para efeitos colaterais indesejveis.
Por exemplo, se a avaliao de qualquer expresso resultar num erro de diviso
por zero, ocorrer um erro.
*="
Q="
?="
Frint (Vitc0@*.",PBetra * . "P, Q=",PBetra Q = "P, ?.#, PBetra ? . #PA
Valor mpresso: Letra B = 2
A segunda expresso na lista foi impressa, pois foi a primeira a ter uma condio
verdadeira. Note que o ultimo valor (C<3) tambm verdadeiro, mas como a
funo Switch encerra sua execuo quando encontra a primeira ocorrncia
verdadeira, ele foi ignorado.
*="
Q=#
?="
Frint (Vitc0@*.",PBetra * . "P, Q=",PBetra Q = "P, ?.#, PBetra ? . #PA
Valor mpresso: Letra C < 3
+/nes de Disco
C6*-I*, Retorna o diretrio corrente.
VarivelString = CurDir[(<drive>)]
Frint ?ur4ir@P?PA
Valor mpresso: C:\WNDOWS\Desktop\
-I*, Retorna o nome de um arquivo, diretrio ou pasta correspondente a um
padro especificado ou atributo de arquivo, ou a etiqueta de volume de uma
unidade de disco.
VarivelString = Dir[(Nomedocaminho[, Atributos])]
<Nomedocaminho>: Expresso de seqncia de caracteres que especifica um
nome de arquivo e pode incluir diretrio ou pasta e unidade de disco. Null
retornado se nomedocaminho no for encontrado.
<Atributos>: Constante ou expresso numrica, cuja soma especifica atributos de
arquivo. Se omitido, todos os arquivos normais que tiverem Nomedocaminho
correspondente so retornados.
As configuraes do argumento Atributos so:
vbNormal 0 Normal.
vbHidden 2 Oculto.
vbSystem 4 Arquivo de sistema,.
vbVolume 8 Etiqueta de volume; se especificada, todos os outros atributos
so ignorados.
vbDirectory 16 Diretrio ou pasta.
;I"-A,,IM, Retorna a data e a hora da ltima atualizao do arquivo.
VarivelData = FileDateTime(<NomeArquivo>)
Frint Dile4ataEime@P?XC>,4&C(X(Y(EE<.>,>PA
Valor mpresso: 03/08/96 16:50:20
;I""#, Retorna o tamanho do arquivo em bytes.
VarivelNumrica = FileLen(<NomeArquivo>)
Frint DileBen@P?XC>,4&C(X(Y(EE<.>,>PA
Valor mpresso: 3481
A,A,,*, Verifica os atributos de um arquivo ou diretrio.
VarivelNumrica = GetAttr(<NomeArquivo>)
Veja os valores de retorno desta funo:
0 vbNormal Normal.
1 vbReadOnly Somente Leitura.
2 vbHidden Oculto.
4 vbSystem Arquivo de sistema
16 vbDirectory Diretrio ou pasta.
32 vbArchive O arquivo foi modificado desde o ltimo backup.
Print GetAttr("C:\WNDOWS\SYSTEM.N")
Valor mpresso: 32
+/nes de Teste
ISA**AC, Testa se uma varivel uma matriz
VarivelBoolean = sArray(<varivel>)
IS-A,, Testa se o argumento pode ser convertido para uma data. Esta data
deve estar dentro dos padres de data.
VarivelBoolean = sDate(<expresso>)
ISM',C, Verifica se uma varivel foi inicializada.
sEmpty retornar True se a varivel estiver iniciada; caso contrrio retornar
False. Se a expresso contiver mais de uma varivel, o retorno ser sempre False.
VarivelBoolean = sEmpty(<expresso>)
IS**&*, Testa se uma expresso um valor de erro.
VarivelBoolean = sError(<expresso>)
ISMISSI#A, Testa se um argumento opcional foi passado como parmetro para
uma procedure ou funo.
VarivelBoolean = sMissing(<NomedoArgumento>)
IS#6"", Testa se uma varivel possui valor invlido.
VarivelBoolean = sNull(<Expresso>)
IS#6M*IC, Testa se o argumento pode ser convertido para um nmero.
VarivelBoolean = sNumeric(<Expresso>)
Frint >s,umeric@*QA
Valor mpresso: False
Frint >s,umeric@8#A
Valor mpresso: True
IS&BGC,, Testa se uma expresso referencia a um objeto OLE vlido.
VarivelBoolean = sObject(<Expresso>)
VA*,C', Retorna o tipo de varivel especificada como argumento:
VarivelNumrica = VarType(<Varivel>)
Retorna os valores abaixo:
0 Empty (No iniciada).
1 Null Nenhum dado vlido.
2 nteiro (nteger).
3 nteiro por extenso (Long)
4 Nmero de ponto flutuante de preciso simples (Single).
5 Nmero de ponto flutuante de preciso dupla (Double).
6 Moeda (Currency).
7 Data (Date).
8 Seqncia de caracteres textos (String).
9 objeto de Automao OLE (Object).
10 Erro (Error).
11 Booleano Boolean).
12 Variant (usada somente com matrizes de Variantes).
13 Um objeto que no seja de Automao OLE (DataObject).
17 Byte
8192 Matriz (Array).
,C'#AM, Retorna o nome descritivo do tipo de uma varivel.
VarivelString = TypeName(<Varivel>
Os nomes de retorno da funo :
Byte Um byte.
nteger Um inteiro.
Long Um inteiro por extenso.
Single Um nmero de ponto flutuante de preciso simples.
Double Um nmero de ponto flutuante de preciso dupla.
Currency Um valor de moeda.
Date Uma data.
String Uma seqncia de caracteres.
Boolean Um valor Booleano.
Error Um valor de erro.
Empty No iniciado.
Null Nenhum dado vlido.
Object Um objeto que suporta Automao OLE.
+/nes de ,scol-a
C>&&S, Seleciona um valor de uma lista de argumentos.
Varivel = Choose (<ndice>, <escolha>[, <escolha>]...)
<ndice>: Expresso numrica ou campo que resulta num valor entre 1 e o nmero
de opes disponveis.
<Escolha>: Expresso Variant que contm uma das possveis opes.
Choose retorna um valor da lista de opes com base no valor de ndice. Se ndice
for 1, Choose retorna a primeira opo da lista; se ndice for 2, retorna a segunda
opo e assim por diante.
Choose pode ser usado para pesquisar um valor numa lista de possibilidades. Por
exemplo, se ndice avalia para 3 e a opo-1 = "um", opo-2 = "dois" e opo-3 =
"trs", Choose retorna "trs". Esta capacidade particularmente til se ndice
representar o valor num grupo de opes.
Se ndice no for um nmero inteiro, ele ser arredondado para o nmero inteiro
mais prximo antes de ser avaliado.
Frint ?0oose@",P*postilasP,P?42N&<P,PBivrosP,P(ervios Zr$ficosPA
Valor mpresso: CD-ROM
I#'6,B&:, Exibe um aviso numa caixa de dilogo, aguarda at que o usurio
insira texto ou escolha um boto e retorna o contedo da caixa de texto.
Varivel=nputbox(<expressoPrompt>,<barraDeTtulo>,<escolhaDefault>)
<ExpressoPrompt>: Expresso de seqncia de caracteres exibida como a
mensagem numa caixa de dilogo. O tamanho mximo de prompt de
aproximadamente 1024 caracteres, dependendo da largura dos caracteres
usados.
<BarraDeTtulo>: Expresso de seqncia de caracteres exibida na barra de
ttulos da caixa de dilogo. Se voc omitir este argumento, o nome do aplicativo
ser includo na barra de ttulos.
<EscolhaDefault>: Expresso de seqncia de caracteres exibida na caixa de
texto como a resposta padro se nenhuma outra entrada for fornecida. Se voc
omitir EscolhaDefault, a caixa de texto ser exibida vazia.
Se o usurio escolher "OK" ou pressionar ENTER, a funo nputBox retorna o
contedo da caixa de texto, qualquer que seja ele. Se o usurio escolher
"Cancelar", a funo retorna uma seqncia de caracteres de tamanho zero ("").
Observao: (e quiser especificar mais do que o primeiro argumento nomeado,
voc- dever$ usar >nputQox em uma expresso. (e quiser omitir alguns
argumentos posicionais, voc- dever$ incluir o delimitador de vrgula
correspondente.
Print nputBox("Digite Seu Nome","Cadastro de Cliente")
Valor mpresso: <Ser o nome digitado na caixa de texto>
MSAB&:, Exibe uma caixa de dilogo para exibir informaes e obter respostas
simples atravs de botes de comando.
VarivelNumrica = MsgBox (<ExpressoPrompt>,<BotesDisponveis>,
<BarraDeTtulo>)
<ExpressoPrompt>: Expresso de seqncia de caracteres exibida como a
mensagem numa caixa de dilogo. O tamanho mximo de ExpressoPrompt de
aproximadamente 1024 caracteres, dependendo da largura dos caracteres
usados.
Se ExpressoPrompt for composto por mais de uma linha, voc poder separar as
linhas usando um caractere de retorno de carro (Chr(13)), um caractere de
alimentao de linha (Chr(10)) ou uma combinao de caracteres de retorno de
carro e alimentao de linha (Chr(13) & Chr(10)) entre cada linha.
<BotesDisponvel>: Expresso numrica que a soma de valores que
especificam o nmero e tipo de botes a serem exibidos, o estilo de cone a ser
usado, a identidade do boto padro e a modalidade da caixa de mensagem. Se
omitido, o valor padro ser 0.
Veja abaixo os tipos de botes disponveis:
Constante -escrio
VbOKOnly Exibe apenas o boto "OK".
VbOKCancel Exibe os botes "OK" e "Cancelar".
VbAbortRetrygnore Exibe os botes "Anular", "Repetir" e
"gnorar".
VbYesNoCancel Exibe os botes "Sim", "No" e "Cancelar".
VbYesNo Exibe os botes "Sim" e "No".
VbRetryCancel Exibe os botes "Repetir" e "Cancelar".
VbCritical Exibe o cone "Mensagem crtica".
VbQuestion Exibe o cone "Consulta de advertncia".
VbExclamation Exibe o cone "Mensagem de advertncia".
Vbnformation Exibe o cone "Mensagem de informao".
VbDefaultButton1 O boto "Primeiro" o padro.
VbDefaultButton2 O boto "Segundo" o padro.
VbDefaultButton3 O boto "Terceiro" o padro.
VbApplicationModal Janela restrita do aplicativo; o usurio deve
responder caixa de mensagem antes de
continuar seu trabalho no aplicativo atual.
VbSystemModal Janela restrita do sistema; todos os
aplicativos so suspensos at que o usurio
responda caixa de mensagem.
VBA Visual Basic for Application - 59 VBA - VISUAL BASIC .$+ APPLICATION Data:
JAN/2001
O primeiro grupo de valores (05) descreve o nmero e tipo de botes exibidos na caixa de
dilogo; o segundo grupo (16, 32, 48, 64) descreve o estilo de cone; o terceiro grupo (0,
256, 512) determina qual boto o padro; e o quarto grupo (0, 4096) determina
modalidade da caixa de mensagem. Quando adicionar nmeros para criar um valor final
para o argumento buttons, use somente um nmero de cada grupo.
Observao: Estas constantes so especificadas pelo Tisual Qasic para
aplicativos. *ssim, os nomes podem ser usados em qualquer lugar do c+digo em
lugar dos valores reais.
<BarraDeTtulo>: Expresso de seqncia exibida na barra de ttulos da caixa de
dilogo. Se voc omitir BarraDeTtulo, o nome do aplicativo ser includo na barra
de ttulos.
Estes so os valores que esta funo retorna, para informar qual foi a ao do
usurio:
Constante Valor de *etorno Boto escol$ido
VbOK E "OK"
vbCancel H "Cancelar"
vbAbort I "Anular"
vbRetry J "Repetir"
vbgnore K "gnorar"
vbYes L "Sim"
vbNo M "No"
Se a caixa de dilogo exibir um boto "Cancelar", pressionar a tecla ESC ter o
mesmo efeito que escolher "Cancelar".
Se quiser especificar mais do que o primeiro argumento nomeado, voc dever
usar MsgBox em uma expresso. Se quiser omitir alguns argumentos de posio,
voc dever incluir o delimitador de vrgula correspondente.
<sgQox @P4eseOa ?ontinuar[P,T'Yes,o?ancel, P*tivar Qom'a *t\micaPA
Frint <sgQox @P4eseOa ?ontinuar[P,T'Yes,o?ancel+T'Exclamation,
P*tivar Qom'a *t\micaPA
A +/no +O#"AT
Formata uma expresso qualquer de acordo com a mscara estabelecida na
funo.
ExpressoFormatada = Format(<expresso>[, <Mascara de formatao>)
;ormatao de !press5es #um4ricas, Para formatar qualquer expresso
numrica, usamos "# para representar um digito de 0 a 9, ", para representar os
milhares e ". para representar as casas decimais. Como o padro brasileiro para
milhares e casas decimais exatamente o contrrio, o Visual Basic
automaticamente ir colocar no nosso padro, pois ir verificar qual o formato
usado para o pas de acordo com o que foi estabelecido no painel de controle.
Frint Dormat@!"#6%.#,UU,UUU.UUA
Valor mpresso: 12.345,3
Usamos o simbolo "# para representar a disposio dos nmeros. No h
necessidade de colocar a mesma quantidade de nmeros e "#. Se tivssemos
colocado Frint Dormat@!"#6%.#,U,UUU,UUU.UUA, ainda assim seria impresso
somente "12.345,3.
Entretanto, se colocarmos:
Frint Dormat@!"#6%.#, PUUU.UUPA
Valor mpresso: 12345,3
Perceba que no podemos colocar uma formatao menor que os nmeros que
sero impressos, pois seno a formatao no ir alcanar toda a extenso dos
nmeros.
O smbolo "# substitudo por nmeros quando existir nmero para ser
substitudo. Note que o nmero decimal ".3 e apesar de termos usado uma
formatao para casas decimais com dois smbolos "##, no apareceu as duas
casas decimais. Se quisermos forar o aparecimento de zeros quando no tiver
nmero para ser impresso, usamos "0 no lugar de "#. Veja:
Frint Dormat@!"#6%.#,UU,UUU.88A
Valor mpresso: 12.345,30
Frint Dormat@!"#6%,UU,UUU.88A
Valor mpresso: 12.345,00
sto vale tambm para formatao de nmeros sem casas decimais:
Frint Dormat@6%,8888A
Valor mpresso: 0045
Se quisermos uma formatao diferente para nmeros negativos, basta colocar
essa formatao aps o ponto-e-virgula.
Frint Dormat@!"#6%,UU,UUU.88] @2AUU,UUU.88A
Valor mpresso: 12.345,00
Frint Dormat@2!"#6%,UU,UUU.88] @2AUU,UUU.88A
Valor mpresso: (-)12.345,00
Veja abaixo os caracteres que podem ser usados na formatao de valores numricos:
F Exibe um dgito ou um zero. Se a expresso tiver um dgito na posio
em que o F aparece na seqncia de caracteres de formato, ele ser
exibido; caso contrrio, exibido um zero nessa posio.
Se o nmero possui um nmero de dgitos inferior ao de zeros (em
qualquer lado da casa decimal) na expresso de formato, exibe zeros
esquerda ou direita. Se o nmero tiver mais dgitos direita do separador
decimal do que zeros direita do separador decimal na expresso de
formato, arredonda o nmero para tantas casas decimais quantos forem os
zeros existentes. Se o nmero tiver mais dgitos esquerda do separador
decimal do que zeros esquerda do separador decimal na expresso de
formato, exibe os dgitos a mais sem modificaes.
N Exibe um dgito ou nada. Se a expresso tiver um dgito na posio em
que o smbolo N aparece na seqncia de caracteres de formato, ele ser
exibido; caso contrrio, nada ser exibido nessa posio.
Este smbolo funciona como o espao reservado para o dgito F, mas os
zeros esquerda e direita no so exibidos se o nmero tiver a mesma
quantidade ou menos dgitos do que existem N caracteres em qualquer um
dos lados do separador decimal na expresso de formato.
? Espao reservado para decimal
Para algumas localidades, usada uma vrgula como separador decimal.
O espao reservado para decimal determina quantos dgitos so exibidos
esquerda e direita do separador decimal. Se a expresso de formato
contiver apenas sinais de nmeros esquerda deste smbolo, os nmeros
inferiores a 1 comeam com um separador decimal. Se voc quiser que um
zero esquerda seja sempre exibido com nmeros fracionrios, use 0
como o primeiro espao reservado para dgito esquerda do separador
decimal. O caractere real utilizado como espao reservado para decimal na
sada formatada depende do Formato Numrico reconhecido pelo sistema.
O Espao reservado para porcentagem
A expresso multiplicada por 100. O caractere de porcentagem (%)
inserido na posio onde ele aparece na seqncia de caracteres de
formato.
, Separador de milhar
Para algumas localidades, utilizado um ponto como o separador de
milhar. O separador de milhar separa milhar de centena dentro de um
nmero que tenha quatro ou mais casas esquerda do separador decimal.
O uso padro do separador de milhar especificado no formato que
contm um separador de milhar delimitado por espaos reservados de
dgito (0 ou #). Dois separadores de milhar adjacentes ou um separador de
milhar imediatamente esquerda do separador decimal (sendo ou no
especificado um decimal) significa "aplique uma escala ao nmero
dividindo-o por 1000 e arredonde-o conforme necessrio." Use essa
tcnica para aplicar escalas a nmeros extensos.
Por exemplo, a seqncia de caracteres de formato "##0,," pode ser usada para
representar 100 milhes como 100. Nmeros inferiores a 1 milho so exibidos como 0.
Dois separadores de milhar adjacentes em qualquer posio que no seja a
imediatamente esquerda do separador decimal sero considerados apenas como
especificao do uso de um separador de milhar. O caractere real utilizado como o
separador de milhar na sada formatada depende do Formato Numrico reconhecido pelo
sistema.
) P e) eP Formato cientfico
Se a expresso de formato contiver pelo menos um espao reservado para
dgito (0 ou #) direita de E-, E+, e- ou e+, o nmero exibido em formato
cientfico, sendo E ou e inserido entre o nmero e seu expoente. O nmero
de espaos reservados para dgito direita determina o nmero de dgitos
do expoente. Use E- ou e- para incluir um sinal de subtrao (-) ao lado de
expoentes negativos. Use E+ ou e+ para incluir um sinal de subtrao ao
lado de expoentes negativos e um sinal de adio (+) ao lado de expoentes
positivos.
) P Q ( ) space Exibe um caractere literal
Para exibir um caractere diferente dos listados, preceda-o com uma barra
invertida (\) ou coloque-o entre aspas (" ").
R Exibe o caractere seguinte da seqncia de caracteres de formato
Muitos caracteres da expresso de formato tm um significado especial e
no podem ser exibidos como caracteres literais a menos que sejam
precedidos por uma barra invertida. A barra propriamente no exibida.
Sua utilizao equivale a colocar o caractere seguinte entre aspas. Para
exibir uma barra invertida, use duas barras invertidas (\\).
Exemplos de caracteres que no podem ser exibidos como caracteres
literais so caracteres de formatao de data e hora (a, c, d, h, m, n, p, q,
s, t, w, y e /:), caracteres de formatao numrica (#, 0, %, E, e, vrgula e
ponto) e os caracteres de formatao de seqncias de caracteres (@, &,
<, >, e !).
"ABC" Exibe a seqncia de caracteres que est entre aspas.
Para incluir uma seqncia de caracteres em Format a partir do cdigo,
voc deve usar Chr(34) para delimitar o texto (34 cdigo de caractere
para aspas).
Usamos tambm como argumento na formatao de expresses
numricas algumas palavras-chave que correspondem a algum tipo de
formato padro.
Aeneral #um1er S Exibe o nmero na forma em que se encontra, sem separadores
de milhar.
Frint Dormat@!"#6%9.;, PZeneral ,um'erPA
Valor mpresso: 123456,7
Currenc/ S Exibe o nmero com o separador de milhar, se apropriado; exibe dois
dgitos direita do separador de casa decimal. Note que a sada baseada nas
configuraes do Painel de Controle.
Frint Dormat@!"#6%9.;, P?urrencRPA
Valor mpresso: R$123.456,70
;i!ed S Exibe pelo menos um dgito esquerda e dois dgitos direita do
separador de casa decimal.
Frint Dormat@!"#6%9.;, PDixedPA
Valor mpresso: 123456,70
Frint Dormat@!, PDixedPA
Valor mpresso: 1,00
Standard S Exibe o nmero com o separador de milhar, pelo menos um dgito
esquerda e dois dgitos direita do separador de casa decimal.
Frint Dormat@!"#6%9.;, P(tandardPA
Valor mpresso: 123.456,70
'ercent S Exibe o nmero multiplicado por 100 com um sinal de porcentagem (%)
anexado direita; sempre mostra dois dgitos direita do separador de casa
decimal.
Frint Dormat@!"#6%9.;, PFercentPA
Valor mpresso: 12345670,00%
Frint Dormat@!, PFercentPA
Valor mpresso: 100,00%
Scientific S Usa a notao cientfica padro.
Frint Dormat@!"#6%9.;, P(cientificPA
Valor mpresso: 1,23E+05
;ormatao de !press5es "0gicas,
CesT#o S Exibe "No se o nmero for 0; caso contrrio, exibe "Yes.
,rueT;alse S Exibe "False se o nmero for 0; caso contrrio, exibe "True.
&nT&ff S Exibe "Off se o nmero for 0; caso contrrio, exibe "On.
Frint Dormat@!,ErueSDalseA
Valor mpresso: True
;ormatao de !press5es -ata e >ora, Usamos a funo Format tambm para
formatar uma data ou hora, configurando assim o formato que ser impresso. Veja
os caracteres que podemos usar:
S Separador de hora. Em algumas localidades podem ser usados outros
caracteres para representar o separador de hora. O separador de hora
separa horas, minutos e segundos quando os valores de hora so
formatados. O caractere real usado como o separador de hora na sada
formatada determinado pelas configuraes de seu sistema.
T Separador de data. Em algumas localidades podem ser usados outros
caracteres para representar o separador de data. O separador de data
separa o dia, ms e ano quando os valores de data so formatados. O
caractere real usado
como o separador de data na sada formatada determinado pelas configuraes de seu
sistema.
c Exibe a data como ddddd e a hora como ttttt, nessa ordem. Exibe apenas
informaes de data se no houver parte fracionria para o nmero de
srie de data; exibe apenas informaes de hora se no houver parte
inteira.
Frint Dormat@P8!S8:S79P,PcPA
Valor mpresso: 01/08/96
Frint Dormat@noV,PcPA
Valor mpresso: 01/08/96 22:51:11
d Exibe o dia como um nmero sem zeros esquerda.
Frint Dormat@P8%S8;S79P,PdPA
Valor mpresso: 5
dd Exibe o dia como um nmero com zeros esquerda.
Frint Dormat@P8%S8;S79P,PddPA
Valor mpresso: 05
ddd Exibe o dia da semana como uma abreviao em 3 letras.
Frint Dormat@P8!S8:S79P,PdddPA
Valor mpresso: Qui
dddd Exibe o dia da semana como um nome completo.
Frint Dormat@P8!S8:S79P,PddddPA
Valor mpresso: Quinta-feira
2 Exibe o dia da semana como um nmero (1 para domingo at 7 para
sbado).
22 Exibe a semana do ano como um nmero.
Frint Dormat@P8!S8:S79P,PVVPA
Valor mpresso: 31
m Exibe o ms como um nmero sem zeros esquerda. Se m vier
imediatamente depois de $ ou $$, exibido o minuto em lugar do ms.
Frint Dormat@P8!S8:S79P,PmPA
Valor mpresso: 8
mm Exibe o ms como um nmero com zeros esquerda. Se m vier
imediatamente depois de $ ou $$, exibido o minuto em lugar do ms.
Frint Dormat@P8!S8:S79P,PmmPA
Valor mpresso: 08
mmm Exibe o ms como uma abreviao em trs letras.
Frint Dormat@P8!S8:S79P,PmmmPA
Valor mpresso: Ago
mmmm Exibe o ms como um nome completo.
Frint Dormat@P8!S8:S79P,PmmmmPA
Valor mpresso: Agosto
9 Exibe o trimestre do ano como um nmero.
Frint Dormat@P8!S8:S79P,PqPA
Valor mpresso: 3
/ Exibe o dia do ano como um nmero.
Frint Dormat@P8!S8:S79P,PRPA
Valor mpresso: 214
// Exibe o ano como um nmero de dois dgitos.
Frint Dormat@P8!S8:S79P,PRRPA
Valor mpresso: 96
//// Exibe o ano como um nmero de quatro dgitos.
Frint Dormat@P8!S8:S79P,PRRPA
Valor mpresso: 1996
$ Exibe a hora como um nmero sem zeros esquerda.
Frint Dormat@P87!#%%P,P0PA
Valor mpresso: 9
$$ Exibe a hora como um nmero com zeros esquerda.
Frint Dormat@P87!#%%P,P0PA
Valor mpresso: 09
n Exibe o minuto como um nmero sem zeros esquerda.
nn Exibe o minuto como um nmero com zeros esquerda.
s Exibe o segundo como um nmero sem zeros esquerda.
ss Exibe o segundo como um nmero com zeros esquerda.
t t t t t Exibe uma hora como uma hora completa (inclusive hora, minuto e
segundo), formatada usando o separador de hora definido pelo formato de
hora reconhecido pelo sistema.
Frint Dormat@noV,PtttttPA
Valor mpresso: 23:17:27
Usando estes caracteres especiais podemos formatar uma data de vrias maneiras, como
por exemplo:
Print Format("01/08/96,dd/mmmm/yyyy)
Valor mpresso: 01/Agosto/1996
Print Format("01/08/96,dd/mmm/yy)
Valor mpresso: 01/Ago/96
Veja abaixo a relao das palavras-chaves aceita pela funo Format para
expresses de data e hora:
Aeneral -ate S Exibe a data e a hora nos formatos estabelecidos nas configuraes
do Windows. Caso a expresso seja somente uma data, ser exibido
Frint Dormat@noV,Pgeneral datePA
Valor mpresso: 01/08/96 23:21:25
Frint Dormat@P8!S8:S79P,Pgeneral datePA
Valor mpresso: 01/08/96
Frint Dormat@P87"6!!P,Pgeneral datePA
Valor mpresso: 09:24:11
"ong -ate S Exibe uma data de acordo com o formato por extenso de data de seu
sistema.
Frint Dormat@P8!S8:S79P,PBong 4atePA
Valor mpresso: Quinta-feira, 1 de Agosto de 1996
Medium -ate S Exibe uma data usando o formato mdio de data apropriado para a
verso de idioma do aplicativo host.
Frint Dormat@P8!S8:S79P,P<edium 4atePA
Valor mpresso: 01-Ago-96
S$ort -ate S Exibe uma data usando o formato abreviado de data de seu sistema.
Frint Dormat@P8!S8:S79P,P(0ort 4atePA
Valor mpresso: 01/08/96
"ong ,ime S Exibe uma hora usando o formato por extenso de hora de seu
sistema: inclui horas, minutos, segundos.
Frint Dormat@P87"6!!P,PBong EimePA
Valor mpresso: 09:24:11
Medium ,ime S Exibe uma hora no formato 12 horas usando horas e minutos e a
designao AM/PM.
Frint Dormat@P87"6!!P,P<edium EimePA
Valor mpresso: 09:24 AM
S$ort ,ime S Exibe uma hora usando o formato 24 horas.
Frint Dormat@P87"6!!P,P(0ort EimePA
Valor mpresso: 09:24
;ormatao de !press5es String, A manipulao de expresses String pode ser
formatada usando os caracteres especiais abaixo:
U Exibe um caractere ou um espao. Se a seqncia de caracteres tem
um caractere na posio em que U aparece na seqncia de formato, ele
ser exibido; caso contrrio, um espao ser apresentado nessa posio.
Os espaos reservados so preenchidos da direita para a esquerda a
menos que exista um caractere V na seqncia de caracteres de formato.
Veja abaixo.
W Exibe um caractere ou nada. Se a seqncia de caracteres tem um
caractere na posio em que W aparece, ele ser exibido; caso contrrio,
nada ser exibido. Os espaos reservados so preenchidos da direita para
a esquerda a menos que exista um caractere V na seqncia de caracteres
de formato. Veja abaixo.
V Fora preenchimento da esquerda para a direita dos espaos reservados.
O preenchimento padro feito da direita para a esquerda.
< Exibe todos os caracteres no formato de minsculas.
= Exibe todos os caracteres no formato de maisculas.
P+$5+1,19D$ O+('%)101 1 O78')$*
Programao orientada a objetos (POO) uma metodologia de programao
adequada ao desenvolvimento de sistemas de grande porte, provendo
modularidade e reusabilidade. A POO introduz uma abordagem na qual o
programador visualiza seu programa em execuo como uma coleo de objetos
cooperantes que se comunicam atravs de mensagens. Cada um dos objetos
instncia de uma classe e todas as classes formam uma hierarquia de classes
unidas via relacionamento de herana. Existem alguns aspectos importantes na
definio de POO:
Usa $78')$*, e no funes ou procedimentos como seu bloco lgico fundamental
de construo de programas
Objetos comunicam-se atravs de mensagens
Cada objeto instncia de uma classe
Classes esto relacionadas com as outras via mecanismos de $erana
Programao orientada a objetos d nfase estrutura de dados, adicionando
funcionalidade ou capacidade de processamento a estas estruturas. Em
linguagens tradicionais, a importncia maior atribuda a processos, e sua
implementao em subprogramas.
Alguns aspectos so fundamentais na definio de programao orientada a
objetos, como:
Abstrao de dados,
Objetos,
Mensagens,
Classes,
Herana,
Polimorfismo
Conceitos
Classes
a definio dos atributos e funes de um tipo de objeto. Cada objeto
individual ento criado com base no que est definido na classe.
Por exemplo, homo sapiens uma classe de mamfero; cada ser
humano individual um objeto dessa classe.
Objetos de estrutura e comportamento idnticos so descritos como
pertencendo a uma classe, de tal forma que a descrio de suas
propriedades pode ser feita de uma s vez, de forma concisa,
independente do nmero de objetos idnticos em termos de estrutura e
comportamento que possam existir em uma aplicao.
A noo de um objeto equivalente ao conceito de uma varivel em
programao convencional, pois especifica uma rea de armazenamento,
enquanto que a classe vista como um tipo abstrato de dados, uma vez
que representa a definio de um tipo.
Cada objeto criado a partir de uma classe denominado de inst3ncia
dessa classe.
Uma classe prov toda a informao necessria para construir e utilizar
objetos de um tipo, cada instncia pertence a uma classe e uma classe
pode possuir mltiplas instncias. Devido ao fato de todas as instncias de
uma classe compartilharem as mesmas operaes, qualquer diferena de
respostas nas mensagens aceitas por elas, determinada pelos valores
das variveis de instncia.
*elacionamento entre classes e o1jetos
A figura acima ilustra o relacionamento entre classes e objetos. Cada
objeto instanciado a partir de uma classe possui as propriedades e
comportamentos definidos na classe, da mesma maneira que uma varivel
incorpora as caractersticas do seu tipo.
A existncia de classes proporciona um ganho em reusabilidade. pois o cdigo das
operaes e a especificao da estrutura de um nmero potencialmente infinito de objetos
esto definidos em um nico local, a classe. Cada e! "ue um noo objeto # instanciado ou
"ue uma mensagem # eniada, a definio da classe # reutili!ada. Caso no existissem
classes, para cada noo objeto criado, seria preciso uma definio completa do objeto.
Metaclasses, Uma metaclasse uma classe de classes. Pode-se
julgar conveniente que, em uma linguagem ou ambiente, classes
tambm possam ser manipuladas como objetos. Por exemplo, uma
classe pode conter variveis contendo informaes teis, como:
o nmero de objetos que tenham sido instanciados da classe at
certo instante; um valor mdio de determinada propriedade,
calculado sobre os valores especficos desta propriedade nas
instncias (por exemplo, mdia de idade de empregados).
Benef3cio proporcionado pelas classes, O maior benefcio proporcionado pela
utilizao das classes a reusabilidade de cdigo, uma vez que todos os
objetos instanciados a partir dela incorporam as suas propriedades e seu
comportamento.
Objetos
#otaS Um fato importante a observar que no devemos confundir Classe
com Objeto.
Podemos definir um objeto como um conceito, uma abstrao, algo com
limites ntidos e significado em relao ao problema em causa. Os objetos,
servem a dois objetivos: facilitam a compreenso do mundo real e
oferecem a base real para implementao em computador.
Analogamente, uma Classe apenas um modelo formalizado, ou uma
forma, sobre o qual poderemos ento criar (instanciar) tantos Objetos
quantos forem necessrios.
Na viso de uma linguagem imperativa tradicional (Pascal, C, COBOL,
etc.), os objetos aparecem como uma nica entidade autnoma que
combina a representao da informao (estruturas de dados) e sua
manipulao (procedimentos), uma vez que possuem capacidade de
processamento e armazenam um estado local. Pode-se dizer que um
objeto composto de:
Atri1utos ('ropriedades)S so as informaes, estruturas de dados
que representam o estado interno do objeto. Em geral, no so
acessveis aos demais objetos.
M4todosS conjunto de operaes que agem sobre as propriedades.
Os mtodos so ativados (disparados) quando o objeto recebe uma
mensagem solicitando sua execuo. Embora no seja obrigatrio,
em geral uma mensagem recebe o mesmo nome do mtodo que
ela dispara. O conjunto de mensagens que um objeto est apto a
receber est definido na sua interface.
IdentidadeS uma propriedade que diferencia um objeto de outro;
ou seja, seu nome.
Enquanto que os conceitos de dados e procedimentos so freqentemente
tratados separadamente nas linguagens de programao tradicionais, em
POO eles so reunidos em uma nica entidade: o objeto. A figura abaixo
apresenta uma visualizao para um objeto.
*epresentao para um o1jeto
No mundo real no difcil a identificao de objetos (em termos de sistemas, objetos so
todas as entidades que podem ser modeladas, no apenas os nossos conhecidos objetos
inanimados). Como exemplo, em uma empresa pode-se identificar claramente objetos da
classe empregado.
Um empregado possui uma (0'%)(010' prpria, seu nome: Jos da
Silva.
Possui tambm /+$/+('010'* como: endereo, idade,
dependentes, salrio, cargo, entre outras.
Os MB)$0$* podem ser determinados por operaes como:
aumentar salrio, listar dependentes e alterar cargo.
As propriedades somente podem ser manipuladas atravs das operaes
definidas na interface do objeto, de modo que a forma de armazenamento
das propriedades e a implementao das operaes so desconhecidas
pelas outras entidades externas (encapsulamento de informaes).
& &1jeto XmpregadoX
7erana
Uma Classe pode ter sua prpria estrutura de dados e mtodos - bem
como herd-la de sua (uper?lasse. Uma subclasse herda as propriedades
de sua classe2me; uma subsubclasse herda as propriedades das
subclasses e assim por diante.
A herana um mecanismo para expressar a similaridade entre Classes,
simplificando a definio de Classes iguais a outras que j foram definidas.
Ela representa generalizao e especializao, tornando explcitos os
Atributos e Servios comuns em uma hierarquia de Classe.
Sendo assim como o nome sugere, herana permite que suas classes
herdem datos (propriedades) e cdigo (m)todos) usando um conceito
conhecido como su'classificao. Subclassificao permite a voc criar
uma nova classe baseada em uma classe existente, estendo ou mudando
o comportamento da original.
Onde o encapsulamento prov a maneira para construir classes totalmente
auto-contidas, a herana prov a habilidade para estender as capacidades
de uma classe sem tocar o cdigo na original.
Para que a herana trabalhe melhor, so projetados mtodos de classe em
pequenos grupos modulares, para que voc possa anular funcionalidades
muito especficas, sem ter que reinventar a roda ou recortar e colar blocos
de cdigo.
Atrib/tos )!ropriedades*
As propriedades so atributos que pertencem a um objeto especifico e ajudam a
descrev-lo. Elas abrangem, entre outras coisas, item como cor, altura, largura e
posicionamento. As propriedades podem afetar a aparncia de um objeto e de
outros elementos no-visuais de um objeto, como por exemplo, seu
comportamento.
Para um objeto, as propriedades so uma espcie de variveis locais de uma
procedure. Para uma procedure, essas variveis pertencem a procedure e so
usadas por ela para seu processamento. As propriedades esto diretamente
relacionadas aos objetos da mesma maneira elas so atributos de objetos que
descrevem seus detalhes.
"todos
Um mtodo implementa algum aspecto do comportamento do objeto.
Comportamento a forma como um objeto age e reage, em termos das suas
trocas de estado e troca de mensagens.
Um mtodo uma funo ou procedimento que definido na classe e tipicamente
pode acessar o estado interno de um objeto da classe para realizar alguma
operao. Pode ser pensado como sendo um procedimento cujo primeiro
parmetro o objeto no qual deve trabalhar. Este objeto chamado receptor.
Abaixo apresentada uma notao possvel para o envio de uma mensagem
(invocao do mtodo)
Construtores so usados para criar e inicializar objetos novos. Tipicamente, a
inicializao baseada em valores passados como parmetros para o construtor.
Destrutores so usados para destruir objetos. Quando um destrutor invocado, as
aes definidas pelo usurio so executadas, e ento a rea de memria alocada
para o objeto liberada. Em algumas linguagens, como C++, o construtor
chamado automaticamente quando um objeto declarado. Em outras, como
Object Pascal, necessrio chamar explicitamente o construtor antes de poder
utiliz-lo.
C$%;'%9:'* 0$ C$0(%5 0$ V(*614 B1*(&
& 9ue 4 Con(en5es de C0digo Y Convenes do Coding so sugestes que podem
ajud-lo a escreve seus cdigos usando VB.
A principal razo para usar um conjunto consistente de convenes do coding
padronizar a estrutura e estilo do cdigo de um script, ou atribuir um modo de
escrever seus cdigos de forma que voc e outros possam facilmente ler e
compreendem o algortimo. Usando boas convenes do coding o resultado
legvel, preciso, com um cdigo consistente com outras convenes da linguagem.
Vari(el -escriti(a e #omes -e 'rocedimento, O corpo de uma varivel ou nome de
uma procedure deve ser usado para descrever a necessidade de seu propsito.
Em resumo, os nomes de procedures deveriam comear com um verbo, tal como
niciarVariveis ou FecharJanela.
Para termos freqentes e longos, abreviaes padronizadas so recomendadas
para minimizar o comprimento do nome. No geral, nomes de variveis maiores
que 32 caracteres podem ser de difceis leituras. Quando usar abreviaes,
certifique-se que elas sero consistentes para todo o Script. Por Exemplo,
aleatoriamente mudando de Cnt para Conta dentro de um Script pode gerar um
erro no seu cdigo.
Comentando Con(en5es de C0digos Todos os procedimentos deveriam comear
com um breve comentrio descrevendo o que eles fazem. Este comentrio no
deveria descrever os detalhes de implementao (como: isto faz isto) porque os
cdigos mudam freqentemente, resultando num enorme trabalho e perca de
tempo na manuteno de comentrios desnecessrios, ou comentrios errneos,
pior. O cdigo por si mesmo e quaisquer breves comentrios necessrios
descrevem a implementao.
Argumentos passados para um procedimento devem ser descritos quando seu
propsito no est bvio no cdigo. Valores que voltam para funes e variveis
que so mudadas por um procedimento, especialmente atravs de argumentos
por referncia, devem ser descritos no comeo de cada procedure.
Comentrios no cabealho da Procedure devem incluir os seguintes ttulos. Por
Exemplo:
Ttulo De Seo
Comentrio do Contedo
Propsito
Que o procedimento faz (no como).
Suposies
Lista de qualquer varivel externa, controle, ou outro elemento que declare aes
neste procedimento.
Efeitos
Lista de efeito do procedimento em cada varivel externa, controle, ou outro
elemento.
Entradas
Explicao de cada argumento que no esteja bvio. Cada argumento deve ter
uma linha separada com os comentrios.
Valores
Retornados
Explicao do valor voltado.
*ecorde os seguintes pontos,
) Toda declarao de uma importante varivel deve incluir um comentrio
descrevendo o uso e a existncia da varivel declarada.
- Variveis, controles, e procedimentos devem ter comentrios claros e especficos
pois, deles resulta a complexidade da implementao. No comeo de seu script,
voc deve incluir um resumo que descreva, enumerando objetos, procedimentos,
algoritmos, caixas de dilogo, e outras dependncias do sistema. s vezes um
pedao de pseudocdigo, descrevendo o algoritmo pode ser bastante prestativo.
;ormatando Seu C0digo O espao da tela dever ser conservado, enquanto ainda
permita formatar seu cdigo refletindo a estrutura lgica do algoritmo. Estes so
uns pontos bsicos:
Qlocos endentados padronizados devem ser endentados com quatro espaos.
& resumo do coment$rio de um procedimento dever ser endentar com um espao.
'*********************************************************
' Purpose: Locates the first occurrence of a specified user in the UserList array.
' nputs: strUserList():the list of users to be searched.
' strTargetUser: the name of the user to search for.
' Returns: The index of the first occurrence of the strTargetUser
' in the strUserList array.
' f the target user is not found, return -1.
'*********************************************************
Function intFindUser (strUserList(), strTargetUser)
Dim ' Loop counter.
Dim blnFound ' Target found flag
intFindUser = -1
i = 0 ' nitialize loop counter
Do While i <= Ubound(strUserList) and Not blnFound
f strUserList(i) = strTargetUser Then
blnFound = True ' Set flag to True
intFindUser = ' Set return value to loop count
End f
i = i + 1 ' ncrement loop counter
Loop
End Function

Вам также может понравиться