Você está na página 1de 478

ABS

Categoria: Funo Matemtica


Finalidade: Retorna o valor absoluto de um nmero.
Sintaxe: ABS(Nmero)
Em que:
Nmero - Qualquer valor numrico vlido. Se Nmero contm Null, o valor retornado pela funo ser Null tambm.
Caso Nmero seja igual a zero, este ser o valor de retorno da funo.
Exemplo:
Teste = ABS(2.99)
Teste = ABS(-2.99)

Teste = 2.99
Teste = 2.99

Array
Categoria: Funes de Array
Finalidade: Retorna um dado Variant contendo um Array.
Sintaxe: Array(Lista de Argumentos)
Em que:
Lista de Argumentos - Consiste em uma srie de argumentos separados por vrgulas. Se nenhum argumento for
fornecido funo, ser criado um array de comprimento zero.
Exemplo:
MeuArray(Jan,Fev,Mar,Abr)
MeuArray(1,3,5,7)

Asc
Categoria: Funes de Converso de Dados
Finalidade: Retorna o cdigo ASCII corresponde quente do primeiro caractere da string indicada.
Sintaxe: ASC(String)
Em que:
String - O argumento string qualquer expresso de caracteres vlida. Se a string especificada no contiver
caracteres, ocorrer um erro de Run-Time.
Exemplo:
Teste = Asc("A")
Teste = Asc("a")
Teste = Asc("ASCII")

Teste = 65
Teste = 97
Teste = 65

Atn
Categoria: Funes Matemticas
Finalidade: Calcula o Arco Tangente de um nmero.
Sintaxe: Atn(Nmero)
Em que:
Nmero - A funo Atn retorna o nmero de radianos referentes ao arco tangente do ngulo especificado.
Exemplo:
Teste = Atn(30)
Teste = Atn(45)

MeuArray(2) = Fev
MeuArray(3) = 5

Teste = 1.53747533091665
Teste = 1.54857776146818

Cbool
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso em Boolean.
Sintaxe: CBool(Expresso)
Em que:
Expresso - Se o valor da expresso resultante for zero, o valor False ser retornado pela funo Cbool; caso contrrio,
a resposta ser True.
Exemplo:
Primeiro = 10
Segundo = 10
Valor = 0
Teste = Cbool(Primeiro = Segundo)
Teste2 = Cbool(Valor)

Teste = True
Teste2 = False

Cbyte
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso em Byte.
Sintaxe: CByte(Expresso)
Em que:
Expresso - O argumento da funo poder ser qualquer valor numrico vlido.
Exemplo:
Dim Teste as Double
Teste = 222.3322
MeuByte = CByte(Teste)

MeuByte = 222

CCur
Categoria: Funes de Converso de Dados
Funes Internas

Finalidade: Converte uma expresso em Currency.


Sintaxe: CCur(Expresso)
Em que:
Expresso - O argumento da funo poder ser qualquer valor numrico vlido ou expresso string.
Exemplo:
Dim Dado as Double
Dado = 656.123456
Dado = Dado * 2
MinhaMoeda = Ccur(Dado)

MinhaMoeda = 1312.2469

CDate
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso no tipo de dados Date.
Sintaxe: CDate(Data)
Exemplo:
Hoje = June 18, 1999"
DataCurta = CDate(Hoje)

DataCurta = 18/06/99

CDbl
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso em Double.
Sintaxe: CDbl(Expresso)
Em que:
Expresso - O argumento da funo poder ser qualquer valor numrico vlido ou expresso string.
Exemplo:
Dim MinhaMoeda As Currency
MinhaMoeda = 255.123456
Dado = CDbl(MinhaMoeda)

Dado = 255.1235

CDec
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso em Decimal.
Sintaxe: CDec(Expresso)
Em que:
Expresso - O argumento da funo poder ser qualquer valor numrico vlido ou expresso string.
Exemplo:
Dim ValorTeste
MeuValor = 3.05E+15
ValorTeste = CDec(MeuValor) 'ValorTeste= 3050000000000000

Choose
Categoria: Funes de Verificao
Finalidade: Seleciona e retorna um valor de uma lista de argumentos existente em funo do ndice passado.
Sintaxe: Choose(index, choice-1[, choice-2, ... [,choice-n]])
Em que:
Index - Expresso numrica ou campo que resulta em um valor entre 1 e o nmero de escolhas disponveis.
Choice - Expresso Variant contendo uma das possveis escolhas.
Exemplo:
Teste = Escolha(2)

Teste = Valor2

Funo Escolha:
Function Escolha(Indice As Integer)
Escolha = Choose(Indice, "Valor1", "Valor2", "Valor3")
End Function

Chr
Categoria: Funes de Converso de Dados
Finalidade: Retorna o caractere correspondente ao cdigo ASCII informado.
Sintaxe: Chr(Cdigo ASCII)
Exemplo:
Teste = Chr(65)
Teste = Chr(97)
Teste = Chr(64)

Teste = A
Teste = a
Teste = @

CInt
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso no tipo de dados Inteiro.
Sintaxe: CInt(Expresso)
Em que:
Expresso - O argumento da funo poder ser qualquer valor numrico vlido ou expresso string.
Exemplo:
Dim Duplo As Double
Duplo = 8765.4321
Teste = CInt(Duplo)

Teste = 8765

Funes Internas

CLng
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso no tipo de dados Longo.
Sintaxe: CLng(Expresso)
Em que:
Expresso - O argumento da funo poder ser qualquer valor numrico vlido ou expresso string.
Exemplo:
Dim Dado As Double
Dado = 65432.123
Teste = CLng(Dado)

Teste = 65432

Command
Categoria: Funes de Sistema Operacional
Finalidade: Retorna o argumento informado na linha de comando utilizado na inicializao do Visual Basic ou de um
programa executvel desenvolvido nesta linguagem.
Sintaxe: Command
Exemplo:
Inicie a criao de um aplicativo qualquer e inclua os comandos abaixo na procedure Form_Load. A seguir, selecione o
comando Options... no menu Tools, escolhendo em seguida a aba Advanced. Inclua o seguinte argumento na caixa de
texto Command Line Arguments: Start. A seguir, execute seu aplicativo com e sem este argumento e veja o que acontece.
Dim Msg
If Command = "" Then
Msg = "No existe uma linha de comando
Else
Msg = "A linha de comando : & Command
End If
MsgBox Msg

Cos
Categoria: Funes Matemticas
Finalidade: Calcula o cosseno de um ngulo.
Sintaxe: Cos(Nmero)
Em que:
Nmero - Pode ser qualquer expresso numrica vlida que expresse um ngulo em radianos.
Exemplo:
Const PI = 3.14159265
Teste = Cos(PI)
Teste = Cos(PI/2)

CSng
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso no tipo de dados Single.
Sintaxe: CSng(Expresso)
Em que:
Expresso - O argumento da funo poder ser qualquer valor numrico vlido ou expresso string.
Exemplo:
Dim Teste As Double
Teste = 22.12345678
Teste = CSng(Teste)

Teste = 22.12346

CStr
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso no tipo de dados String.
Sintaxe: CStr(Expresso)
Em que:
Expresso - O argumento da funo poder ser qualquer valor numrico vlido ou expresso string.
Exemplo:
Dim Dado As Double
Dado = 555.4321
Teste = CStr(Dado)

Teste = -1
Teste = 1.79489651491878E-09

Teste = "555.4321"

CurDir
Categoria: Funes de Sistema Operacional
Finalidade: Retorna a pasta (ou diretrio) atual.
Sintaxe: CurDir[(Drive)]
Em que:
Drive - Expresso string que especifica uma unidade de disco existente. Se a unidade no for especificada ou se a
string for de tamanho zero, a funo CurDir retornar o caminho (Path) para o drive atual.
Exemplo:
Teste = CurDir

Teste = C:\WINDOWS

Funes Internas

CVar
Categoria: Funes de Converso de Dados
Finalidade: Converte uma expresso no tipo de dados Variant.
Sintaxe: CVar(Expresso)
Em que:
Expresso - Qualquer valor numrico vlido ou expresso string.
Exemplo:
Dim Inteiro As Integer
Inteiro = 2222
Teste = CVar(Inteiro & "000")

Teste = 2222000

CVErr
Categoria: Funes de Converso de Dados
Finalidade: Retorna o nmero do erro especificado pelo usurio
Sintaxe: CVErr(Nmero do Erro)
Voc pode utilizar a funo CVErr para definir seus prprios nmeros de erro. Como voc j deve ter notado ao longo de
nosso estudo, sempre que ocorre um erro em tempo de execuo, o VB exibe um bloco de dilogo que mostra o nmero
do erro ocorrido e a mensagem correspondente a esse erro. Voc tambm pode criar suas prprias mensagens de erro e
com isso controlar o comportamento de seu aplicativo no caso da ocorrncia de situaes indesejadas. Voc pode utilizar a
funo IsError para avaliar o erro ocorrido e tomar as devidas providncias.
Exemplo:
Dado = TxtIn.TEXT
Teste = CalculoGeral(Dado)

Entrada de Dado

If IsError(Teste) Then
Teste = CStr(Teste)
End If

Se Teste um Nmero de erro


Converto no tipo de dados String

TxtOut.TEXT = Teste

Funo CalculoGeral:
Function CalculoGeral(Nmero)
If IsNumeric(Nmero) Then
CalculoGeral = Nmero * 100
Else
CalculoGeral = CVErr(1000)
End If

Se nmero processo normalmente


Define Nmero de Erro igual a 1000

End Function

Date
Categoria: Funes de Data e Hora
Finalidade: Retorna a Data atual do sistema.
Sintaxe: Date
Exemplo:
Teste = Date

Teste = 04/10/99

DateAdd
Categoria: Funes de Data e Hora
Finalidade: Retorna um valor Variant contendo a data especificada acrescida do intervalo de tempo fornecido funo.
Sintaxe: DateAdd(Intervalo, Nmero, Data)
Em que:
Intervalo - Expresso do tipo string indicando o intervalo de tempo a ser adicionado data especificada. Pode ser horas,
dias, semanas, meses, anos, etc., conforme especificado na seo ajustes, logo em seguida.
Nmero -Expresso numrica indicando o nmero de intervalos de tempo que voc deseja acrescer data indicada. Ele
pode ser positivo para indicar datas futuras ou mesmo negativo, obtendo datas j ocorridas.
Data - Data ou nome de varivel do tipo Date que ser utilizada para o clculo da funo.
Ajustes:
Ajuste
Descrio
yyyy
Year (Ano)
q
Quarter (Trimestre)
m
Month (Ms)
y
Day of year (Dia do Ano)
d
Day (Dia)
w
Weekday (Dia da Semana)
ww
Week (Semana)
h
Hour (Hora)
n
Minute (Minuto)
s
Second (Segundo)
Exemplo:
Funes Internas

REM Acresce trs anos data atual


Teste = DateAdd("yyyy", 3, #10/04/99#) Teste = 04/10/02
REM Diminui 6 meses da data atual
Teste = DateAdd("m", -6, #10/04/99#)

Teste = 04/04/99

REM Soma uma semana data atual


Teste = DateAdd("ww", 1, #10/4/99#)

Teste = 11/10/99

Para efeito de clculo, o VB considera os anos bissextos, de modo que o ms de fevereiro ser considerado com 28 ou 29
dias de acordo com a data especificada e o intervalo de tempo informado.

DateDiff
Categoria: Funes de Data e Hora
Finalidade: Retorna o intervalo de tempo decorrido entre duas datas de acordo com a unidade de tempo especificada.
Sintaxe: DateDiff(Intervalo, Data1, Data2[, firstdayofweek[, firstweekofyear]])
Em que:
Intervalo - Expresso do tipo string indicando o intervalo de tempo que ser calculado entre Data1 e Data2. Pode ser
horas, dias, semanas, meses, anos, etc., conforme especificado na seo ajustes, logo em seguida.
Data1, Data2 - As duas datas entre as quais ser calculado o intervalo de tempo decorrido.
Firstdayofweek - Uma constante que define o primeiro dia da semana. Caso voc no especifique, o domingo ser
considerado como primeiro dia. Veja a seo ajustes, logo em seguida, para maiores detalhes.
Firstweekofyear - Esta constante define a primeira semana do ano. Se voc no especificar este argumento, ser
considerada como a primeira do ano a semana em que ocorre o dia 1 de janeiro.
Ajustes:
Para Intervalo:
Ajuste
Descrio
yyyy
Year (Ano)
q
Quarter (Trimestre)
m
Month (Ms)
y
Day of year (Dia do Ano)
d
Day (Dia)
w
Weekday (Dia da Semana)
ww
Week (Semana)
h
Hour (Hora)
n
Minute (Minuto)
s
Second (Segundo)
Para Firstdayofweek:
Ajuste
Descrio
0
O atual do sistema
1
Domingo (default)
2
Segunda
3
Tera
4
Quarta
5
Quinta
6
Sexta
7
Sbado
Para Firstweekofyear:
Ajuste
Descrio
0
O atual do sistema (se houver)
1

A semana em que ocorre dia 1 de


janeiro

A primeira semana que tem pelo


menos 4 dias do novo ano
A primeira semana que contiver sete
dias do novo ano

3
Exemplo:
REM Dias decorridos de 1/1/99 at 4/10/99:
Teste = DateDiff("d", #1/1/99#, #10/4/99#)

Teste = 276

REM Horas decorridas entre 1/10/99 at 4/10/99:


Teste = DateDiff("h", #10/1/99#, #10/4/99#)Teste = 72

Se Data2 for menor que a Data1, o nmero de intervalos decorridos ser negativo.
A opo Firstdayofweek afeta os clculos efetuados com base nos intervalos de tempo "w" (dia da semana) e "ww"
(Semana).

Funes Internas

DatePart
Categoria: Funes de Data e Hora
Finalidade: Retorna a parte especificada de uma determinada data.
Sintaxe: DatePart(Intervalo, Data[, Firstdayofweek[, Firstweekofyear]])
Em que:
Intervalo - Expresso do tipo string indicando o intervalo de tempo que ser retornado pela funo. Veja a seo Ajustes
em seguida.
Data - A data a ser avaliada pela funo.
Firstdayofweek - Uma constante que define o primeiro dia da semana. Caso voc no especifique, o domingo ser
considerado como primeiro dia. Veja a seo ajustes, logo em seguida, para maiores detalhes.
Firstweekofyear - Esta constante define a primeira semana do ano. Se voc no especificar este argumento, ser
considerada como a primeira do ano a semana em que ocorre o dia 1o de janeiro.
Ajustes:
Esta funo utiliza os mesmos ajustes da funo DateDiff.
Exemplo:
REM Calcula a semana atual da data indicada
Teste = DatePart("ww", #10/4/99#)

REM Retorna a data de 1 de maio de 1999


Teste = DateSerial(99, 5, 1)

Teste = 41

DateSerial
Categoria: Funes de Data e Hora
Finalidade: Retorna a data para o dia, ms e ano especificados.
Sintaxe: DateSerial(Ano, Ms, Dia)
Em que:
Ano - Nmero entre 100 e 9999 inclusive.
Ms - Qualquer expresso numrica.
Dia - Qualquer expresso numrica.
Exemplo:
Teste = 01/05/99

DateValue
Categoria: Funes de Data e Hora
Finalidade: Retorna uma data.
Sintaxe: DateValue(Data)
Em que:
Data - Expresso string representando uma data. O VB pode manipular datas que vo de 1/1/100 at 31/12/9999! Voc
tambm pode utilizar qualquer expresso que represente data, hora ou ambas.
Exemplo:
REM Converte uma string numa data
Teste = DateValue("6/22/99")

Teste = 22/06/99

Day
Categoria: Funes de Data e Hora
Finalidade: Retorna um nmero de 1 a 31 representando o dia do ms.
Sintaxe: Day(Data)
Exemplo:
Teste = Day(#4/10/99#)

Teste = DDB(1000, 100, 5, 1)

Teste = 10

DDB
Categoria: Funes Financeiras
Finalidade: Calcula a depreciao de um ativo pelo mtodo do Declnio de Balano.
Sintaxe: DDB(Cost, Salvage, Life, Period[, Factor])
Em que:
Cost - Custo inicial do bem.
Salvage - Valor do bem ao final de sua vida til.
Life - Vida til do bem.
Period - Perodo de depreciao.
Factor - Taxa de declnio do balano.
Exemplo:
Teste = 400

Dir
Categoria: Funes de Sistema Operacional
Finalidade: Retorna o nome dos arquivos ou diretrios que combinam com o padro especificado ou atributo de arquivo,
ou volume de um drive.
Sintaxe: Dir[(Pathname[, Attributes])]
Em que:
Pathname - Expresso string que especifica o nome do arquivo. Essa string tambm pode conter o caminho completo
(drive e diretrio) do arquivo procurado. Se o caminho no for encontrado, Null ser retornado.

Funes Internas

Attributes - Constante ou expresso numrica que indica os atributos do arquivo selecionado. Se omitido, somente
sero retornados os arquivos normais, ou seja, arquivos ocultos de sistema e diretrios no sero exibidos.
Ajustes:
Ajuste
Descrio
0
Normal
2
Hidden (Oculto)
4
System (Sistema)
8
Volume
16
Diretrio
Exemplo:
Teste = Dir("C:\WINDOWS\WIN.INI")
Para mltiplos arquivos:
Teste = Dir("C:\WINDOWS\*.INI")
List1.AddItem Teste

Teste = WIN.INI

Do While Teste <> Empty


Teste = Dir
List1.AddItem Teste
Loop

Quando voc utiliza caracteres curinga como * e ?, o VB retorna o primeiro nome de arquivo que atende s condies de
busca indicadas na funo Dir. A partir da, basta chamar a funo Dir sem argumentos para que os prximos arquivos que
atendem condio proposta sejam exibidos.
Quando no existirem mais arquivos, a funo Dir retornar uma string de comprimento zero.
DoEvents
Categoria: Funes de Sistema Operacional
Finalidade: Interrompe momentaneamente a execuo de seu aplicativo para que o sistema operacional possa processar
outros eventos pendentes.
Sintaxe: DoEvents( )
Exemplo:
For a = 1 To 30000
If a Mod 1000 = 0 Then
'Se o loop foi repetido 1000 vezes.
DoEvents'Passa o controle para o sistema operacional.
End If
Next a

Quando seu aplicativo realiza tarefas muito demoradas, o sistema operacional deixa de processar a ocorrncia de alguns
eventos, que ficam pendentes em uma fila de execuo.
mais ou menos o que ocorre quando voc d dois cliques sobre o cone do VB para inicializ-lo. Enquanto o seu micro
vai carregando este aplicativo, as teclas que voc est acionando e os cliques de mouse dados sobre a tela so ignorados
pelo Windows. Depois que a sua aplicao j est carregada que o Windows processa os eventos pendentes.
A funo DoEvents tambm retorna o nmero de formulrios abertos no Windows.

Environ
Categoria: Funes de Sistema Operacional
Finalidade: Retorna a string associada a uma varivel de ambiente do sistema operacional (como Path e Prompt, por
exemplo).
Sintaxe: Environ({Envstring | Nmero})
Em que:
Envstring - Expresso string contendo o nome da varivel de ambiente.
Nmero - Expresso numrica correspondente ordem da varivel na tabela de variveis de ambiente.
Exemplo:
Teste = Environ("PATH")
REM Teste = C:\WINDOWS;C:\WINDOWS\COMMAND;C:\;C:\DOS;C:\UTIL
Teste = Environ("TEMP")

Teste = C:\WINDOWS\TEMP

Se a varivel de ambiente especificada no for encontrada, a funo Environ retornar uma string de comprimento zero.

Error
Categoria: Funes de Sistema Operacional
Finalidade: Retorna a mensagem de erro que corresponde a um dado nmero de erro.
Sintaxe: Error[(Errornumber)]
Em que:
Errornumber - Qualquer nmero de erro vlido para o Visual Basic. Um nmero de erro corresponde ao valor da
propriedade Number do objeto Err, e seus valores vlidos vo de 0 a 65535, inclusive. Quando combinado com a
propriedade Name do objeto Err, esse nmero representa uma mensagem de erro particular. Se Errornumber um nmero
de erro vlido, porm indefinido, a funo Error retorna a string definida pelo usurio. Se Errornumber no um nmero de
erro vlido, um erro ocorre. Se Errornumber omitido, a mensagem correspondente ao erro de Run-time mais recente
exibida. Se nenhum erro de Run-time ocorreu recentemente ou o nmero do erro for 0, a funo Error retornar uma string
de comprimento zero.
Exemplo:

Funes Internas

Teste = Error(5)
Teste = Error(6)
Teste = Error(7)

Teste = Invalid procedure call


Teste = Overflow
Teste = Out of memory

Para erros indefinidos:


Teste = Error(4)
Rem Teste = Application-defined or object-defined error

Exp
Categoria: Funes Matemticas
Finalidade: Retorna o valor de e (base de um logaritmo natural) elevado a uma potncia qualquer.
Sintaxe: Exp(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida.
Exemplo:
Teste = Exp(1)
Teste = Exp(2)
Teste = Exp(-2)

Teste = 2.71828182845905
Teste = 7.38905609893065
Teste = 0.13533528323661

O valor de e aproximadamente 2,718282. Se o valor do nmero for superior a 709,782712893, ocorrer um erro de
overflow.

FileDateTime
Categoria: Funes de Acesso a Arquivos
Finalidade: Retorna a data e hora em que o arquivo foi criado ou modificado pela ltima vez.
Sintaxe: FileDateTime(Pathname)
Em que:
Pathname - Expresso string que especifica o nome do arquivo. Essa string tambm pode conter o caminho completo
(drive e diretrio) do arquivo procurado.
Exemplo:
Teste = FileDateTime("C:\WINDOWS\WIN.COM")
REM Teste = 15/05/98 20:01:00

FileLen
Categoria: Funes de Acesso a Arquivos
Finalidade: Retorna um valor Long contendo o tamanho do arquivo especificado em bytes.
Sintaxe: FileLen(Pathname)
Em que:
Pathname - Expresso string que especifica o nome do arquivo. Essa string tambm pode conter o caminho completo
(drive e diretrio) do arquivo procurado.
Exemplo:
Teste = FileLen("C:\WINDOWS\WIN.COM") Teste = 25271

Fix
Categoria: Funes Matemticas
Finalidade: Retorna a parte inteira de um nmero.
Sintaxe: Fix(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida. Se nmero contm Null, o valor de retorno ser Null tambm.
Exemplo:
Teste = Fix(12.556)
Teste = Fix(-12.556)
Teste = Fix(1.6)

Teste = 12
Teste = -12
Teste = 1

Format
Categoria: Funes de Data e Hora
Finalidade: Formata uma expresso de acordo com as instrues definidas pelo usurio.
Sintaxe: Format(Expresso[, Formato[, Firstdayofweek[, Firstweekofyear]]])
Em que:
Expresso - Qualquer expresso vlida.
Formato - Uma expresso de formato definida pelo usurio. Veja na seo Ajustes em seguida, os formatos existentes.
Firstdayofweek - Uma constante que define o primeiro dia da semana. Veja a funo DateDiff para maiores detalhes.
Firstweekofyear - Esta constante define a primeira semana do ano. Veja a funo DateDiff para maiores detalhes.
Ajustes:
Nmeros:
Nome do Formato
Descrio
General Number
Exibe o nmero como ele , ou seja, sem separadores de
milhares.
Currency
Exibe o nmero com separadores de milhares, smbolo de moeda
e dois dgitos direita do ponto decimal.
Fixed
Exibe pelo menos um dgito esquerda e dois direita do ponto
decimal.
Standard
Exibe o nmero com separadores de milhares, com pelo menos
um dgito esquerda e dois direita do ponto decimal.
Percent
Exibe o nmero multiplicado por 100 e com o smbolo de

Funes Internas

Scientific
Yes/No
True/False
On/Off
Data e Hora:
Nome do Formato
General Date

Long Date
Medium Date
Short Date
Long Time
Medium Time
Short Time

porcentagem(%) exibido sua direita. Sempre exibe duas casas


decimais.
Usa a notao cientfica padro.
Exibe No se o nmero for zero. Caso contrrio, exibe Yes.
Exibe False se o nmero for zero. Caso contrrio, exibe True.
Exibe Off se o nmero for zero. Caso contrrio, exibe On.
Descrio
Para nmeros reais exibe a data e hora, como em 22/6/96 08:33
PM. Se o nmero no possuir nenhuma parte fracionria, exibe
somente a data, como em 22/6/96. Se no houver parte inteira,
exibe apenas a hora, como em 08:33 PM. A exibio da data
obedece aos ajustes atuais de seu sistema.
Exibe a data de acordo com o ajuste atual de seu sistema para
datas longas. Ex. Sbado, 22 de junho de 1996.
Exibe a data de acordo com o ajuste atual de seu sistema para
datas mdias. Ex. 22-Jun-96.
Exibe a data de acordo com o ajuste atual de seu sistema para
datas curtas. Ex. 22/06/96.
Exibe a hora de acordo com o ajuste atual de seu sistema para
horas longas. Ex. 20:33:51.
Exibe a hora de acordo com o ajuste atual de seu sistema para
horas mdias. Ex. 08:33 PM.
Exibe a hora de acordo com o ajuste atual de seu sistema para
horas curtas. Ex. 20:33.

Exemplo:
Teste = Format(12345678, General Number)
REM Teste = 12345678
Teste = Format(12345678, Currency)
REM Teste = R$12.345.678.00
Teste = Format(12345678, Fixed)
REM Teste = 12345678.00
Teste = Format(12345678, Standard)
REM Teste = 12.345.678.00
Teste = Format(12345678, Scientific)
REM Teste = 1.23E+07
Teste = Format(12345678, Yes/No)
REM Teste = Yes
Teste = Format(#22/6/96#, Long Date)
REM Teste = Sbado, 22 de Junho de 1996
Teste = Format(#22/6/96#, Medium Date)
REM Teste = 22-Jun-96
Teste = Format(#22/6/96#, Short Date)
REM Teste = 22/06/96
Teste = Format("20:33",Long Time)
REM Teste = 20:33:00
Teste = Format("20:33",Medium Time)
REM Teste = 08:33 PM
Teste = Format("20:33",Short Time)
REM Teste = 20:33

FV
Categoria: Funes Financeiras
Finalidade: Calcula o Valor Futuro de uma anuidade ou prestao.
Sintaxe: FV(Rate, Nper, Pmt[, Pv[, Type]])

Em que:
Rate - Taxa de juros no perodo.
Nper - Nmero total de pagamentos.
Pmt - Pagamento a ser feito em cada perodo.
Pv - Valor presente de uma srie de pagamentos.

Funes Internas

Type - Nmero indicando quando os pagamentos sero feitos. Use 0 se os pagamentos ocorrem no fim do perodo e 1
se os pagamentos sero feitos antecipadamente. Se omitido, 0 assumido.
Exemplo:
Rem Quanto obterei se depositar $100 por seis meses a
REM uma taxa de 2% ao ms?
Teste = FV(0.02, 6, -100)
Teste = 630.81
Rem Resposta: $ 630.81

GetAttr
Categoria: Funes de Acesso a Arquivos
Finalidade: Retorna um nmero que representa os atributos de um arquivo ou diretrio.
Sintaxe: GetAttr(Pathname)
Em que:
Pathname - Expresso string que especifica o nome do arquivo. Essa string tambm pode conter o caminho completo
(drive e diretrio) do arquivo procurado. Se o caminho no for encontrado, Null ser retornado.
Valores de Retorno:
Valor
Descrio
0
Normal
1
Read-Only (Somente Leitura)
2
Hidden (Oculto)
4
System (Sistema)
16
Diretrio
32
O arquivo foi alterado aps o ltimo
backup
Exemplo:
Teste = GetAttr("C:\IO.SYS)
Teste = 7
Rem O Arquivo IO.SYS Read-only, Hidden e System ao mesmo tempo
Rem por isso 1 + 2 + 4 = 7
Teste = GetAttr("C:\WINDOWS")

Teste = Hex(15)
Teste = Hex(5)
Teste = Hex(255)

Teste = 16

Hex
Categoria: Funes de Converso de Dados
Finalidade: Retorna uma string representando o valor hexadecimal de um nmero.
Sintaxe: Hex(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida.
Exemplo:
Teste = F
Teste = 5
Teste = FF

Hour
Categoria: Funes de Data e Hora
Finalidade: Retorna o nmero da hora (de 0 a 23) de uma hora especificada.
Sintaxe: Hour(Time)
Em que:
Time - Qualquer expresso numrica ou string que possa representar um intervalo de tempo. Se Time contm Null, o
valor de retorno da funo ser Null tambm.
Exemplo:
Teste = Hour(#8:33:17 PM#)

Teste = 20

IIf
Categoria: Funes de Verificao
Finalidade: Retorna uma de duas partes, dependendo da avaliao de uma expresso.
Sintaxe: IIf(Expresso, Truepart, Falsepart)

Em que:
Expresso - Expresso a ser avaliada.
Truepart - Valor ou expresso retornada se a expresso avaliada for verdadeira.
Falsepart - Valor ou expresso retornada se a expresso avaliada for falsa.
Exemplo:
Dado = 100
Teste = IIf(Dado > 10, Maior que Dez,Menor que Dez)
Rem Teste = Maior que Dez

InputBox
Categoria: Funes de Sistema Operacional
Finalidade: Exibe uma caixa de dilogo para que o usurio possa digitar uma resposta qualquer. Aps escolher um dos
botes disponveis, o VB retorna o valor digitado.
Sintaxe: InputBox(Prompt[, Title][, Default][, Xpos][, Ypos])
Em que:

Funes Internas

10

Prompt - Expresso string que ser exibida como mensagem na caixa de dilogo. O comprimento mximo da
mensagem de 1024 caracteres. Voc pode quebrar a mensagem em vrias linhas utilizando a combinao de caracteres
de retorno de carro Chr(13) e mudana de linha Chr(10), como em (Chr(13) & Chr(10)).
Title - Expresso string que ser exibida na barra de ttulo da caixa de dilogo. Se voc omitir este argumento, o nome
exibido na barra de ttulo ser o nome de sua aplicao.
Default Expresso string que ser retornada como default caso o usurio no digite nenhum dado na caixa de
dilogo. Se voc omitir este argumento, a textbox da caixa de dilogo ser exibida vazia.
Xpos - Expresso numrica que especifica em twips a distncia horizontal entre a borda esquerda da tela e da caixa de
dilogo. Se voc omitir este argumento, a caixa de dilogo ser centralizada horizontalmente.
Ypos - Expresso numrica que especifica em twips a distncia vertical entre a borda superior da caixa de dilogo e o
topo da tela. Se voc omitir este argumento, a caixa de dilogo ser centralizada verticalmente.
InStr
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna a posio da primeira ocorrncia de uma string dentro de outra.
Sintaxe: InStr([Incio, ]String1, String2[, Compare])
Em que:
Incio - Expresso numrica que indica a posio inicial de cada busca. Se omitido, a busca comea desde a primeira
posio.
String1 - String em que feita a procura.
String2 - Expresso string que est sendo procurada.
Compare - Especifica o tipo de comparao a ser efetuado entre as strings.
Exemplo:
Teste = InStr("Casa", "as")
Teste = 2
Rem A string as foi localizada a partir da segunda posio em Casa
Teste = InStr("Casamento", "t")
Teste = 8
Rem A string t foi localizada na oitava posio de Casamento
Teste = InStr("Casa", "z")
Teste = 0
Rem A string z no foi localizada em Casa

Int
Categoria: Funes Matemticas
Finalidade: Retorna a parte inteira de um nmero.
Sintaxe: Int(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida. Se nmero contm Null, o valor de retorno ser Null tambm.
Exemplo:
Esta funo opera de forma idntica funo Fix.
IsArray
Categoria: Funes de Verificao
Finalidade: Retorna um valor Boolean indicando se uma determinada varivel um Array.
Sintaxe: IsArray(Varname)
Em que:
Varname - Qualquer varivel de memria.
Exemplo:
Dim MeuArray(2) As Integer, Nome as String
Teste = IsArray(Nome)
Teste = False
Teste = IsArray(MeuArray)
Teste = True

IsDate
Categoria: Funes de Verificao
Finalidade: Retorna um valor Boolean indicando se uma determinada expresso pode ser convertida em uma data.
Sintaxe: IsDate(Expresso)
Em que:
Expresso - Qualquer data ou string que possa ser reconhecida como uma data ou hora vlida.
Exemplo:
Dado = "22/6/96"
Mens = hoje
Teste = IsDate(Dado)
Teste = IsDate(Mens)

Teste = True
Teste = False

IsEmpty
Categoria: Funes de Verificao
Finalidade: Retorna um valor Boolean indicando se uma determinada varivel foi inicializada ou no.
Sintaxe: IsEmpty(Expresso)
Em que:
Expresso - Qualquer expresso numrica ou string que possa ser reconhecida como um nome de varivel.
Exemplo:
Teste = IsEmpty(Dado)
Dado = Null

Teste = True

Funes Internas

11

Teste = IsEmpty(Dado)

Teste = False

IsError
Categoria: Funes de Verificao
Finalidade: Retorna um valor Boolean indicando se uma determinada expresso um valor de erro.
Sintaxe: IsError(Expresso)
Em que:
Expresso - Deve ser do tipo de dados Variant.
Exemplo:
MeuErro = CVErr(212)
Teste = IsError(MeuErro)

' Teste = True

MeuErro = 212
Teste = IsError(MeuErro)

' Teste = False

IsMissing
Categoria: Funes de Verificao
Finalidade: Retorna um valor Boolean indicando se um argumento opcional foi passado para uma procedure ou no.
Sintaxe: IsMissing(Nome do Argumento)
Em que:
Nome do Argumento - Nome de um argumento opcional em uma procedure.
A funo IsMissing retorna um valor True se o argumento especificado no foi passado funo; caso contrrio, a resposta
ser False.
Exemplo:
Function Calcula(Optional Valor)
If IsMissing(valor) Then
MsgBox(No recebi o argumento valor!)
Exit
Else
Valor = ((Valor / 100) + 1) ^ 1.12
Calcula = Valor
End If
End Function

IsNull
Categoria: Funes de Verificao
Finalidade: Retorna um valor Boolean indicando se uma expresso contm dados invlidos (Null).
Sintaxe: IsNull(Expresso)
Em que:
Expresso - Qualquer valor numrico ou expresso string.
Se a expresso avaliada tiver dados invlidos (Null), a funo resultar em True; caso contrrio, o valor retornado ser
False.
Exemplo:
Dado = ""
Teste = IsNull(Dado)

'Teste = False

Dado = Null
Teste = IsNull(Dado)

'Teste = True.

IsNumeric
Categoria: Funes de Verificao
Finalidade: Retorna um valor Boolean indicando se uma determinada expresso pode ser avaliada como um valor
numrico.
Sintaxe: IsNumeric(Expresso)
Em que:
Expresso - Qualquer valor numrico ou expresso string.
Exemplo:
Dado = "100"
Teste = IsNumeric(Dado)

'Teste = True

Dado = "cem "


Teste = IsNumeric(Dado)

'Teste = False

LBound
Categoria: Funes de Array
Finalidade: Retorna o menor elemento da dimenso especificada de um determinado Array.
Sintaxe: LBound(Arrayname[, Dimenso])
Em que:
Arrayname - Nome da varivel array.
Dimenso - Nmero que indica que dimenso do array est sendo inspecionada. Utilize 1 para a primeira dimenso, 2
para a segunda e assim por diante.
Exemplo:
Dim Dado(5 To 10)
Teste = LBound(Dado, 1)

Teste = 5

Funes Internas

12

LCase
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna uma string convertida em letras minsculas.
Sintaxe: LCase(String)
Em que:
String - Qualquer expresso string vlida.
Somente as letras maisculas sero convertidas em minsculas. Os demais caracteres, como letras minsculas, nmeros e
sinais, permanecem inalterados.
Exemplo:
Dado = CAIXA ALTA
Teste = LCase(Dado)

Teste = caixa alta

Left
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna o nmero especificado de caracteres a partir do lado esquerdo de uma string.
Sintaxe: Left(String, Comprimento)
Em que:
String - Expresso string da qual os caracteres sero retornados. Comprimento - Expresso numrica indicando
quantos caracteres sero retornados. Se igual a 0, uma string de tamanho zero ser retornada. Se o comprimento for maior
que o nmero de caracteres da string, toda ela ser retornada.
Exemplo:
Dado = "Visual Basic 4.0
Teste = Left(Dado, 1)
Teste = Left(Dado, 6)
Teste = Left(Dado, 10)

Len
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna o nmero de caracteres em uma string ou o nmero de bytes requeridos para armazenar uma varivel.
Sintaxe: Len(String | Varname)
Em que:
String - Qualquer expresso string vlida. Se a string contm Null, Null retornado.
Varname - Qualquer nome de varivel vlido. Se Varname contm Null, Null retornado. Se Varname do tipo de
dados Variant, Len trata a varivel como uma string, retornando o nmero de caracteres que ela contm.
Exemplo:
Dado = Estudo de Len
Teste = Len (Dado)
Teste = Len(Visual)
Teste = Len(Visual Basic)

Teste = V
Teste = Visual
Teste = Visual Bas

Teste = 13
Teste = 6
Teste = 12

LoadPicture
Categoria: Funes de Sistema Operacional
Finalidade: Carrega uma imagem dentro de um objeto Form object, Controle PictureBox ou controle Image.
Sintaxe: LoadPicture([Stringexpression])
Em que:
Stringexpression - Nome do arquivo grfico a ser carregado.
Os formatos de arquivo suportados pelo Visual Basic so os seguintes: Bitmap (.BMP), Icon (.ICO), Run-Length Encoded
(.RLE) e Metafile (.WMF).
Exemplo:
Rem Para exibir a imagem como fundo de um Form, PictureBox ou controle
Rem Image atribua a figura propriedade Picture.
Form1.Picture = LoadPicture("PARTY.BMP")
Rem Para atribuir um cone a um formulrio ajuste a propriedade Icon:
Form1.Icon = LoadPicture("PHONE01.ICO")

Log
Categoria: Funes Matemticas
Finalidade: Calcula o logaritmo natural de um nmero.
Sintaxe: Log(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida maior que zero.
Exemplo:
Teste = Log(0)
Teste = Log(5)

Teste = 1
Teste = 1.6094379124341

LTrim
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna uma cpia de uma string eliminando os espaos em branco existentes entre o incio da string e o
primeiro caractere.
Sintaxe: LTrim(String)
Em que:
String - Qualquer expresso string vlida. Se a string contm Null, Null retornado.
Funes Internas

13

Exemplo:
Dado = Casa
Teste = LTrim(Dado)

Teste = Casa

Mid
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna o nmero especificado de caracteres de uma string.
Sintaxe: Mid(String, Start[, Length])
Em que:
String - Qualquer expresso string vlida. Se a string contm Null, Null retornado.
Start - Posio inicial a partir da qual os caracteres sero selecionados. Se a posio inicial for maior que o nmero de
caracteres da string, uma string de tamanho zero ser retornada.
Length - Nmero de caracteres que sero selecionados. Se omitido, todos os caracteres desde a posio inicial
especificada at o fim dela sero selecionados.
Exemplo:
Dado = Visual Basic
Teste = Mid(Dado,1, 3)
Teste = Mid(Dado,4)
Teste = Mid(Dado,5,5)

Teste = Vis
Teste = ual Basic
Teste = al Ba

Minute
Categoria: Funes de Data e Hora
Finalidade: Retorna o nmero de minutos da hora especificada (de 0 a 59)
Sintaxe: Minute(Time)
Em que:
Time - Qualquer expresso numrica ou string que possa representar um intervalo de tempo. Se Time contm Null, o
valor de retorno da funo ser Null tambm.
Exemplo:
Teste = Minute(#8:33:17 PM#)

Teste = Month(#22/06/96#)

Teste = 33

Month
Categoria: Funes de Data e Hora
Finalidade: Retorna o nmero do ms de uma determinada data (de 1 a 12).
Sintaxe: Month(Data)
Em que:
Data - A data a ser avaliada pela funo.
Exemplo:
Teste = 6

MsgBox
Categoria: Funes de Sistema Operacional
Finalidade: Exibe uma mensagem em um quadro de dilogo e espera que o usurio escolha um dos botes disponveis.
Aps a seleo, o VB retorna um valor indicando o boto escolhido.
Sintaxe: MsgBox(Prompt[, Buttons][, Title])
Em que:
Prompt - Expresso string que ser exibida como mensagem na caixa de dilogo. O comprimento mximo da
mensagem de 1024 caracteres. Voc pode quebrar a mensagem em vrias linhas, utilizando a combinao de caracteres
de retorno de carro Chr(13) e mudana de linha Chr(10), como em (Chr(13) & Chr(10)).
Buttons - Expresso numrica que a soma dos valores que especificam o nmero e tipo de botes a serem exibidos.
Voc tambm pode especificar o estilo de cone a ser usado, o boto default e a modalidade da caixa de mensagem. Se
omitido, o valor default para os botes zero.
Title - Expresso string que ser exibida na barra de ttulo da caixa de dilogo. Se voc omitir este argumento, o nome
exibido na barra de ttulo ser o nome de sua aplicao.
Ajustes:
Aparncia:
Ajuste
Descrio
0
Exibe somente o boto OK (default)
1
Exibe botes OK e Cancel
2
Exibe botes Abort, Retry e Ignore
3
Exibe Yes, No e Cancel
4
Exibe os botes Yes e No
5
Exibe Retry e Cancel
16
32
48
64

Exibe cone de Parada Crtica


Exibe cone de Pergunta
Exibe cone de Ateno
Exibe cone de Informao

0
256
512

O primeiro boto default


O segundo boto default
O terceiro boto default

Funes Internas

14

0
4096

Aplicao modal. O usurio deve responder


mensagem exibida antes de prosseguir com a
execuo da aplicao atual.
Sistema modal. Todas as aplicaes so suspensas
at o usurio responder message box.

O primeiro grupo de valores descreve o nmero e o tipo de botes exibidos. O segundo grupo (16, 32, 48, 64) descreve o
estilo do cone exibido. O terceiro grupo (0, 256, 512) determina que boto o default. O quarto e ltimo grupo (0, 4096)
determina a modalidade da caixa de dilogo. Voc deve selecionar um nmero de cada grupo e somar todos para obter a
aparncia desejada para sua Message Box.
Valores de Retorno:
Valor
Boto Escolhido
1
OK
2
Cancel
3
Abort
4
Retry
5
Ignore
6
Yes
7
No
Exemplo:
Rem Exibe botes OK e Cancel e cone de Parada Crtica
Teste = MsgBox("Teste", 17, "MsgBox")
Rem Exibe Yes/No numa janela de Ateno com o primeiro boto default
Teste = MsgBox("Teste", 68, "MsgBox")

Now
Categoria: Funes de Data e Hora
Finalidade: Retorna a data e hora atuais do seu sistema.
Sintaxe: Now
Exemplo:
Teste = Now

Teste = 22/06/96 20:33:30

Oct
Categoria: Funes de Converso de Dados
Finalidade: Retorna uma string representando o valor octal de um nmero.
Sintaxe: Oct(Nmero)
Em que:
Nmero - Qualquer expresso numrica ou string vlida.
Exemplo:
Teste = Oct(8)
Teste = Oct(459)

'Teste = 10
'Teste = 713

QBColor
Categoria: Funes de Sistema Operacional
Finalidade: Retorna o valor da cor RGB correspondente ao nmero de cor informado.
Sintaxe: QBColor(cor)
Em que:
Cor - Nmero de 0 a 15 conforme descrito na seo ajustes.
Ajustes:
Nmero
Cor
Nmero
Cor
0
Black
8
Gray
1
Blue
9
Light Blue
2
Green
10
Light Green
3
Cyan
11
Light Cyan
4
Red
12
Light Red
5
Magenta
13
Light Magenta
6
Yellow
14
Light Yellow
7
White
15
Bright White
Exemplo:
Form1.BackColor = QBColor(Cor)

RGB
Categoria: Funes de Sistema Operacional
Finalidade: Retorna um nmero representando uma cor do padro RGB.
Sintaxe: RGB (Red, Green, Blue)
Em que:
Red - Nmero entre 0 to 255, inclusive, que representa o componente vermelho de uma cor.
Green - Nmero entre 0 to 255, inclusive, que representa o componente verde de uma cor.
Blue - Nmero entre 0 to 255, inclusive, que representa o componente azul de uma cor.
Funes Internas

15

Exemplo:
Commdialog.Color = RGB(255, 0, 0)

Right
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna o nmero especificado de caracteres a partir do lado direito de uma string.
Sintaxe: Right(String, Comprimento)
Em que:
String - Expresso string da qual os caracteres sero retornados.
Comprimento - Expresso numrica indicando quantos caracteres sero retornados. Se igual a 0, uma string de
tamanho zero ser retornada. Se o comprimento for maior que o nmero de caracteres da string, toda ela ser retornada.
Exemplo:
Dado = "Visual Basic 4.0
Teste = Right(Dado, 1)
Teste = Right(Dado, 6)
Teste = Right(Dado, 10)

Teste = 0
Teste = ic 4.0
Teste = Basic 4.0

Rnd
Categoria: Funes Matemticas
Finalidade: Retorna um nmero aleatrio (randmico).
Sintaxe: Rnd[(Nmero)]

Em que:
Nmero - Qualquer expresso numrica vlida.
Esta funo retorna um valor menor que 1 e maior ou igual a zero.
Exemplo:
Teste = Rnd

Rtrim
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna uma cpia de uma string, eliminando os espaos existentes entre o ltimo caractere da string e o fim
dela.
Sintaxe: RTrim(String)

Em que:
String - Qualquer expresso string vlida. Se a string contm Null, Null retornado.
Exemplo:
Dado = Casa
Teste = LTrim(Dado)

Teste = Second(#8:33:17 PM#)

Teste = Casa

Second
Categoria: Funes de Data e Hora
Finalidade: Retorna o nmero de segundos da hora especificada (de 0 a 59).
Sintaxe: Second(Time)
Em que:
Time - Qualquer expresso numrica ou string que possa representar um intervalo de tempo. Se Time contm Null, o
valor de retorno da funo ser Null tambm.
Exemplo:
Teste = 17

Sgn
Categoria: Funes Matemticas
Finalidade: Retorna um inteiro conforme o sinal do nmero.
Sintaxe: Sgn(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida.
Ajustes:
Se Nmero:
Sgn Retorna:
Maior que zero
1
Igual a zero
0
menor que zero
-1
Exemplo:
Teste = Sgn(12)
Teste = Sgn(-2.4)
Teste = Sgn(0)

' Teste = 1
' Teste = -1
' Teste = 0

Shell
Categoria: Funes de Sistema Operacional
Finalidade: Inicia a execuo de um programa qualquer.
Sintaxe: Shell(Pathname[, Windowstyle])
Em que:

Funes Internas

16

Pathname - Nome do programa a ser executado. Pode incluir eventuais argumentos na linha de comando. Tambm
pode incluir o diretrio e drive onde est localizado o executvel. Voc tambm pode informar o nome do documento se ele
tiver sua extenso associada a um executvel no Windows (exemplo: .TXT abre o Notepad).
Windowstyle - Nmero que corresponde ao estilo da janela em que o programa ser executado. Se omitido, o programa
ser executado minimizado.
Ajustes:
Valor
Descrio
0
A janela oculta e o foco passado para
essa janela.
1
A janela tem o foco e restaurada para seu
tamanho e posio originais.
2
A janela exibida como um cone com foco.
3
A janela maximizada com foco.
4
A janela restaurada ao seu mais recente
tamanho e posio. A janela corrente
permanece ativa.
6
A janela exibida como um cone. A janela
corrente permanece ativa.
Exemplo:
Teste = Shell("C:\WINDOWS\NOTEPAD.EXE", 1)

Sin
Categoria: Funes Matemticas
Finalidade: Calcula o seno de um nmero.
Sintaxe: Sin(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida que expresse um ngulo em radianos.
Exemplo:
Teste = Sin(1.25)
Teste = Sin(.79)

Teste = 0.948984619355586
Teste = 0.710353272417608

Space
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna uma string com o nmero de espaos em branco especificado pelo usurio.
Sintaxe: Space(Nmero)
Em que:
Nmero - A quantidade de espaos em branco que voc quer incluir na string.
Exemplo:
Dado = Passo
Teste = Dado & Space(2) & Dado

Teste = Sqr(16)

Teste = 4

Str
Categoria: Funes de Converso de Dados
Finalidade: Retorna uma string representando o valor de um nmero.
Sintaxe: Str(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida.
Exemplo:
Teste = Str(123)
Teste = Str(2000)

Teste = Passo Passo

Sqr
Categoria: Funes Matemticas
Finalidade: Calcula a raiz quadrada de um nmero.
Sintaxe: Sqr(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida maior ou igual a zero.
Exemplo:

' Teste = " 123"


' Teste = "2000

StrComp
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna um valor indicando o resultado de uma comparao de strings (se maior, igual ou menor).
Sintaxe: StrComp(String1, String2[, Compare])
Em que:
String1 - Qualquer expresso string vlida.
String2 - Qualquer expresso string vlida.
Compare - Especifica o tipo de comparao a ser efetuado.
Ajustes:
Se:
StrComp Retorna:
String1 Menor que String2
-1

Funes Internas

17

String1 igual String2


String1 maior que String2
String1 ou String2 Null

0
1
Null

Exemplo:
Dado1 = "ABCD"
Dado2 = "abcd"
Teste = StrComp(Dado1, Dado2, 1)
Teste = StrComp(Dado1, Dado2, 0)
Teste = StrComp(Dado2, Dado1)

' Teste = 0.
' Teste = -1.
' Teste = 1.

StrConv
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna uma string convertida de acordo com a operao especificada pelo usurio.
Sintaxe: StrConv(String, Conversion)
Em que:
String - A string a ser convertida.
Conversion - A soma dos valores que especificam o tipo da converso a ser feita.
Ajustes:
Valor
Descrio
1
Converte a string em caracteres maisculos.
2
Converte a string em caracteres minsculos.
3
Converte a primeira letra de cada palavra da string
em maiscula.
Exemplo:
Dado = visual basic
Teste = StrConv(dado, 3)

Teste = String(5, "*")


Teste = String(5, 42)
Teste = String(10, "ABC")

Teste = Visual Basic

String
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna uma string com caracteres repetidos no comprimento especificado pelo usurio.
Sintaxe: String(Nmero, Caractere)
Em que:
Nmero - Comprimento da string a ser retornada.
Caractere - Cdigo do caractere ou expresso string cujo primeiro caractere ser utilizado para construo da nova
string.
Exemplo:
'Teste = "*****"
'Teste = "*****".
'Teste = "AAAAAAAAAA".

Tan
Categoria: Funes Matemticas
Finalidade: Calcula a tangente de um nmero.
Sintaxe: Tan(Nmero)
Em que:
Nmero - Qualquer expresso numrica vlida que expresse um ngulo em radianos.
Exemplo:
Teste = Tan(.79)

Teste = 1.00924628838275

Time
Categoria: Funes de Data e Hora
Finalidade: Retorna a hora atual do sistema.
Sintaxe: Time
Exemplo:
Teste = Time

Teste = 23:44:07

Timer
Categoria: Funes de Data e Hora
Finalidade: Retorna o nmero de segundos decorridos desde 0:00h (de 0 a 59).
Sintaxe: Timer
Exemplo:
Teste = Timer

Teste = 85591.6

TimeSerial
Categoria: Funes de Data e Hora
Finalidade: Retorna um Variant com o valor da hora, minuto e segundo especificado.
Sintaxe: TimeSerial(Hora, Minuto, Segundo)
Em que:
Hora - Nmero entre 0 e 23 inclusive.
Minuto - Qualquer expresso numrica.
Segundo - Qualquer expresso numrica.

Funes Internas

18

Exemplo:
REM Retorna a hh:mm:ss de 20:13:45
Teste = TimeSerial(20, 13, 45)

REM Converte uma string num horrio


Teste = TimeValue("14:00:23")

Teste = 20:13:45

TimeValue
Categoria: Funes de Data e Hora
Finalidade: Retorna um valor de hora.
Sintaxe: TimeValue(Tempo)
Em que:
Tempo - Expresso string representando uma hora entre 0:00:00 e 23:59:59 inclusive. Voc tambm pode utilizar
qualquer expresso que represente uma indicao de tempo dentro da faixa de valores vlidos. O VB tambm aceita a
notao AM/PM como em 2:00PM.
Exemplo:
Teste = 14:00:23

Trim
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna uma cpia de uma string, eliminando os espaos existentes entre o incio da string e o primeiro
caractere, e o ltimo caractere da string e o fim dela.
Sintaxe: Trim(String)
Em que:
String - Qualquer expresso string vlida. Se a string contm Null, Null retornado.
Exemplo:
Dado = Casa
Teste = LTrim(Dado)

Teste = Casa

TypeName
Categoria: Funes de Verificao
Finalidade: Retorna uma string que informa qual o tipo de dados da varivel analisada.
Sintaxe: TypeName(Varname)
Em que:
Varname - Qualquer varivel de memria.
Ajustes:
String Retornada:
Varivel Contm:
Byte
Byte
Integer
Integer
Long
Long integer
Single
Single
Double
Double
Currency
Currency
Date
Date
String
String
Boolean
Boolean
Error
Um valor de erro
Empty
No inicializada
Null
Dado Invlido
Object
Um objeto que suporta OLE
Exemplo:
Dim Dado As Integer
Teste = TypeName(Dado)

Dim Dado(5 To 10)


Teste = UBound(Dado, 1)

Teste = Integer

Ubound
Categoria: Funes de Array
Finalidade: Retorna o maior elemento da dimenso especificada de um determinado array.
Sintaxe: UBound(Arrayname[, Dimenso])
Em que:
Arrayname - Nome da varivel array.
Dimenso - Nmero que indica que dimenso do array est sendo inspecionada. Utilize 1 para a primeira dimenso, 2
para a segunda e assim por diante.
Exemplo:
Teste = 10

UCase
Categoria: Funes de Manipulao de Strings
Finalidade: Retorna uma string convertida em letras maisculas.
Sintaxe: UCase(String)
Em que:
String - Qualquer expresso string vlida.

Funes Internas

19

Somente as letras minsculas sero convertidas em maisculas. Os demais caracteres, como nmeros e sinais,
permanecem inalterados.
Exemplo:
Dado = caixa alta
Teste = UCase(Dado)

Teste = Val("2457")
Teste = Val(" 2 45 7")
Teste = Val("24 and 57")

Teste = CAIXA ALTA

Val
Categoria: Funes de Converso de Dados
Finalidade: Retorna os nmeros contidos em uma string.
Sintaxe: Val(String)
Em que:
String - Qualquer expresso string vlida.
Exemplo:
'Teste = 2457.
'Teste = 2457.
'Teste = 24.

VarType
Categoria: Funes de Verificao
Finalidade: Retorna um valor indicando o subtipo de uma varivel.
Sintaxe: VarType(Varname)
Em que:
Varname - Qualquer varivel de memria vlida.
Ajustes:
Valor
Descrio da Varivel
0
Empty
1
Null
2
Integer
3
Long integer
4
Single
5
Double
6
Currency
7
Date
8
String
9
OLE Automation object
10
Error
11
Boolean
12
Variant (usada somente com arrays de Variants)
13
No OLE Automation object
17
Byte
8192
Array
Exemplo:
Dim Dado As Integer
Teste = VarType(Dado)

Teste = WeekDay(#6/22/96#)

Teste = 2

Weekday
Categoria: Funes de Data e Hora
Finalidade: Retorna o nmero do dia da semana (1 - Domingo, etc.).
Sintaxe: Weekday(Data, [Firstdayofweek])
Em que:
Data - Expresso string ou numrica representando uma data. Se Data contm Null, Null retornado.
Firstdayofweek - Uma constante que define o primeiro dia da semana. Caso voc no especifique, o domingo ser
considerado como primeiro dia. Veja a seo Ajustes da funo DateDiff para maiores detalhes.
Exemplo:
Teste = 7

Year
Categoria: Funes de Data e Hora
Finalidade: Retorna o nmero do ano de uma determinada data.
Sintaxe: Year(Data)
Em que:
Data - Expresso string ou numrica representando uma data. Se Data contm Null, Null retornado.
Exemplo:
Teste = Year(#6/22/96#)

Teste = 1996

Funes Internas

20

Coleo de Exemplos
e definies de
FUNES VB 5

Funes Internas

21

Exemplo da diretiva #Const


Este exemplo utiliza a diretiva #Const para declarar constantes de compilao condicional para uso em construes
#If...#Else...#End If.
#Const DebugVersion = 1 ' Avaliar verdadeiro no bloco #If.
Exemplo da construo #If...Then...#Else
Este exemplo faz referncia a constantes de compilao condicional em uma construo #If...Then...#Else para determinar
se certas instrues sero compiladas.
' Se Mac avalia como verdadeiro, as instrues que se seguem a #If tambm o fazem.
#If Mac Then
'. Insere aqui exclusivamente instrues Mac.
'.
'.
' Caso contrrio, se for um programa do Windows de 32 bits, faz o seguinte:
#ElseIf Win32 Then
'. Insere aqui exclusivamente instrues do Windows de 32 bits.
'.
'.
' Caso contrrio, se no for uma coisa nem outra, faz o seguinte:
#Else
'. Insere aqui outras instrues de plataforma.
'.
'.
#End If

Diretiva #Const
Utilizada para definir constantes condicionais do compilador no Visual Basic.
Sintaxe
#Const nomedaconst = expresso
A sintaxe da diretiva de compilador #Const possui estas partes:
Parte
Descrio
nomedaconstante
Obrigatria; Variant (String). Nome da constante; obedece as
convenes padronizadas para nomenclatura de varivel.
expresso
Obrigatria. Literal, outra constante condicional do compilador,
ou qualquer combinao que inclua algum ou todos os
operadores aritmticos ou lgicos, exceto Is.
u

Comentrios
As constantes condicionais do compilador so sempre Private para o mdulo no qual aparecem. No possvel criar
constantes do compilador Public utilizando a diretiva #Const. Constantes do compilador Public s podem ser criadas na
interface do usurio.
Somente constantes condicionais do compilador e literais podem ser utilizadas em expresso. A utilizao de uma
constante padro definida com Const ou de uma constante indefinida causar a ocorrncia de um erro. Contrariamente, as
constantes definidas utilizando-se a palavra-chave #Const podem ser utilizadas somente para compilao condicional.
As constantes condicionais do compilador so sempre avaliadas no nvel do mdulo, independentemente da sua posio
no cdigo.

Diretiva #If...Then...#Else
Compila condicionalmente blocos selecionados do cdigo do Visual Basic.
Sintaxe
#If expresso Then
instrues
[#ElseIf expresso-n Then
[instrueselseif]]
[#Else
[instrueselse]]
#End If
A sintaxe da diretiva #If...Then...#Else possui estas partes:
Parte
Descrio
expresso
Obrigatria. Qualquer expresso, consistindo exclusivamente de
uma ou mais constantes condicionais do compilador, literais e
operadores que so avaliados como True ou False.

Funes Internas

22

instrues

Obrigatria. Linhas de programa ou diretivas de compilador do


Visual Basic que so avaliadas se a expresso associada for
True.

expresso-n

Opcional. Qualquer expresso, consistindo exclusivamente de


uma ou mais constantes condicionais do compilador, literais e
operadores que so avaliados como True ou False.
Opcional. Uma ou mais linhas de programa ou diretivas de
compilador que sero avaliadas se expresso-n for True.
Opcional. Uma ou mais linhas de programa ou diretivas de
compilador que sero avaliadas se nenhuma expresso ou
expresso-n anterior for True.

instrueselseif
instrueselse

Comentrios
O comportamento da diretiva #If...Then...#Else igual ao da instruo If...Then...Else, exceto que no h um formulrio de
linha nica para as diretivas #If, #Else, #ElseIf e #End If; isto , nenhum outro cdigo pode aparecer na mesma linha que
qualquer das diretivas. A compilao condicional normalmente utilizada para compilar o mesmo programa para
plataformas diferentes. Tambm utilizada para evitar que o cdigo de depurao aparea em um arquivo executvel. O
cdigo excludo durante a compilao condicional omitido completamente do arquivo executvel final e, desta forma, ele
no afeta seu tamanho ou desempenho.
Independentemente do resultado de qualquer avaliao, todas as expresses so avaliadas. Portanto, todas as constantes
utilizadas em expresses devem ser definidas; qualquer constante no definida avaliada como Empty.
Observao A instruo Option Compare no afeta expresses em instrues #If e #ElseIf. Expresses em uma diretiva
de compilador condicional so sempre avaliadas com Option Compare Text.

Constantes do Visual Basic


O Visual Basic para Aplicativos define as constantes para simplificar sua programao. As constantes a seguir podem ser
utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:

Constantes do calendrio
As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbCalGreg
0
Indica que o calendrio gregoriano utilizado
vbCalHijri
1
Indica que o calendrio Hijri utilizado

Constantes do compilador
O Visual Basic para Aplicativos define as constantes para utilizao exclusiva com a diretiva #If...Then...#Else. Essas
constantes so funcionalmente equivalentes s constantes definidas com a diretiva #If...Then...#Else, exceto que elas so
globais no que se refere ao escopo; isto , elas se aplicam a todo o projeto.
Em plataformas de desenvolvimento de 16 bits, as constantes do compilador so definidas da seguinte maneira:
Constante
Valor
Descrio
Win16
True
Indica que o ambiente de desenvolvimento de 16 bits.
Win32
False
Indica que o ambiente de desenvolvimento no de 32 bits.
Em plataformas de desenvolvimento de 32 bits, as constantes do compilador so definidas da seguinte maneira:
Constante
Valor
Descrio
Win16
False
Indica que o ambiente de desenvolvimento no de 16 bits.
Win32
True
Indica que o ambiente de desenvolvimento de 32 bits.
Observao Essas constantes so fornecidas pelo Visual Basic. Sendo assim voc no pode definir suas prprias
constantes com esses mesmos nomes em qualquer nvel.

Funes Internas

23

Constantes Date
As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Valores do argumento
O argumento primeirodiadasemana possui os valores a seguir:
Constante
Valor
Descrio
vbUseSystem
0
Utiliza a definio NLS API.
VbSunday
1
Domingo (padro)
vbMonday
2
Segunda
vbTuesday
3
Tera
vbWednesday
4
Quarta
vbThursday
5
Quinta
vbFriday
6
Sexta
vbSaturday
7
Sbado
O argumento primeirodiadoano possui os valores a seguir:
Constante
Valor
Descrio
vbUseSystem
0
Utiliza a definio NLS API.
VbFirstJan1
1
Inicia com a semana na qual ocorre o dia 1 de janeiro
(padro).
VbFirstFourDays
2
Inicia com a primeira semana que possui pelo menos
quatro dias do ano novo.
VbFirstFullWeek
3
Inicia com a primeira semana completa do ano.
Valores de retorno
Constante
vbSunday
vbMonday
vbTuesday
vbWednesday
vbThursday
vbFriday
vbSaturday

Valor
1
2
3
4
5
6
7

Descrio
Domingo
Segunda
Tera
Quarta
Quinta
Sexta
Sbado

Constantes Dir, GetAttr e SetAttr


As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbNormal
0
Normal (padro de Dir e SetAttr)
vbReadOnly
1
Somente leitura
vbHidden
2
Oculto
vbSystem
4
Arquivo do sistema
vbVolume
8
Rtulo do volume
vbDirectory
16
Diretrio ou pasta
vbArchive
32
O arquivo foi alterado desde o ltimo backup

Constantes IMEStatus
As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
As constantes referentes localidade japonesa so as seguintes:
Constante
Valor
Descrio
vbIMENoOp
0
Nenhum IME instalado
vbIMEOn
1
IME ligado
vbIMEOff
2
IME desligado
vbIMEDisable
3
IME desativado
vbIMEHiragana
4
Caracteres de duplo byte Hiragana (DBC)
vbIMEKatakanaDbl
5
Katakana DBC
vbIMEKatakanaSng
6
Caracteres de byte simples Katakana (SBC)
vbIMEAlphaDbl
7
DBC alfanumrico
vbIMEAlphaSng
8
SBC alfanumrico
As constantes para a localidade chinesa (em chins tradicional e simplificado) so as seguintes:
Constante
Valor
Descrio
vbIMENoOp
0
Nenhum IME instalado
vbIMEOn
1
IME ligado
vbIMEOff
2
IME desligado
Para a localidade coreana, os cinco primeiros bits do valor de retorno so os seguintes:
Bit
Valor
Descrio
Valor
Descrio
0
0
Nenhum IME instalado
1
IME instalado
1
0
IME desativado
1
IME ativado
2
0
Modo ingls IME
1
Modo Hangeul
3
0
Modo Banja (SBC)
1
Modo Junja (DBC)

Funes Internas

24

Modo normal

Modo de converso Hanja

Constantes Instr e StrComp


As constantes a seguir so definidas na biblioteca de tipos do Visual Basic para Aplicativos e podem ser utilizadas em
qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbBinaryCompare
0
Realiza a comparao binria
vbTextCompare
1
Realiza a comparao textual
vbDatabaseCompare
2
Para o Microsoft Access, realiza a
comparao baseada nas informaes
contidas em seu banco de dados.

Constantes diversas
As constantes a seguir so definidas na biblioteca de tipos do Visual Basic para Aplicativos e podem ser utilizadas em
qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Equivalente
Descrio
vbCrLf
Chr(13) + Chr(10)
Combinao de retorno de carro e
alimentao de linha
vbCr
Chr(13)
Caractere de retorno de carro
vbLf
Chr(10)
Caractere de alimentao de linha
vbNewLine
Chr(13) + Chr(10) ouCaractere de linha nova especfico de uma
Chr(13)
plataforma; aquele que seja apropriado
plataforma atual
vbNullChar
Chr(0)
Caractere que possui o valor 0
vbNullString
Seqncia contendo oNo o mesmo que a seqncia de
valor 0
comprimento zero (""); utilizada para
chamar procedimentos externos
vbTab
Chr(9)
Caractere de tabulao
vbBack
Chr(8)
Caractere de backspace
vbFormFeed
Chr(12)
No til no Microsoft Windows
vbVerticalTab
Chr(11)
No til no Microsoft Windows

Constantes MsgBox
As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Argumentos MsgBox
Constante
Valor
Descrio
vbOKOnly
0
Apenas o boto OK (padro)
vbOKCancel
1
Botes OK e Cancelar
vbAbortRetryIgnore
2
Botes Anular, Repetir e Ignorar
vbYesNoCancel
3
Botes Sim, No e Cancelar
vbYesNo
4
Botes Sim e No
vbRetryCancel
5
Botes Repetir e Cancelar
vbCritical
16
Mensagem crtica
vbQuestion
32
Consulta de aviso
vbExclamation
48
Mensagem de aviso
vbInformation
64
Mensagem de informao
vbDefaultButton1
0
Primeiro boto o padro (padro)
vbDefaultButton2
256
Segundo boto o padro
vbDefaultButton3
512
Terceiro boto o padro
vbDefaultButton4
768
Quarto boto o padro
vbApplicationModal
0
Caixa de mensagem relativa ao modo do
aplicativo (padro)
vbSystemModal
4096
Caixa de mensagem relativa ao modo do
sistema
Valores de retorno de MsgBox
Constante
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo

Valor
1
2
3
4
5
6
7

Descrio
Boto OK pressionado
Boto Cancelar pressionado
Boto Anular pressionado
Boto Repetir pressionado
Boto Ignorar pressionado
Boto Sim pressionado
Boto No pressionado

Funes Internas

25

Constantes Shell
As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbHide
0
A janela est oculta e o foco passado para a
janela oculta.
vbNormalFocus
1
A janela recebe o foco e restaurada para seu
tamanho e posio originais.
vbMinimizedFocus
2
A janela exibida como um cone com o foco
sobre ela.
vbMaximizedFocus
3
A janela maximizada com o foco.
vbNormalNoFocus
4
A janela restaurada para o tamanho e posio
mais recentes. A janela atualmente ativa
permanece ativa.
vbMinimizeNoFocus
6
A janela exibida como um cone. A janela
atualmente ativa permanece ativa.

Constantes StrConv
As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbUpperCase
1
Converte a seqncia em caracteres maisculos.
VbLowerCase
2
Converte a seqncia em caracteres minsculos.
VbProperCase
3
Converte a primeira letra de cada palavra da
seqncia em maisculas.
VbWide
4
Converte os caracteres estreitos (de byte simples) da
seqncia em caracteres largos (de byte duplo).
Aplicvel s localidades do oriente.
VbNarrow
8
Converte os caracteres largos (de byte duplo) da
seqncia em caracteres estreitos (de byte simples).
Aplicvel s localidades do oriente.
VbKatakana
16
Converte caracteres Hiragana da seqncia em
caracteres Katakana. Aplicvel apenas ao Japo.
vbHiragana
32
Converte os caracteres Katakana da seqncia em
caracteres Hiragana. Aplicvel apenas ao Japo.
vbUnicode
64
Converte a seqncia para Unicode utilizando a
pgina de cdigo padro do sistema.
vbFromUnicode
128
Converte a seqncia de Unicode para a pgina de
cdigos padro do sistema.

Constantes VarType
As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbEmpty
0
No-inicializada (padro)
vbNull
1
No contm dados vlidos
vbInteger
2
Integer
vbLong
3
Inteiro longo
vbSingle
4
Nmero de vrgula flutuante de preciso nica
vbDouble
5
Nmero de vrgula flutuante de preciso dupla
vbCurrency
6
Currency
vbDate
7
Date
vbString
8
String
vbObject
9
Objeto
vbError
10
Erro
vbBoolean
11
Boolean
vbVariant
12
Variant (utilizada apenas para as matrizes de variantes)
vbDataObject
13
Objeto de acesso a dados
vbDecimal
14
Decimal
vbByte
17
Byte
vbArray
8192
Matriz

Constantes de cor
As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbBlack
0x0
Preto
vbRed
0xFF
Vermelho

Funes Internas

26

vbGreen
vbYellow
vbBlue
vbMagenta
vbCyan
vbWhite

0xFF00
0xFFFF
0xFF0000
0xFF00FF
0xFFFF00
0xFFFFFF

Verde
Amarelo
Azul
Magenta
Ciano
Branco

Constantes de cdigo de tecla


As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbKeyLButton
0x1
Boto esquerdo do mouse
vbKeyRButton
0x2
Boto direito do mouse
vbKeyCancel
0x3
Tecla CANCEL
vbKeyMButton
0x4
Boto do meio do mouse
vbKeyBack
0x8
Tecla BACKSPACE
vbKeyTab
0x9
Tecla TAB
vbKeyClear
0xC
Tecla CLEAR
vbKeyReturn
0xD
Tecla ENTER
vbKeyShift
0x10
Tecla SHIFT
vbKeyControl
0x11
Tecla CTRL
vbKeyMenu
0x12
Tecla MENU
vbKeyPause
0x13
Tecla PAUSE
vbKeyCapital
0x14
Tecla CAPS LOCK
vbKeyEscape
0x1B
Tecla ESC
vbKeySpace
0x20
Tecla SPACEBAR
vbKeyPageUp
0x21
Tecla PAGE UP
vbKeyPageDown
0x22
Tecla PAGE DOWN
vbKeyEnd
0x23
Tecla END
vbKeyHome
0x24
Tecla HOME
vbKeyLeft
0x25
Tecla SETA ESQUERDA
vbKeyUp
0x26
Tecla SETA ACIMA
vbKeyRight
0x27
Tecla SETA DIREITA
vbKeyDown
0x28
Tecla SETA ABAIXO
vbKeySelect
0x29
Tecla SELECT
vbKeyPrint
0x2A
Tecla PRINT SCREEN
vbKeyExecute
0x2B
Tecla EXECUTE
vbKeySnapshot
0x2C
Tecla SNAPSHOT
vbKeyInsert
0x2D
Tecla INSERT
vbKeyDelete
0x2E
Tecla DELETE
vbKeyHelp
0x2F
Tecla HELP
vbKeyNumlock
0x90
Tecla NUM LOCK
As teclas de A a Z so as mesmas teclas ASCII de A a Z equivalentes:
Constante
Valor
Descrio
vbKeyA
65
Tecla A
vbKeyB
66
Tecla B
vbKeyC
67
Tecla C
vbKeyD
68
Tecla D
vbKeyE
69
Tecla E
vbKeyF
70
Tecla F
vbKeyG
71
Tecla G
vbKeyH
72
Tecla H
vbKeyI
73
Tecla I
vbKeyJ
74
Tecla J
vbKeyK
75
Tecla K
vbKeyL
76
Tecla L
vbKeyM
77
Tecla M
vbKeyN
78
Tecla N
vbKeyO
79
Tecla O
vbKeyP
80
Tecla P
vbKeyQ
81
Tecla Q
vbKeyR
82
Tecla R
vbKeyS
83
Tecla S
vbKeyT
84
Tecla T
vbKeyU
85
Tecla U
vbKeyV
86
Tecla V
vbKeyW
87
Tecla W
vbKeyX
88
Tecla X
vbKeyY
89
Tecla Y

Funes Internas

27

vbKeyZ

90

Tecla Z

As teclas de 0 a 9 so as mesmas teclas ASCII de 0 a 9 equivalentes:


Constante Valor
Descrio
vbKey0
48
Tecla 0
vbKey1
49
Tecla 1
vbKey2
50
Tecla 2
vbKey3
51
Tecla 3
vbKey4
52
Tecla 4
vbKey5
53
Tecla 5
vbKey6
54
Tecla 6
vbKey7
55
Tecla 7
vbKey8
56
Tecla 8
vbKey9
57
Tecla 9
As constantes a seguir representam teclas no teclado numrico:
Constante
Valor
Descrio
vbKeyNumpad0
0x60
Tecla 0
vbKeyNumpad1
0x61
Tecla 1
vbKeyNumpad2
0x62
Tecla 2
vbKeyNumpad3
0x63
Tecla 3
vbKeyNumpad4
0x64
Tecla 4
vbKeyNumpad5
0x65
Tecla 5
vbKeyNumpad6
0x66
Tecla 6
vbKeyNumpad7
0x67
Tecla 7
vbKeyNumpad8
0x68
Tecla 8
vbKeyNumpad9
0x69
Tecla 9
vbKeyMultiply
0x6A
Tecla SINAL DE MULTIPLICAO (*)
vbKeyAdd
0x6B
Tecla SINAL DE ADIO (+)
vbKeySeparator
0x6C
Tecla ENTER
vbKeySubtract
0x6D
Tecla SINAL DE SUBTRAO ()
vbKeyDecimal
0x6E
Tecla PONTO DECIMAL (.)
vbKeyDivide
0x6F
Tecla SINAL DE DIVISO (/)
As constantes a seguir representam teclas de funo:
Constante
Valor
Descrio
vbKeyF1
0x70
Tecla F1
vbKeyF2
0x71
Tecla F2
vbKeyF3
0x72
Tecla F3
vbKeyF4
0x73
Tecla F4
vbKeyF5
0x74
Tecla F5
vbKeyF6
0x75
Tecla F6
vbKeyF7
0x76
Tecla F7
vbKeyF8
0x77
Tecla F8
vbKeyF9
0x78
Tecla F9
vbKeyF10
0x79
Tecla F10
vbKeyF11
0x7A
Tecla F11
vbKeyF12
0x7B
Tecla F12
vbKeyF13
0x7C
Tecla F13
vbKeyF14
0x7D
Tecla F14
vbKeyF15
0x7E
Tecla F15
vbKeyF16
0x7F
Tecla F16

Funes Internas

28

Constantes da cor do sistema


As constantes a seguir podem ser utilizadas em qualquer parte do seu cdigo no lugar dos valores reais:
Constante
Valor
Descrio
vbScrollBars
0x80000000
Cor da barra de rolagem
vbDesktop
0x80000001
Cor da rea de trabalho
vbActiveTitleBar
0x80000002
Cor da barra de ttulo da janela
ativa
vbInactiveTitleBar
0x80000003
Cor da barra de ttulo da janela
inativa
vbMenuBar
0x80000004
Cor de segundo plano do menu
vbWindowBackground
0x80000005
Cor de segundo plano da janela
vbWindowFrame
0x80000006
Cor da moldura da janela
vbMenuText
0x80000007
Cor do texto nos menus
vbWindowText
0x80000008
Cor do texto nas janelas
vbTitleBarText
0x80000009
Cor do texto na legenda, caixa de
dimensionamento e seta de
rolagem
vbActiveBorder
0x8000000A
Cor da borda da janela ativa
vbInactiveBorder
0x8000000B
Cor da borda da janela inativa
vbApplicationWorkspace
0x8000000C
Cor de segundo plano dos
aplicativos
de
interface
de
mltiplos
documentos
(MDI,
Multiple-Document Interface)
vbHighlight
0x8000000D
Cor de segundo plano dos itens
selecionados em um controle
vbHighlightText
0x8000000E
Cor
do
texto
dos
itens
selecionados em um controle
vbButtonFace
0x8000000F
Cor
de
sombreamento
da
superfcie dos botes de comando
vbButtonShadow
0x80000010
Cor
de
sombreamento
da
extremidade dos botes de
comando
vbGrayText
0x80000011
Texto acinzentado (desativado)
vbButtonText
0x80000012
Cor do texto dos botes de
pressionamento
vbInactiveCaptionText
0x80000013
Cor do texto de uma legenda ativa
vb3DHighlight
0x80000014
Cor de realce de elementos de
exibio em 3-D
vb3DDKShadow
0x80000015
Cor de sombreamento mais
escura dos elementos de exibio
em 3-D
vb3DLight
0x80000016
Segunda cor 3-D mais clara
depois de vb3DHighlight
vbInfoText
0x80000017
Cor do texto das Dicas de
ferramentas
vbInfoBackground
0x80000018
Cor de segundo plano das Dicas
de ferramentas
Exemplo da instruo Call
Este exemplo ilustra como a instruo Call utilizada para transferir o controle para um procedimento Sub, uma funo
intrnseca, um procedimento da biblioteca de vinculao dinmica (DLL) e um procedimento.
' Chama um procedimento Sub.
Call PrintToDebugWindow("Al Mundo")
' A instruo anterior faz com que o controle seja passado ao procedimento
' Sub seguinte.
Sub PrintToDebugWindow(AnyString)
Debug.Print AnyString ' Imprime na janela Depurar.
End Sub
' Chama uma funo intrnseca. O valor de retorno da funo descartado.
Call Shell(AppName, 1) ' AppName contm o caminho do
arquivo executvel.
' Chama um procedimento DLL do Microsoft Windows. A
' instruo Declare deve ser Private em um Mdulo de
' classe, mas no em um Mdulo padro.
Private Declare Sub MessageBeep Lib "Usurio" (ByVal N As Integer)
Sub CallMyDll()
Call MessageBeep(0) ' Chama o procedimento DLL do Windows.
MessageBeep 0 ' Chama novamente sem a palavra-chave Call.
Funes Internas

29

End Sub
Exemplo da funo Choose
Este exemplo utiliza a funo Choose para exibir um nome em resposta a um ndice passado ao procedimento no
parmetro Ind.
Function GetChoice(Ind As Integer)
GetChoice = Choose(Ind, "Expresso", "United", "Federal")
End Function

Funes Internas

30

Exemplo da funo DoEvents


Este exemplo utiliza a funo DoEvents para fazer com que se saia para o sistema operacional uma vez a cada 1000
iteraes do loop. DoEvents retorna o nmero de formulrios abertos do Visual Basic, mas somente quando o aplicativo
host for o Visual Basic.
' Cria uma varivel para conter o nmero de formulrios ' do Visual Basic carregados e visveis.
Dim I, AbreFormulrios
For I = 1 To 150000' Inicia o loop.
If I Mod 1000 = 0 Then
' Se o loop tiver se repetido 1000 vezes.
AbreFormulrios = DoEvents ' Submete-se ao sistema operacional.
End If
Next I' Incrementa o contador de loops.
Exemplo da instruo Do...Loop
Este exemplo mostra como as instrues Do...Loop podem ser utilizadas. A instruo Do...Loop interna faz o loop 10 vez,
define o valor do sinalizador como False e sai prematuramente utilizando a instruo Exit Do. O loop externo sai
imediatamente aps a verificao do valor do sinalizador.
Dim Controle, Contador
Controle = True: Contador = 0 ' Inicializa as variveis.
Do ' Loop externo.
Do While Contador < 20 ' Loop interno.
Contador = Contador + 1 ' Incrementa o Contador.
If Contador = 10 Then ' Se a condio for True.
Controle = False ' Define o valor do sinalizador como False.
Exit Do ' Sai do loop interno.
End If
Loop
Loop Until Controle = False ' Sai do loop externo imediatamente.
Exemplo da instruo End
Este exemplo utiliza a instruo End para encerrar a execuo do cdigo se o usurio inserir uma senha invlida.
Sub Form_Load
Dim Senha, ASenha
Senha = "Swordfish"
ASenha = InputBox("Digite a sua senha")
If ASenha <> Senha Then
MsgBox "Sinto muito, senha incorreta"
End
End If
End Sub

Funes Internas

31

Exemplo da instruo Exit


Este exemplo utiliza a instruo Exit para sair de um loop For...Next, Do...Loop e de um procedimento Sub.
Sub ExitStatementDemo()
Dim I, MeuNum
Do
' Configura o loop infinito.
For I = 1 To 1000 ' Faz o loop 1000 vezes.
MeuNum = Int(Rnd * 1000)' Gera nmeros aleatrios.
Select Case MeuNum ' Avalia o nmero aleatrio.
Case 7: Exit For ' Se 7, sai de For...Next.
Case 29: Exit Do ' Se 29, sai de Do...Loop.
Case 54: Exit Sub
' Se 54, sai do procedimento Sub.
End Select
Next I
Loop
End Sub
Exemplo da instruo For Each...Next
Este exemplo utiliza a instruo For Each...Next para pesquisar a propriedade Text de todos os elementos em uma
coleo procura da seqncia de caracteres "Al". No exemplo, MeuObjeto um objeto relacionado ao texto e um
elemento da coleo MinhaColeo. Ambos so nomes genricos utilizados somente com finalidades ilustrativas.
Dim Encontrado, MeuObjeto, MinhaColeo
Encontrado = False
' Inicializa a varivel.
For Each MeuObjeto In MinhaColeo
' Itera a cada elemento.
If MeuObjeto.Text = "Al" Then ' Se Text for igual a "Al".
Encontrado = True
' Define Encontrado como True.
Exit For ' Sai do loop.
End If
Next
Exemplo da instruo For...Next
Este exemplo utiliza a instruo For...Next para criar uma seqncia de caracteres que contm 10 instncias dos nmeros
0 a 9, cada seqncia de caracteres separada da outra por um nico espao. O loop externo utiliza uma varivel de
contador de loops que decrescida toda vez atravs do loop.
Dim Palavras, Caracteres, MinhaSeqncia
For Palavras = 10 To 1 Step -1 ' Configura 10 repeties.
For Caracteres = 0 To 9 ' Configura 10 repeties.
MinhaSeqncia = MinhaSeqncia & Caracteres ' Acrescenta o nmero seqncia de caracteres.
Next Caracteres ' Incrementa o contador
MinhaSeqncia = MinhaSeqncia & " "
' Acrescenta um espao.
Next Palavras

Funes Internas

32

Exemplo da instruo GoSub...Return


Este exemplo utiliza GoSub para chamar uma sub-rotina dentro de um procedimento Sub. A instruo Return faz com que
a execuo continue imediatamente aps a instruo GoSub. A instruo Exit Sub utilizada para evitar que o controle
flua acidentalmente para a sub-rotina.
Sub GosubDemo()
Dim Num
' Solicita um nmero ao usurio.
Num = InputBox("Insira um nmero positivo para ser dividido por 2.")
' Utiliza a rotina somente se o usurio inserir um nmero positivo.
If Num > 0 Then GoSub MinhaRotina
Debug.Print Num
Exit Sub ' Utiliza Exit para evitar um erro.
MinhaRotina:
Num = Num/2
' Executa a diviso.
Return ' Retorna o controle instruo
End Sub ' que se segue instruo GoSub.
Exemplo da instruo GoTo
Este exemplo utiliza a instruo GoTo para desviar para rtulos de linha de um procedimento.
Sub GotoStatementDemo()
Dim Nmero, MinhaSeqncia
Nmero = 1 ' Inicializa a varivel.
' Avalia Nmero e desvia para o rtulo apropriado.
If Nmero = 1 Then GoTo Line1 Else GoTo Line2
Line1:
MinhaSeqncia = "Nmero igual a 1"
GoTo LastLine
' Vai para LastLine.
Line2:
' A instruo a seguir nunca executada.
MinhaSeqncia = "Nmero igual a 2"
LastLine:
Debug.Print MinhaSeqncia ' Imprime "Nmero igual a 1" na
' janela Depurar.
End Sub
Exemplo da instruo If...Then...Else
Este exemplo mostra as formas de bloco e de linha nica da instruo If...Then...Else. Ele tambm ilustra o uso de If
TypeOf...Then...Else.
Dim Nmero, Dgitos, MinhaSeqncia
Nmero = 53 ' Inicializa a varivel.
If Nmero < 10 Then
Dgitos = 1
ElseIf Nmero < 100 Then
' A condio avalia como True, ento a prxima instruo executada.
Dgitos = 2
Else
Dgitos = 3
End If
' Atribui um valor utilizando a forma de sintaxe de linha nica.
If Dgitos = 1 Then MinhaSeqncia = "Uma" Else MinhaSeqncia = "Mais de uma"
Utilize a construo If TypeOf para determinar se o Controle passado para um procedimento uma caixa de texto.
Sub ControlProcessor(MeuControle As Control)
If TypeOf MeuControle Is CommandButton Then
Debug.Print "Voc passou um " & TypeName(MeuControle)
ElseIf TypeOf MeuControle Is CheckBox Then
Debug.Print "Voc passou um " & TypeName(MeuControle)
ElseIf TypeOf MeuControle Is TextBox Then
Debug.Print "Voc passou um " & TypeName(MeuControle)
End If
End Sub
Exemplo da funo IIf
Este exemplo utiliza a funo IIf para avaliar o parmetro TestMe do procedimento CheckIt e retorna a palavra "Grande" se
a quantidade for maior que 1000; do contrrio, retorna a palavra "Pequena".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Grande", "Pequena")

Funes Internas

33

End Function
Exemplo das instrues On...GoSub e On...GoTo
Este exemplo utiliza as instrues On...GoSub e On...GoTo para desviar para sub-rotinas e rtulos de linha,
respectivamente.
Sub OnGosubGotoDemo()
Dim Nmero, MinhaSeqncia
Nmero = 2 ' Inicializa a varivel.
' Desvia para Sub2.
On Nmero GoSub Sub1, Sub2
' A execuo continua aqui depois de
' On...GoSub.
On Nmero GoTo Linha1, Linha2 ' Desvia para Linha2.
' A execuo no continua aqui depois de On...GoTo.
Exit Sub
Sub1:
MihaSeqncia = "Em Sub1" : Return
Sub2:
MinhaSeqncia = "Em Sub2" : Return
Linha1:
MinhaSeqncia = "Em Linha1"
Linha2:
MinhaSeqncia = "Em Linha2"
End Sub

Funes Internas

34

Exemplo da funo Partition


Este exemplo pressupe que voc tem uma tabela Pedidos que contm um campo Frete. Ela cria um procedimento de
seleo que conta o nmero de pedidos para os quais o custo se enquadra em cada um dos diversos intervalos. A funo
Partition utilizada primeiro para estabelecer esses intervalos e, em seguida, a funo SQL Count conta o nmero de
pedidos em cada faixa. Neste exemplo, os argumentos da funo Partition so incio = 0, fim = 500, intervalo = 50. O
primeiro intervalo, portanto, seria 0:49, e assim por diante at 500.
SELECT DISTINCTROW Partition([frete],0, 500, 50) AS Range,
Count(Pedidos.Frete) AS Count
FROM Pedidos
GROUP BY Partition([frete],0,500,50);
Exemplo da instruo Select Case
Este exemplo utiliza a instruo Select Case para avaliar o valor de uma varivel. A segunda clusula Case contm o valor
da varivel que est sendo avaliada e, portanto, somente a instruo associada a ela executada.
Dim Nmero
Nmero = 8 ' Inicializa a varivel.
Select Case Nmero ' Avalia Nmero.
Case 1 To 5 ' Nmero entre 1 e 5.
Debug.Print "Entre 1 e 5"
' A seguinte a nica clusula Case que avalia como True.
Case 6, 7, 8 ' Nmero entre 6 e 8.
Debug.Print "Entre 6 e 8"
Case Is > 8 And Nmero < 11
' Nmero 9 ou 10.
Debug.Print "Maior que 8"
Case Else ' Outros valores.
Debug.Print "No entre 1 e 10"
End Select
Exemplo da funo Shell
Este exemplo utiliza a funo Shell para executar um aplicativo especificado pelo usurio.
' Especificar 1 como o segundo argumento abre o aplicativo no tamanho normal e lhe d o foco.
Dim ValRet
ValRet = Shell("C:\WINDOWS\CALC.EXE", 1)
' Executa Calculator.

Funes Internas

35

Exemplo da instruo Stop


Este exemplo utiliza a instruo Stop para suspender a execuo de cada iterao atravs do loop For...Next.
Dim I
For I = 1 To 10 ' Inicia o loop For...Next.
Debug.Print I ' Imprime I na janela Depurar.
Stop
' Pra durante cada iterao.
Next I
Exemplo da funo Switch
Este exemplo utiliza a funo Switch para retornar o nome de um idioma que corresponde ao nome de uma cidade.
Function MatchUp (NomeDeCidade As String)
Matchup = Switch(NomeDeCidade = "Londres", "Ingls", NomeDeCidade _
= "Roma", "Italiano", NomeDeCidade = "Paris", "Francs")
End Function
Exemplo da instruo While...Wend
Este exemplo utiliza a instruo While...Wend para incrementar uma varivel de contador. As instrues no loop so
executadas desde que a condio avalie True.
Dim Contador
Contador = 0 ' Inicializa a varivel.
While Contador < 20
' Testa valor de Contador.
Contador = Contador + 1 ' Incrementa Contador.
Wend' Encerra o loop While quando Contador > 19.
Debug.Print Contador ' Imprime 20 na janela Depurar.
Exemplo da instruo With
Este exemplo utiliza a instruo With para executar uma srie de instrues em um nico objeto. O objeto MeuObjeto e as
suas propriedades so nomes genricos utilizados somente com finalidades ilustrativas.
With MeuObjeto
.Height = 100
' Igual a MeuObjeto.Height = 100.
.Caption = "Al Mundo"
' Igual a MeuObjeto.Caption = "Al Mundo".
With .Font
.Color = Red
' Igual a MeuObjeto.Font.Color = Red.
.Bold = True
' Igual a MeuObjeto.Font.Bold = True.
End With
End With

Funes Internas

36

Instruo Call
Transfere o controle para um procedimento Sub, um procedimento Function ou procedimento de biblioteca de vnculos
dinmicos (DLL).
Sintaxe
[Call] nome [listadeargumentos]
A sintaxe da instruo Call possui as partes a seguir:
Parte
Descrio
Call
Opcional; palavra-chave. Se for especificada, voc dever
colocar listadeargumentos entre parnteses. Por exemplo:
Call MyProc(0)
nome
Obrigatria. Nome do procedimento a chamar.
listadeargumentos
Opcional. Lista, delimitada por vrgulas, de variveis, matrizes
ou expresses a serem passadas para o procedimento. Os
componentes da listadeargumentos podem incluir as palavraschave ByVal ou ByRef para descrever como os argumentos
so tratados pelo procedimento chamado. Entretanto, ByVal e
ByRef podem ser utilizadas com Call somente quando for
chamado um procedimento DLL.
Comentrios
No necessrio que voc utilize a palavra-chave Call quando chamar um procedimento, entretanto, se voc us-la para
chamar um procedimento que requer argumentos, a listadeargumentos deve ficar entre parnteses. Se voc omitir a
palavra-chave Call, tambm dever omitir os parnteses de listadeargumentos. Se utilizar qualquer sintaxe de Call para
chamar alguma funo intrnseca ou definida pelo usurio, o valor de retorno da funo ser descartado.
Para passar uma matriz inteira para um procedimento, utilize o nome da matriz seguido de parnteses vazios.

Funo Choose
Seleciona e retorna um valor de uma lista de argumentos.
Sintaxe
Choose(ndice, escolha-1[, escolha-2, ... [, escolha-n]])
A sintaxe da funo Choose possui as partes a seguir:
Parte
Descrio
ndice
Obrigatria. Expresso numrica ou campo que resulta em um valor entre
1 e o nmero de escolhas disponveis.
escolha
Obrigatria. Expresso Variant contendo uma das escolhas possveis.
Comentrios
Choose retorna um valor da lista de escolhas com base no valor do ndice. Se ndice for 1, Choose retorna a primeira
escolha da lista, se for 2, retorna a segunda escolha e assim por diante.
Voc pode utilizar Choose para pesquisar um valor em uma lista de possibilidades. Por exemplo, se ndice for avaliado
como 3 e escolha-1 = "um", escolha-2 = "dois" e escolha-3 = "trs", Choose retorna "trs". Esta capacidade
particularmente til se ndice representa o valor em um grupo de opes.
Choose avalia todas as escolhas da lista, mesmo que ela retorne somente uma. Em razo disto voc deve observar se
existem efeitos colaterais indesejveis. Por exemplo, se voc utilizar a funo MsgBox como parte de uma expresso em
todas as escolhas, ser exibida uma caixa de mensagem quando cada escolha for avaliada, mesmo que Choose retorne o
valor de apenas uma delas.
A funo Choose retorna um Null se ndice for menor que 1 ou maior que o nmero de escolhas listadas.
Se ndice no for um nmero inteiro, ser arredondado para o nmero inteiro mais prximo antes de ser avaliado.

Funo DoEvents
Cede a execuo para que o sistema operacional possa processar outros eventos.
Sintaxe
DoEvents( )
Comentrios
A funo DoEvents retorna um Integer que representa o nmero de formulrios abertos em verses autnomas do Visual
Basic, como o Visual Basic, Standard Edition. DoEvents retorna zero em todos os outros aplicativos.
DoEvents passa o controle para o sistema operacional. O controle retornado depois de o sistema operacional terminar o
processamento de eventos da sua fila e todas as chaves da fila SendKeys terem sido enviadas.
DoEvents tem uma maior utilidade com aes simples como permitir que um usurio cancele o processo aps ele ter sido
iniciado, por exemplo, uma procura por um arquivo. Para processos de longa execuo, o controle do processador
conseguido com maior facilidade utilizando-se um cronmetro ou delegando-se a tarefa a um componente ActiveX EXE.
Nesse ltimo caso, a tarefa pode continuar de forma completamente independente de seu aplicativo e o sistema
operacional leva em considerao a multitarefa e a diviso de tempo.
Ateno Sempre que voc cede o controle ao processador dentro de um procedimento de evento, certifique-se de que o
procedimento no seja executado novamente a partir de uma outra parte do seu cdigo antes que a primeira chamada
retorne, pois isto poderia produzir resultados imprevisveis. Alm disto, no utilize DoEvents se houver possibilidade de
outros aplicativos interagirem com o seu procedimento de forma imprevisvel durante o tempo em que voc ceder o
controle.
Funes Internas

37

Funes Internas

38

Instruo Do...Loop
Repete um bloco de instrues enquanto uma condio True ou at que ela se torne True.
Sintaxe
Do
[{While
|
Until}
[instrues]
[Exit
[instrues]
Loop
Ou voc pode utilizar esta sintaxe:
Do
[instrues]
[Exit
[instrues]
Loop [{While | Until} condio]
A sintaxe da instruo Do Loop possui as partes a seguir:
Parte
Descrio
condio
Opcional. Expresso numrica ou expresso de seqncia que seja
True ou False. Se condio for Null, condio tratada como False.
instrues
Uma ou mais instrues que so repetidas enquanto, ou at que,
condio seja True.

condio]
Do]

Do]

Comentrios
Qualquer nmero de instrues Exit Do pode ser colocado em qualquer lugar em DoLoop como meio alternativo para
sair de um DoLoop. Exit Do freqentemente utilizada depois que alguma condio avaliada, por exemplo, IfThen,
caso em que a instruo Exit Do transfere o controle para a instruo imediatamente seguinte a Loop.
Quando utilizada com instrues DoLoop embutidas, Exit Do transfere o controle para o loop que est embutido em um
nvel acima do loop em que ocorre Exit Do.

Instruo End
Finaliza um procedimento ou bloco.
Sintaxe
End
End Function
End If
End Property
End Select
End Sub
End Type
End With
A sintaxe da instruo End possui as formas a seguir:
Instruo
Descrio
End
Termina a execuo imediatamente. Nunca obrigatria por si
mesma, mas pode ser colocada em qualquer lugar dentro de um
procedimento para finalizar a execuo do cdigo, fechar arquivos
abertos com a instruo Open e limpar variveis.
End Function
Obrigatria para finalizar uma instruo Function.
End If
Obrigatria para finalizar uma instruo de bloco IfThenElse.
End Property
Obrigatria para finalizar um procedimento Property Let, Property
Get ou Property Set.
End Select
Obrigatria para finalizar uma instruo Select Case.
End Sub
Obrigatria para finalizar uma instruo Sub.
End Type
Obrigatria finalizar uma definio de tipo definido pelo usurio
(instruo Type).
End With
Obrigatria para finalizar uma instruo With.
Comentrios
Quando executada, a instruo End redefine todas as variveis em nvel de mdulo e todas as variveis locais estticas
em todos os mdulos. Para preservar o valor dessas variveis, utilize a instruo Stop. Assim, voc poder continuar a
execuo preservando o valor daquelas variveis.
Observao
A instruo End interrompe a execuo do cdigo abruptamente, sem chamar o evento Unload,
QueryUnload ou Terminate ou qualquer outro cdigo do Visual Basic. O cdigo que voc colocou nos eventos Unload,
QueryUnload e Terminate de formulrios e mdulos de classe no executado. Os objetos criados a partir de mdulos de
classe so destrudos, os arquivos abertos utilizando-se a instruo Open so fechados e a memria utilizada pelo seu
programa liberada. As referncias de objeto pertencentes a outros programas so invalidadas.
A instruo End fornece uma maneira de fazer com que seu programa pare. Para a finalizao normal de um programa do
Visual Basic, voc deve descarregar todos os formulrios. O seu programa finalizado logo que no haja outros programas
mantendo referncia a objetos criados a partir de seus mdulos de classe pblicos e nenhum cdigo sendo executado.

Funes Internas

39

Instruo Exit
Sai de um bloco de cdigo DoLoop, For...Next, Function, Sub ou Property.
Sintaxe
Exit Do
Exit For
Exit Function
Exit Property
Exit Sub
A sintaxe da instruo Exit possui as formas a seguir:
Instruo
Descrio
Exit Do
Prov um meio de sair de uma instruo Do...Loop. Pode ser
utilizada somente dentro de uma instruo Do...Loop. Exit Do
transfere o controle para a instruo seguinte instruo Loop.
Quando utilizada com instrues Do...Loop embutidas, Exit Do
transfere o controle para o loop que est embutido em um nvel
acima do loop em que ocorre Exit Do.
Exit For
Prov um meio de sair de um loop For. Pode ser utilizado somente
em um loop For...Next ou For Each...Next. Exit For transfere o
controle para a instruo seguinte instruo Next. Quando
utilizada com loops For embutidos, Exit For transfere o controle
para o loop que est embutido em um nvel acima do loop em que
ocorre Exit For.
Exit Function
Sai imediatamente do procedimento Function no qual aparece. A
execuo continua com a instruo seguinte instruo que
chamou o Function.
Exit Property
Sai imediatamente do procedimento Property no qual aparece. A
execuo continua com a instruo seguinte instruo que
chamou o procedimento Property.
Exit Sub
Sai imediatamente do procedimento Sub no qual aparece. A
execuo continua com a instruo seguinte instruo que
chamou o procedimento Sub.
Comentrios
No confunda instrues Exit com instrues End. Exit no define o final de uma estrutura.

Instruo For Each...Next


Repete um grupo de instrues para cada elemento de uma matriz ou coleo.
Sintaxe
For
Each
elemento
In
[instrues]
[Exit
[instrues]
Next [elemento]
A sintaxe da instruo For...Each...Next possui as partes a seguir:
Parte
Descrio
elemento
Obrigatria. Varivel utilizada para iterar atravs dos elementos da
coleo ou matriz. Para as colees, elemento pode ser somente
uma varivel Variant, uma varivel de objeto genrica ou qualquer
varivel de objeto especfica. Para as matrizes, elemento somente
pode ser uma varivel Variant.
grupo
Obrigatria. Nome de uma coleo ou matriz de objetos(exceto
matriz de tipos definidos pelo usurio).
instrues
Opcional. Uma ou mais instrues que so executadas em cada
item de um grupo.

grupo
For]

Comentrios
O bloco For...Each inserido se houver pelo menos um elemento em grupo. Uma vez que o loop tenha sido inserido, todas
as instrues do loop so executadas para o primeiro elemento do grupo. Se houver mais elementos em grupo, as
instrues do loop continuam a ser executadas para cada elemento. Quando no houver mais elementos em grupo, o loop
sai e a execuo continua com a instruo seguinte instruo Next.
Qualquer nmero de instrues Exit For pode ser colocado em qualquer lugar do loop como um meio alternativo para sair.
Muitas vezes, Exit For utilizada depois de se avaliar alguma condio, por exemplo, If...Then, e transfere o controle para
a instruo imediatamente seguinte a Next.
Voc pode embutir loops For...Each...Next colocando um dentro de outro. Entretanto, cada elemento do loop deve ser
exclusivo.
Observao Se voc omitir elemento em uma instruo Next a execuo continua como se elemento estivesse includo.
Se uma instruo Next for encontrada antes de sua instruo For correspondente, ocorrer um erro.
Voc no pode utilizar a instruo For...Each...Next com uma matriz de tipos definidos pelo usurio porque um Variant no
pode conter um tipo definido pelo usurio.
Funes Internas

40

Instruo For...Next
Repete um grupo de instrues um nmero especfico de vezes.
Sintaxe
For
contador
=
incio
To
fim
[Step
[instrues]
[Exit
[instrues]
Next [contador]
A sintaxe da instruo ForNext possui as partes a seguir:
Parte
Descrio
contador
Obrigatria. Varivel numrica utilizada como contador de loops. A
varivel no pode ser um Boolean ou um elemento de matriz.
incio
Obrigatria. Valor inicial do contador.
fim
Obrigatria. Valor final do contador.
passo
Opcional. A quantidade em que o contador alterado cada vez que
passa pelo loop. Se o passo no for especificado, o padro ser um.
instrues
Opcional. Uma ou mais instrues entre For e Next que so
executadas conforme o nmero de vezes especificado.

passo]
For]

Comentrios
O argumento do passo pode ser positivo ou negativo. O valor do argumento do passo determina o processamento do loop
da seguinte forma:
Valor
Loop executado se
Positivo ou 0
contador <= fim
Negativo
contador >= fim
Depois que todas as instrues do loop tiverem sido executadas, passo adicionado a contador. Neste momento ou as
instrues do loop so executadas novamente (baseadas no mesmo teste que causou a execuo inicial do loop) ou o loop
sai e a execuo continua com a instruo seguinte instruo Next.
Dica A alterao do valor de um contador estando dentro de um loop pode tornar mais difcil a leitura e depurao do seu
cdigo.
Qualquer nmero de instrues Exit For pode ser colocado em qualquer lugar dentro do loop como meio alternativo de sair.
Muitas vezes Exit For utilizada depois da avaliao de alguma condio, por exemplo, If...Then, e transfere o controle
para a instruo imediatamente seguinte a Next.
Voc pode embutir loops For...Next colocando um dentro do outro. D a cada loop um nome de varivel exclusivo como
seu contador. A construo a seguir correta:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
Observao Se voc omitir contador em uma instruo Next, a execuo continua como se contador estivesse includo.
Se uma instruo Next for encontrada antes de sua instruo For correspondente, ocorrer um erro.

Instruo GoSub...Return
Desvia para, e retorna de uma sub-rotina dentro de um procedimento.
Sintaxe
GoSub
linha
...
linha
...
Return
O argumento linha pode ser qualquer rtulo de linha ou nmero de linha.
Comentrios
Voc pode utilizar GoSub e Return em qualquer posio dentro de um procedimento, mas GoSub e a instruo
correspondente Return devem estar no mesmo procedimento. Uma sub-rotina pode conter mais de uma instruo Return,
mas a primeira encontrada faz com que o fluxo da execuo se desvie de volta para a instruo imediatamente seguinte
instruo GoSub mais recentemente executada.
Observao Voc no pode entrar ou sair de procedimentos Sub com GoSub...Return.
Dica Criar procedimentos separados que voc possa chamar pode proporcionar uma alternativa mais estruturada para a
utilizao de GoSub...Return.

Instruo GoTo
Desvia incondicionalmente para uma linha especificada dentro de um procedimento.
Sintaxe

Funes Internas

41

GoTo linha
O argumento linha requerido pode ser qualquer rtulo de linha ou nmero de linha.
Comentrios
GoTo pode desviar somente para linhas de dentro do procedimento em que aparece.
Observao Excesso de instrues GoTo pode tornar difcil a leitura e depurao do cdigo. Sempre que possvel, utilize
instrues de controle estruturado (Do...Loop, For...Next, If...Then...Else, Select Case).

Instruo If...Then...Else
Executa condicionalmente um grupo de instrues, dependendo do valor de uma expresso.
Sintaxe
If condio Then [instrues] [Else instrueselse]
Ou voc pode utilizar a sintaxe de formato de bloco:
If
condio
[instrues]
[ElseIf
condio-n
[instrueselseif] ...
[Else
[instrueselse]]
End If
A instruo If...Then...Else possui as partes a seguir:
Parte
Descrio
condio
Obrigatria. Um ou mais dos dois tipos de expresso seguintes:
Uma expresso numrica ou expresso de seqncia de
caracteres que avaliada como True ou False. Se condio for
Null, ser tratada como False.
Uma expresso do formato TypeOf nomedoobjeto Is
tipodoobjeto. O nomedoobjeto qualquer referncia a objeto e
tipodoobjeto qualquer tipo de objeto vlido. A expresso ser
True se nomedoobjeto for o tipo de objeto especificado por
tipodoobjeto; caso contrrio, ser False.
instrues
Opcional em formato de bloco; requerida em formato de uma
s linha que no possui clusula Else. Uma ou mais instrues
separadas por dois-pontos; executada se condio for True.
condio-n
Opcional. Igual a condio.
instrueselseif
Opcional. Uma ou mais instrues executadas se a condio-n
associada for True.
instrueselse
Opcional. Uma ou mais instrues executadas se nenhuma
expresso condio ou condio-n anterior for True.

Then
Then

Comentrios
Voc pode utilizar o formato de uma s linha (primeira sintaxe) para testes simples e curtos. Entretanto, o formato de bloco
(segunda sintaxe) proporciona mais estrutura e flexibilidade do que o formato de uma s linha e normalmente mais fcil
de ler, manter e depurar.
Observao Com o formato de uma s linha possvel ter mltiplas instrues executadas como resultado de uma
deciso If...Then. Todas as instrues devem estar na mesma linha e separadas por dois-pontos, como na seguinte
instruo:
If A > 10 Then A = A + 1 : B = B + A : C = C + B
Uma instruo If em formato de bloco deve ser a primeira em uma linha. As partes Else, ElseIf, e End If da instruo
podem ter somente um nmero de linha ou rtulo de linha precedendo-as. O If em bloco deve terminar com uma instruo
End If.
Para determinar se uma instruo ou no If em bloco, examine o que vem em seguida palavra-chave Then. Se
qualquer coisa exceto um comentrio aparecer depois de Then na mesma linha, a instruo ser tratada como instruo If
de uma s linha.
A clusulas Else e ElseIf so opcionais. Voc pode ter tantas clusulas ElseIf em um bloco If quantas desejar, mas
nenhuma pode aparecer depois de uma clusula Else. Instrues If em bloco podem ser embutidas, isto , contidas uma
dentro da outra.
Executando um If em bloco (segunda sintaxe), condio testada. Se condio for True, as instrues seguintes a Then
so executadas. Se condio for False, cada condio ElseIf (se houver) ser por sua vez avaliada. Quando uma condio
True for encontrada, as instrues imediatamente subseqentes Then associada so executadas. Se nenhuma das
condies ElseIf forem True (ou se no houver clusulas ElseIf), as instrues subseqentes a Else so executadas.
Depois da execuo das instrues subseqentes a Then ou Else, a execuo continua com a instruo subseqente a
End If.
Dica Select Case pode ser mais til na avaliao de uma expresso nica com diversas aes possveis. Entretanto, a
clusula TypeOf nomedoobjeto Is tipodoobjeto no pode ser utilizada com a instruo Select Case.

Funo IIf
Retorna uma das duas partes, dependendo da avaliao de uma expresso.
Sintaxe
Funes Internas

42

IIf(expr, truepart, falsepart)


A sintaxe da funo IIf possui os argumentos nomeados a seguir:
Parte
Descrio
expr
Obrigatria. Expresso que voc deseja avaliar.
truepart
Obrigatria. Valor ou expresso retornada se expr for True.
falsepart
Obrigatria. Valor ou expresso retornada se expr for False.
Comentrios
IIf sempre avalia truepart e falsepart, mesmo que retorne somente uma delas. Em razo disto, voc deve observar se
ocorrem efeitos colaterais indesejveis. Por exemplo, se a avaliao de falsepart resulta em um erro de diviso por zero,
ocorrer um erro mesmo se expr for True.

Instrues On...GoSub, On...GoTo


Desviam para uma das diversas linhas especificadas, dependendo do valor de uma expresso.
Sintaxe
On expresso GoSub listadedestino
On expresso GoTo listadedestino
A sintaxe das instrues On...GoSub e On...GoTo possui as partes a seguir:
Parte
Descrio
expresso
Obrigatria. Qualquer expresso numrica avaliada como nmero
inteiro entre 0 e 255, inclusive. Se expresso for qualquer nmero
no inteiro, ele ser arredondado antes da avaliao.
listadedestino
Obrigatria. Lista de nmeros de linha ou rtulos de linha
separados por vrgulas.
Comentrios
O valor da expresso determina a linha para a qual ser desviada na listadedestino. Se o valor for menor que 1 ou maior
que o nmero de itens da lista, ocorrer um dos seguintes resultados:
Se expresso for
Ento
Igual a 0
O controle cai para a instruo subseqente a
On...GoSub ou On...GoTo.
Maior que o nmero deO controle cai para a instruo subseqente a
itens de uma lista
On...GoSub ou On...GoTo.
Negativo
Ocorre um erro.
Maior que 255
Ocorre um erro.
Voc pode misturar nmeros de linha e rtulos de linha na mesma lista. Pode utilizar quantos rtulos de linha e nmeros de
linha desejar com On...GoSub e On...GoTo. Entretanto, se voc utilizar mais rtulos ou nmeros do que cabem em uma s
linha, dever utilizar o caractere de continuao de linha para continuar a linha lgica at a linha fsica seguinte.
Dica Select Case proporciona um meio mais estruturado e mais flexvel de executar mltiplo desvio.

Funo Partition
Retorna um Variant (String) que indica onde ocorre um nmero dentro de uma srie calculada de intervalos.
Sintaxe
Partition(number, start, stop, interval)
A sintaxe da funo Partition possui os argumentos nomeados a seguir:
Parte
Descrio
number
Obrigatrio. Nmero inteiro que voc deseja avaliar em relao aos
intervalos.
start
Obrigatrio. Nmero inteiro que o incio do intervalo geral de
nmeros. No pode ser menor que 0.
stop
Obrigatrio. Nmero inteiro que o final do intervalo geral de nmeros.
No pode ser igual nem menor que start.
interval
Obrigatrio. Nmero inteiro que a faixa coberta por cada segmento da
srie de start a stop. No pode ser menor que 1.
Comentrios
A funo Partition identifica o intervalo especfico no qual number est e retorna um Variant (String) que descreve esse
intervalo. A funo Partition mais til em consultas. Voc pode criar uma consulta seleo que mostra quantas ordens
esto dentro de diversos intervalos, por exemplo, valores de ordem de 1 a 1000, 1001 a 2000, e assim por diante.
A tabela a seguir mostra como os intervalos so determinados utilizando-se trs conjuntos de partes start, stop, e interval.
As colunas Primeiro Intervalo e ltimo Intervalo mostram o que Partition retorna. Os intervalos so representados por
valormnimo:valormximo, onde o extremo inferior (valormnimo) do intervalo separado do extremo superior
(valormximo) por dois-pontos (:).
start
stop
interval
Antes
doPrimeiro
ltimo intervalo Depois
do
primeiro
intervalo
ltimo
0
99
5
" :-1"
"
0: 4"
" 95: 99"
" 100: "
20
199
10
" : 19"
" 20: 29"
" 190: 199"
" 200: "
100
1010
20
" : 99"
" 100: 119"
" 1000: 1010"
" 1011: "
Na tabela acima, a terceira linha mostra o resultado de quando start e stop definem um conjunto de nmeros que no
podem ser divididos exatamente por interval. O ltimo intervalo estende-se at stop (11 nmeros) embora interval seja 20.

Funes Internas

43

Se for necessrio, Partition retorna um intervalo com espaos suficientes para que haja o mesmo nmero de caracteres
esquerda e direita de dois-pontos que o nmero de caracteres em stop mais um. Isto garante que, se voc utilizar
Partition com outros nmeros, o texto resultante ser manipulado adequadamente durante qualquer operao de
classificao subseqente.
Se interval for 1, o intervalo ser number:number, independente dos argumentos de start e stop. Por exemplo, se
interval for 1, number for 100 e stop for 1000, Partition retornar " 100: 100".
Se qualquer das partes for Null, Partition retornar um Null.

Instruo Select Case


Executa um dos diversos grupos de instrues, dependendo do valor de uma expresso.
Sintaxe
Select
Case
expressodeteste
[Case
listadeexpresses-n
[instrues-n]]
...
[Case
Else
[instrueselse]]
End Select
A sintaxe da instruo Select Case possui as partes a seguir:
Parte
Descrio
expressodeteste
Obrigatria. Qualquer expresso numrica ou expresso de
seqncia.
listadeexpresses-n Obrigatria se aparecer uma Case. Lista delimitada de uma ou
mais das seguintes formas: expresso, expresso To
expresso, Is operadordecomparao expresso. A palavrachave To especifica um intervalo de valores. Se voc utilizar
essa palavra-chave, o valor menor deve aparecer antes de To.
Utilize a palavra-chave Is com operadores de comparao
(exceto Is e Like) para especificar um intervalo de valores. Se
no for fornecida, a palavra-chave Is ser inserida
automaticamente.
Instrues-n
Opcional. Uma ou mais instrues so executadas se
expressodeteste
coincidir
com
qualquer
parte
de
listadeexpresses-n.
instrueselse
Opcional. Uma ou mais instrues so executadas se
expressodeteste no coincidir com qualquer das clusulas
Case.
Comentrios
Se expressodeteste coincidir com qualquer expresso Case listadeexpresses, as instrues subseqentes quela
clusula Case sero executadas at e prxima clusula Case, ou, para a ltima clusula, at End Select. Ento o controle
passa para a instruo seguinte a End Select. Se expressodeteste coincidir com uma expresso listadeexpresses em
mais de uma clusula Case, somente as instrues subseqentes primeira coincidncia sero executadas.
A clusula Case Else utilizada para indicar a instrueselse a ser executada se no for encontrada coincidncia entre
expressodeteste e uma listadeexpresses em qualquer das outras selees de Case. Embora no seja necessrio, uma
boa idia ter uma instruo CaseElse no seu bloco Select Case para manipular valores no previstos de
expressodeteste. Se nenhuma Case listadeexpresses coincidir com expressodeteste e no houver instruo Case
Else, a execuo continua na instruo subseqente a End Select.
Voc pode utilizar mltiplas expresses ou intervalos em cada clusula Case. Por exemplo, a linha a seguir vlida:
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Observao O operador de comparao Is no igual palavra-chave Is utilizada na instruo Select Case.
Voc pode tambm especificar intervalos e vrias expresses para seqncias de caracteres. No exemplo a seguir, Case
coincide com seqncias que so exatamente iguais a tudo, seqncias que ficam entre nozes e sopa em ordem alfabtica
e o valor atual de TestItem:
Case "tudo", "nozes" To "sopa", TestItem
Instrues Select Case podem ser embutidas. Cada instruo Select Case embutida deve ter uma declarao End Select
correspondente.

Funo Shell
Executa um programa executvel e retorna um Variant (Double) que representa o cdigo da tarefa do programa, se tiver
sucesso, caso contrrio, retorna zero.
Sintaxe
Shell(pathname[,windowstyle])
A sintaxe da funo Shell possui os argumentos nomeados a seguir:
Parte
Descrio
pathname
Obrigatrio; Variant (String). Nome do programa a ser
executado e qualquer opo de argumento ou linha de
comando obrigatria; pode incluir diretrio ou pasta e
unidade de disco.
windowstyle
Opcional. Variant (Integer) correspondente ao estilo da
janela na qual o programa deve ser executado. Se
Funes Internas

44

windowstyle for omitido, o programa iniciar minimizado


com foco.
O argumento nomeado windowstyle possui os valores a seguir:
Constante
Valor
Descrio
vbHide
0
A janela ocultada e o foco passado para a
janela oculta.
VbNormalFocus
1
A janela tem foco e restaurada para seu
tamanho e posio originais.
vbMinimizedFocus
2
A janela exibida como um cone com foco.
vbMaximizedFocus
3
A janela maximizada com foco.
vbNormalNoFocus
4
A janela restaurada para seu tamanho e
posio mais recentes. A janela ativa atual
permanece ativa.
vbMinimizedNoFocus
6
A janela exibida como um cone. A janela
atualmente ativa permanece ativa.
Comentrios
Se a funo Shell executar o arquivo nomeado com sucesso, retornar o cdigo da tarefa do programa iniciado. A
identificao da tarefa um nmero exclusivo que identifica o programa em execuo. Se a funo Shell no puder iniciar
o programa nomeado, ocorrer um erro. Se voc utilizar a funo MacID com Shell no Microsoft Windows, ocorrer um
erro.
Observao A funo Shell executa outros programas de forma assncrona. Isto significa que um programa iniciado com
Shell poder no completar a execuo antes que as instrues subseqentes funo Shell sejam executadas.

Instruo Stop
Suspende a execuo.
Sintaxe
Stop
Comentrios
Voc pode colocar instrues Stop em qualquer lugar dos procedimentos para suspender a execuo. A utilizao da
instruo Stop assemelha-se a definir um ponto de interrupo no cdigo.
A instruo Stop suspende a execuo, mas, ao contrrio de End, no fecha qualquer arquivo nem limpa variveis, a
menos que esteja em um arquivo executvel (.exe) compilado.

Funo Switch
Avalia uma lista de expresses e retorna um valor de Variant ou uma expresso associada com a primeira expresso da
lista que seja True.
Sintaxe
Switch(expr-1, valor-1[, expr-2, valor-2 [, expr-n,valor-n]])
A sintaxe da funo Switch possui as partes a seguir:
Parte
Descrio
expr
Obrigatria. expresso Variant que voc deseja avaliar.
valor
Obrigatria. Valor ou expresso a ser retornada se a expresso
correspondente for True.

Comentrios
A lista de argumentos da funo Switch consiste em pares de expresses e valores. As expresses so avaliadas da
esquerda para a direita e o valor associado primeira expresso avaliada como True retornado. Se as partes no
estiverem adequadamente dispostas em par, ocorrer 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 retorna um valor Null se:
Nenhuma das expresses for True.
A primeira expresso True tiver um valor correspondente que seja Null.
Switch avalia todas as expresses, mesmo que retorne apenas uma delas. Por isso voc deve observar se ocorrem efeitos
colaterais indesejveis. Por exemplo, se a avaliao de qualquer expresso resultar em um erro de diviso por zero,
ocorrer um erro.

Instruo While...Wend
Executa uma srie de instrues desde que uma dada condio seja True.
Sintaxe
While
[instrues]
Wend
A sintaxe da instruo While...Wend possui as partes a seguir:
Parte
Descrio
condio
Obrigatria. Expresso numrica ou expresso de seqncia que
avaliada como True ou False. Se condio for Null, ser tratada como
False.
instrues
Opcional. Uma ou mais instrues que so executadas enquanto a
condio for True.

condio

Funes Internas

45

Comentrios
Se condio for True, todas as instrues sero executadas at que a instruo Wend seja encontrada. Ento o controle
retorna para While e condio novamente verificada. Se condio ainda for True, o processo repetido. Se no for True,
a execuo continua com a instruo subseqente instruo Wend.
Os loops While...Wend podem ser embutidos at qualquer nvel. Cada Wend corresponde ao mais recente While.
Dica A instruo Do...Loop proporciona um meio mais estruturado e flexvel para executar um loop.

Instruo With
Executa uma srie de instrues em um nico objeto ou um tipo definido pelo usurio.
Sintaxe
With
[instrues]
End With
A instruo With possui as partes a seguir:
Parte
Descrio
objeto
Obrigatria. Nome de um objeto ou de um tipo definido pelo usurio.
instrues
Opcional. Uma ou mais instrues a serem executadas com objeto.

objeto

Comentrios
A instruo With permite executar uma srie de instrues com um objeto especfico sem requalificar o nome do objeto. Por
exemplo, para alterar diversas propriedades diferentes de um nico objeto, coloque as instrues de atribuio de
propriedades dentro da estrutura de controle de With, referindo o objeto uma s vez em lugar de faz-lo em todas as
atribuies de propriedade. O exemplo a seguir ilustra a utilizao da instruo With para atribuir valores a diversas
propriedades do mesmo objeto.
With MyLabel
.Height = 2000
.Width = 2000
.Caption = "Este MyLabel"
End With
Observao Uma vez que um bloco With seja inserido, objeto no pode ser modificado. Como resultado, voc no pode
utilizar uma s instruo With para afetar diversos objetos diferentes.
Voc pode embutir instrues With colocando blocos With um dentro do outro. Entretanto, em razo de os membros dos
blocos externos de With ficarem mascarados dentro dos blocos internos, voc deve proporcionar uma referncia a objeto
totalmente qualificada em um bloco With interno para qualquer membro de um objeto existente em um bloco externo.
Importante No salte para dentro e para fora de blocos With. Se as instrues em um bloco With forem executadas mas
a instruo With ou End With no for, voc poder provocar erros ou comportamento imprevisvel.
Exemplo da funo Asc
Este exemplo utiliza a funo Asc para retornar um cdigo de caractere que corresponde primeira letra na seqncia de
caracteres.
Dim MeuNmero
MeuNmero = Asc("A") ' Retorna 65.
MeuNmero = Asc("a") ' Retorna 97.
MeuNmero = Asc("Amora")' Retorna 65.
Exemplo da funo CBool
Este exemplo utiliza a funo CBool para converter uma expresso em um Boolean. Se a expresso avaliar como um
valor diferente de zero, CBool retornar True; caso contrrio, retornar False.
Dim A, B, Controle
A = 5: B = 5 ' Inicializa variveis.
Controle = CBool(A = B)
' Controle contm True.
A = 0 ' Define a varivel.
Controle = CBool(A)
' Controle contm False.
Exemplo da funo CByte
Este exemplo utiliza a funo CByte para converter uma expresso em um Byte.
Dim MeuDouble, MeuByte
MeuDouble = 125.5678 ' MeuDouble um Double.
MeuByte = CByte(MeuDouble) ' MeuByte contm 126.
Exemplo da funo CDate
Este exemplo utiliza a funo CDate para converter uma seqncia de caracteres em um Date. Em geral, datas e horas
definidas no programa como seqncias de caracteres (conforme mostrado neste exemplo) no so recomendadas. Em
vez disso, utilize literais de data e literais de hora, como #2/12/1969# e #4:45:23 PM#.
Dim MinhaData, MinhaDataAbreviada, MinhaHora, MinhaHoraAbreviada
MinhaData = "12 de Fevereiro de 1969" ' Define a data.
MinhaDataAbreviada = CDate(MinhaData) ' Converte no tipo de dados Date.
MinhaHora = "4:35:47 PM" ' Define a hora.

Funes Internas

46

MinhaHoraAbreviada = CDate(MinhaHora) ' Converte no tipo de dados Date.


Exemplo da funo CCur
Este exemplo utiliza a funo CCur para converter uma expresso em um Currency.
Dim MeuDouble, MeuCurr
MeuDouble = 543.214588 ' MeuDouble um Double.
MeuCurr = CCur(MeuDouble * 2)' Converte o resultado de MeuDouble * 2
' (1086.429176) em um
' Currency (1086.4292).
Exemplo da funo CDbl
Este exemplo utiliza a funo CDbl para converter uma expresso em um Double.
Dim MeuCurr, MeuDouble
MeuCurr = CCur(234.456784) ' MeuCurr um Currency.
MeuDouble = CDbl(MeuCurr * 8.2 * 0.01) ' Converte o resultado em um Double.
Exemplo da funo CInt
Este exemplo utiliza a funo CInt para converter um valor em um Integer.
Dim MeuDouble, MeuInt
MeuDouble = 2345.5678
' MeuDouble um Double.
MeuInt = CInt(MeuDouble) ' MeuInt contm 2346.
Exemplo da funo CLng
Este exemplo utiliza a funo CLng para converter um valor em um Long.
Dim MeuVal1, MeuVal2, MeuLong1, MeuLong2
MeuVal1 = 25427.45: MeuVal2 = 25427.55 ' MeuVal1 e MeuVal2 so Doubles.
MeuLong1 = CLng(MeuVal1)
' MeuLong1 contm 25427.
MeuLong2 = CLng(MeuVal2)
' MeuLong2 contm 25428.
Exemplo da funo CSng
Este exemplo utiliza a funo CSng para converter um valor em um Single.
Dim MeuDouble1, MeuDouble2, MeuSingle1, MeuSingle2
' MeuDouble1, MeuDouble2 so Doubles.
MeuDouble1 = 75.3421115: MeuDouble2 = 75.3421555
MeuSingle1 = CSng(MeuDouble1) ' MeuSingle1 contm 75,34211.
MeuSingle2 = CSng(MyDouble2)' MeuSingle2 contm 75,34216.
Exemplo da funo CStr
Este exemplo utiliza a funo CStr para converter um valor numrico em uma String.
Dim MeuDouble, MinhaSeqncia
MeuDouble = 437.324 ' MeuDouble um Double.
MinhaSeqncia = CStr(MeuDouble) ' MinhaSeqncia contm "437,324".
Exemplo da funo CVar
Este exemplo utiliza a funo CVar para converter uma expresso em uma Variant.
Dim MeuInt, MinhaVar
MeuInt = 4534 ' MeuInt um Integer.
MinhaVar = CVar(MeuInt & "000")
' MinhaVar contm a seqncia de caracteres
' 4534000.
Exemplo da funo CVErr
Este exemplo utiliza a funo CVErr para retornar uma Variant cujo VarType vbError (10). A funo definida pelo usurio
CalculaDouble retorna um erro se o argumento passado a ela no for um nmero. Voc pode utilizar CVErr para retornar
erros definidos pelo usurio de procedimentos definidos pelo usurio ou para adiar o tratamento de um erro em tempo de
execuo. Utilize a funo IsError para testar se o valor representa um erro.
' Chama CalculaDouble com um argumento de produo de erro.
Sub Test()
Debug.Print CalculaDouble("345.45robert")
End Sub
' Define o procedimento da funo CalculaDouble.
Function CalculaDouble(Nmero)
If IsNumeric(Nmero) Then
CalculaDouble = Nmero * 2 ' Retorna o resultado.
Else
CalculaDouble = CVErr(2001) ' Retorna um nmero de erro
End If ' definido pelo usurio.
End Function

Funes Internas

47

Exemplo da funo Val


Este exemplo utiliza a funo Val para retornar os nmeros contidos em uma seqncia de caracteres.
Dim MeuValor
MeuValor = Val("2457") ' Retorna 2457.
MeuValor = Val(" 2 45 7")
' Retorna 2457.
MeuValor = Val("24 com 57")
' Retorna 24.

Funes de converso

Funo Asc
Retorna um Integer que representa o cdigo de caractere correspondente primeira letra de uma seqncia.
Sintaxe
Asc(seqncia)
O argumento obrigatrio seqncia pode ser qualquer expresso de seqncia vlida. Se a seqncia no contiver
caracteres, um erro em tempo de execuo ser gerado.
Comentrios
O intervalo para os retornos de 0 a 255 em sistemas no-DBCS, mas de -32768 a 32767 em sistemas DBCS.
Observao A funo AscB utilizada com os dados de byte contidos em uma seqncia. Em vez de retornar o cdigo
de caractere para o primeiro caractere, AscB retorna o primeiro byte. A funo AscW retorna o cdigo de caractere
Unicode, exceto em plataformas nas quais o Unicode no suportado, caso em que o comportamento dessa funo
idntico ao da funo Asc.

Funes Internas

48

Funo CVErr
Retorna um Variant de subtipo Error contendo um nmero de erro especificado pelo usurio.
Sintaxe
CVErr(nmerodoerro)
O argumento obrigatrio nmerodoerro pode ser qualquer nmero de erro vlido.
Comentrios
Utilize a funo CVErr para criar erros definidos pelo usurio nos procedimentos criados pelo usurio. Por exemplo, se
voc criar uma funo que aceite vrios argumentos e normalmente retorne uma seqncia, voc poder fazer com que
sua funo avalie os argumentos de entrada para assegurar de que eles se encontram dentro do intervalo aceitvel. Se no
se encontrarem, provvel que sua funo no retorne o esperado. Nesse caso, CVErr permite retornar um nmero de
erro que informa que atitude tomar.
Observe que a converso implcita de um Error no permitida. Por exemplo, voc no pode atribuir diretamente o valor
de retorno de CVErr a uma varivel que no Variant. Contudo, pode efetuar uma converso explcita (utilizando CInt,
CDbl e assim por diante) do valor retornado por CVErr e atribu-la a uma varivel do tipo de dados apropriado.

Funo Val
Retorna os nmeros contidos em uma seqncia como um valor numrico do tipo apropriado.
Sintaxe
Val(seqncia)
O argumento obrigatrio seqncia pode ser qualquer expresso de seqncia vlida.
Comentrios
A funo Val interrompe a leitura da seqncia no primeiro caractere que no puder reconhecer como parte de um nmero.
Os smbolos e os caracteres que so geralmente considerados partes de valores numricos, como o cifro e as vrgulas,
no so reconhecidos. Contudo, a funo reconhece os prefixos de raiz &O (para octal) e &H (para hexadecimal). Os
caracteres em branco, as tabulaes e a alimentao de linha so retirados do argumento.
O exemplo a seguir retorna o valor 1615198:
Val(" 1615 198th Street N.E.")
No cdigo abaixo, Val retorna o valor decimal -1 para o valor hexadecimal apresentado:
Val("&HFFFF")
Observao A funo Val reconhece somente o ponto (.) como um separador decimal vlido. Quando separadores
decimais diferentes puderem ser utilizados, por exemplo, em aplicativos que no estejam em ingls, utilize CDbl ao invs
de converter uma seqncia em um nmero.

Funes de converso de tipo


Cada funo fora a converso de uma expresso em um tipo de dados especfico.

Sintaxe
CBool(expresso)
CByte(expresso)
CCur(expresso)
CDate(expresso)
CDbl(expresso)
CDec(expresso)
CInt(expresso)
CLng(expresso)
CSng(expresso)
CVar(expresso)
CStr(expresso)
O argumento obrigatrio expresso pode ser qualquer expresso de seqncia ou expresso numrica.

Tipos de retorno
O nome da funo determina o tipo de retorno como mostrado a seguir:
Funo
Tipo de retorno Intervalo do argumento expresso
CBool
Boolean
Qualquer seqncia ou expresso numrica vlida.
CByte
Byte
de 0 a 255.
CCur
Currency
de
-922.337.203.685.477,5808
a
922.337.203.685.477,5807.
CDate
Date
Qualquer expresso de data vlida.
CDbl
Double
de
-1,79769313486232E308
a
-4,94065645841247E-324 para valores negativos; de
4,94065645841247E-324 a 1,79769313486232E308
para valores positivos.
CDec
Decimal
+/-79.228.162,514.264.337.593.543.950.335
para
nmeros inteiros, isto , nmeros sem casas
decimais. Para nmeros com 28 casas decimais, o
intervalo

+/-7,9228162514264337593543950335. O menor
nmero
possvel
diferente
de
zero

0,0000000000000000000000000001.
CInt
Integer
de -32.768 a 32.767; as fraes so arredondadas.
Funes Internas

49

CLng

Long

CSng

Single

CVar

Variant

CStr

String

de -2.147.483.648 a 2.147.483.647; as fraes so


arredondadas.
de -3,402823E38 a -1,401298E-45 para valores
negativos; de 1,401298E-45 a 3,402823E38 para
valores positivos.
Mesmo intervalo de Double para valores numricos.
Mesmo intervalo de String para valores nonumricos.
Os retornos para CStr dependem do argumento da
expresso.

Comentrios
Se a expresso passada para a funo estiver fora do intervalo para o qual o tipo de dados est sendo convertido, um erro
ser gerado.
Em geral, voc pode documentar seu cdigo utilizando as funes de converso de tipo de dados para mostrar que o
resultado de algumas operaes deve ser expressado como um tipo de dados em particular ao invs do tipo de dados
padro. Por exemplo, utilize CCur para forar o clculo monetrio nos casos onde normalmente ocorreriam clculos de
preciso nica, preciso dupla ou de nmero inteiro.
Voc deve utilizar as funes de converso de tipo de dados em vez de Val para fornecer converses de dados
internacionais de um tipo de dados para outro. Por exemplo, quando voc utiliza CCur, separadores decimais diferentes,
separadores de milhares diferentes e vrias opes de moeda so reconhecidas apropriadamente dependendo da
definio da localidade em seu computador.
Quando uma parte fracionria equivaler exatamente a 0,5, CInt e CLng sempre a arredondaro para o nmero par mais
prximo. Por exemplo, 0,5 arredondado para 0 e 1,5 para 2. CInt e CLng diferem das funes Fix e Int, que truncam, ao
invs de arredondar, a parte fracionria de um nmero. Alm disso, Fix e Int sempre retornam um valor do mesmo tipo do
valor que passado para eles.
Utilize IsDate para determinar se a data pode ser convertida para uma data ou hora. CDate reconhece os literais de data e
de hora assim como alguns nmeros contidos no intervalo de datas aceitveis. Ao converter um nmero em data, todo o
nmero convertido em uma data. Qualquer parte fracionria do nmero convertida em uma hora do dia, comeando
meia-noite.
CDate reconhece os formatos de data de acordo com a definio de localidade de seu sistema. A ordem correta de dia,
ms e ano pode no ser determinada se for fornecida em um formato diferente das definies de data reconhecidas. Alm
disso, o formato de data no reconhecido se tambm contiver o nome do dia da semana.
Uma funo CVDate tambm fornecida para se obter compatibilidade com as verses anteriores do Visual Basic. A
sintaxe da funo CVDate idntica da funo Cdate. Entretanto, CVDate retorna um Variant cujo subtipo Date em
vez de um tipo Date real. Como j existe um tipo de data Date intrnseca, no haver mais necessidade de CVDate. O
mesmo efeito pode ser alcanado convertendo uma expresso em Date, e, em seguida, atribuindo-lhe um Variant. Essa
tcnica consistente com a converso de todos os outros tipos intrnsecos a seus subtipos de Variant equivalentes.
Observao A funo CDec no retorna um tipo de dados discreto; ao contrrio, ela sempre retorna um Variant cujo valor
tenha sido convertido em um subtipo Decimal.
Retornos de CStr
Se a expresso for CStr retorna
Boolean
Uma seqncia contendo True ou False
Date
Uma seqncia contendo uma data no formato curto de seu
sistema
Null
Um erro em tempo de execuo
Empty
Uma seqncia de comprimento zero ("")
Error
Uma seqncia contendo a palavra Error seguida pelo nmero
do erro
Outros
valoresUma seqncia contendo o nmero
numricos

Tipo de dados Boolean


As variveis Boolean so armazenadas como nmeros de 16 bits (2 bytes), mas podem conter somente os valores True ou
False. As variveis Boolean so exibidas como True ou False (quando usado Print) ou #TRUE# ou #FALSE# (quando
usado Write #). Use as palavras-chave True e False para atribuir um dos dois estados a variveis Boolean.
Quando outros tipos numricos so convertidos em valores Boolean, 0 torna-se False e todos os outros valores tornam-se
True. Quando os valores Boolean so convertidos para outros tipos de dados, False torna-se 0 e True torna-se -1.

Tipo de dados Byte


As variveis Byte so armazenadas como nmeros de 8 bits (1 byte), sem sinal, nicos, que variam em valor de 0 a 255.
O tipo de dados Byte til para conter dados binrios.

Tipo de dados Currency


As variveis Currency so armazenadas como nmeros de 64 bits (8 bytes) no formato de nmero inteiro, com escala de
10.000 para fornecer um nmero de vrgula fixa com 15 dgitos esquerda do ponto decimal e 4 dgitos direita. Essa

Funes Internas

50

representao proporciona um intervalo de -922.337.203.685.477,5808 a 922.337.203.685.477,5807. O caractere de


declarao de tipo referente a Currency o sinal (@).
O tipo de dados Currency til para clculos que envolvem dinheiro e clculos de vrgula fixa, nos quais a preciso
especialmente importante.

Resumo dos tipos de dados


A tabela a seguir mostra os tipos de dados suportados, incluindo tamanhos e intervalos de armazenamento.
Tipo de dados
Tamanho
deIntervalo
armazenamento
Byte
1 byte
0 a 255
Boolean
2 bytes
True ou False
Integer
2 bytes
-32.768 a 32.767
Long
4 bytes
-2.147.483.648 a 2.147.483.647
(inteiro longo)
Single
4 bytes
-3,402823E38 a -1,401298E-45 para valores
(vrgula flutuante de
negativos; 1,401298E-45 a 3,402823E38 para
preciso simples)
valores positivos
Double
8 bytes
-1,79769313486232E308
a
(vrgula flutuante de
-4,94065645841247E-324 para valores negativos;
preciso dupla)
4,94065645841247E-324 a 1,79769313486232E308
para valores positivos
Currency
8 bytes
-922.337.203.685.477,5808
a
(inteiro escalado)
922.337.203.685.477,5807
Decimal
14 bytes
+/-79.228.162.514.264.337.593.543.950.335
sem
ponto
decimal;
+/-7,9228162514264337593543950335
com
28
casas decimais direita; o menor nmero diferente
de
zero

+/-0,0000000000000000000000000001.
Date
8 bytes
De 1 de Janeiro de 100 at 31 de Dezembro de
9999
Object
4 bytes
Qualquer referncia a Object
String
10
bytes
+De 0 at aproximadamente 2 bilhes
(comprimento
dacomprimento da
varivel)
seqncia
de
caracteres
String
Comprimento daDe 1 at aproximadamente 65.400
(comprimento fixo)
seqncia
de
caracteres
Variant
16 bytes
Qualquer valor numrico at o intervalo de um
(com nmeros)
Double
Variant
22
bytes
+O mesmo intervalo que String de comprimento
(com caracteres)
comprimento davarivel
seqncia
de
caracteres
Definido pelo usurio Nmero requeridoO intervalo de cada elemento o mesmo que o
(usando Type)
por elementos
intervalo do seu tipo de dados.
Observao Matrizes de qualquer tipo de dados requerem 20 bytes de memria, mais 4 bytes para cada dimenso da
matriz, mais o nmero de bytes ocupados pelos prprios dados. A memria ocupada pelos dados pode ser calculada
multiplicando-se o nmero de elementos de dados pelo tamanho de cada elemento. Por exemplo, os dados em uma matriz
de dimenso nica consistindo de 4 elementos de dados Integer de 2 bytes cada, ocupa 8 bytes. Os 8 bytes exigidos para
os dados, mais os 24 bytes fixos, fazem com que o requisito de memria para a matriz seja de 32 bytes.
Um Variant contendo uma matriz requer 12 bytes a mais do que uma matriz sozinha.

Tipo de dados Date


As variveis Date so armazenadas como nmeros IEEE de vrgula flutuante de 64 bits (8 bytes) que representam as datas
que variam de 1 de janeiro do ano 100 at 31 de dezembro de 9999 e as horas que variam de 0:00:00 at 23:59:59.
Qualquer valor literal de data reconhecvel pode ser atribudo a variveis Date. Os literais Date devem estar entre sinais (#),
por exemplo, #January 1, 1993# ou #1 Jan 93#.
As variveis Date exibem as datas de acordo com o formato abreviado de data reconhecido pelo seu computador. As horas
so exibidas de acordo com o formato de hora (de 12 ou de 24 horas) reconhecido pelo seu computador.
Quando outros tipos numricos so convertidos em Date, os valores esquerda do decimal representam as informaes
de data, enquanto os valores direita representam a hora. Meia-noite 0 e meio-dia 0,5. Os nmeros negativos inteiros
representam datas anteriores a 30 de dezembro de 1899.

Tipo de dados Decimal


As variveis Decimal so armazenadas como nmeros inteiros, sem sinal, de 96 bits (12 bytes), escalados por uma
potncia de 10 varivel. O fator de escala potncia de 10 especifica o nmero de dgitos direita da vrgula decimal e varia

Funes Internas

51

de 0 a 28. Com uma escala de 0 (sem casas decimais), o maior valor possvel +/79.228.162.514.264.337.593.543.950.335. Com 28 casas decimais, o maior valor +/-7,9228162514264337593543950335
e o menor valor, diferente de zero, +/-0,0000000000000000000000000001.
Observao Por ora, o tipo de dados Decimal pode ser usado somente dentro de um Variant, ou seja, voc no pode
declarar uma varivel como sendo do tipo Decimal. Voc pode, entretanto, criar um Variant cujo subtipo seja Decimal
usando a funo CDec.

Tipo de dados Double


As variveis Double (vrgula flutuante de preciso dupla) so armazenadas como nmeros IEEE de vrgula flutuante de 64
bits (8 bytes), com valor no intervalo -1,79769313486232E308 a -4,94065645841247E-324 para valores negativos, e de
4,94065645841247E-324 a 1,79769313486232E308 para valores positivos. O caractere de declarao de tipo para Double
o smbolo (#).

Tipo de dados Integer


As variveis Integer so armazenadas como nmeros de 16 bits (2 bytes) com valor no intervalo de -32.768 a 32.767. O
caractere de declarao de tipo para Integer o smbolo de porcentagem (%).
As variveis Integer tambm podem ser usadas para representar valores enumerados. Um valor enumerado pode conter
um conjunto finito de nmeros inteiros, cada qual possuindo um significado especial no contexto em que usado. Os
valores enumerados oferecem uma forma conveniente de selecionar entre um nmero de opes conhecidas, por exemplo,
preto = 0, branco = 1, e assim por diante. boa prtica de programao definir constantes usando a instruo Const para
cada valor enumerado.

Tipo de dados Long


As variveis Long (inteiro longo) so armazenadas como nmeros de 32 bits (4 bytes) assinalados no intervalo de
-2.147.483.648 a 2.147.483.647. O caractere de declarao de tipo referente a Long o ampersand (&).

Tipo de dados Object


As variveis Object so armazenadas como endereos de 32 bits (4 bytes) que se referem a objetos. Usando a instruo
Set, uma varivel declarada como um Object pode ter qualquer referncia de objeto atribuda a ela.
Observao Embora uma varivel declarada com o tipo Object seja flexvel o suficiente para conter uma referncia a
qualquer objeto, a ligao ao objeto referido por aquela varivel sempre atrasada (ligao por tempo de execuo). Para
forar a ligao adiantada (ligao por tempo de compilao), atribua a referncia do objeto a uma varivel declarada com
um nome de classe especfico.

Tipo de dados Single


As variveis Single (de vrgula flutuante de preciso nica) so armazenadas como nmeros IEEE de vrgula flutuante de
32 bits (4 bytes), com valor no intervalo de -3,402823E38 a -1,401298E-45 para valores negativos e de 1,401298E-45 a
3,402823E38 para valores positivos. O caractere de declarao de tipo para Single o ponto de exclamao (!).

Tipo de dados String


Existem dois tipos de seqncias de caracteres: de comprimento varivel e de comprimento fixo.
Uma seqncia de comprimento varivel pode conter at aproximadamente 2 bilhes (2^31) de caracteres.
Uma seqncia de comprimento fixo pode conter de 1 at aproximadamente 64K (2^16) caracteres.

Observao Uma seqncia de caracteres de comprimento fixo Public no pode ser usada em um mdulo de classe.
Os cdigos para caracteres String variam de 0 a 255. Os primeiros 128 caracteres (0127) do conjunto de caracteres
correspondem s letras e smbolos de um teclado padro americano. Esses 128 primeiros caracteres so os mesmos
definidos pelo conjunto de caracteres ASCII. Os 128 caracteres restantes (128255) representam caracteres especiais,
como letras de alfabetos internacionais, acentos, smbolos monetrios e fraes. O caractere de declarao de tipo para
String o cifro ($).

Tipo de dados definido pelo usurio


qualquer tipo de dados que voc define usando a instruo Type. Os tipos de dados definidos pelo usurio podem conter
um ou mais elementos de um tipo de dados, uma matriz ou um tipo previamente definido pelo usurio. Por exemplo:
Type MeuTipo
MeuNome As String ' A varivel de seqncia de caracteres armazena um nome.
MinhaDataNasc As Date ' Varivel de data armazena a data do nascimento.
MeuSexo As Integer ' A varivel de inteiro armazena o sexo (0 para
End Type
' feminino, 1 para masculino).

Tipo de dados Variant


O tipo de dados Variant o tipo de dados para todas as variveis que no foram explicitamente declaradas como algum
outro tipo (usando instrues como Dim, Private, Public ou Static). O tipo de dados Variant no possui caractere de
declarao de tipo.

Funes Internas

52

Um Variant um tipo de dados especial que contm qualquer tipo de dados com exceo de dados String de comprimento
fixo e os tipos definidos pelo usurio. O Variant tambm pode conter valores especiais Empty, Error, Nothing e Null. Voc
pode determinar como os dados em uma Variant so tratados usando as funes VarType ou TypeName.
Os dados numricos podem ter qualquer valor de nmero inteiro ou real no intervalo de -1,797693134862315E308 a
-4,94066E-324 para valores negativos e de 4,94066E-324 a 1,797693134862315E308 para valores positivos. Geralmente
os dados numricos Variant so mantidos em seu tipo de dados original dentro de Variant. Por exemplo, se voc atribuir
um Integer a uma Variant, as operaes subsequentes trataro a Variant como um Integer. Entretanto, se uma operao
aritmtica for realizada em uma Variant contendo um Byte, um Integer, um Long ou um Single, e o resultado exceder o
intervalo normal para o tipo de dados original, o resultado ser promovido dentro da Variant para o prximo tipo de dados
maior. Um Byte promovido a Integer, um Integer promovido a Long e um Long e um Single so promovidos a
Double. Ocorrer um erro quando as variveis de Variant contendo os valores Currency, Decimal e Double excederem
seus respectivos intervalos.
Voc pode usar o tipo de dados Variant no lugar de qualquer tipo de dados para trabalhar com dados de uma forma mais
flexvel. Se o contedo de uma varivel Variant for dgitos, eles podem ser a representao em seqncia de caracteres
dos dgitos ou seu valor real, dependendo do contexto. Por exemplo:
Dim MinhaVar As Variant
MinhaVar = 98052
No exemplo anterior, MinhaVar contm uma representao numricao valor real 98052. Os operadores aritmticos
funcionam como esperado em variveis Variant que contm valores numricos ou dados de seqncia de caracteres que
podem ser interpretados como nmeros. Se voc usar o operador + para adicionar MinhaVar a uma outra Variant contendo
um nmero ou a uma varivel de um tipo numrico, o resultado ser uma soma aritmtica.
O valor Empty denota uma varivel Variant que no foi inicializada (atribudo um valor inicial). Uma Variant contendo
Empty ser 0 se for usada em um contexto numrico, e uma seqncia de caracteres de comprimento zero ("") se for
usada em um contexto de seqncia de caracteres.
No confunda Empty com Null. Null indica que a varivel Variant propositadamente no contm dados vlidos.
Em uma Variant, Error representa um valor especial usado para indicar que ocorreu uma condio de erro em um
procedimento. Entretanto, ao contrrio de outros tipos de erro, no ocorre a manipulao normal de erros no nvel do
aplicativo. Isso permite que voc ou o prprio aplicativo, realize alguma ao alternativa com base no valor do erro. Os
valores de Error so criados pela converso de nmeros reais em valores de erro usando a funo CVErr.
Exemplo da funo Date
Este exemplo utiliza a funo Date para retornar a data atual do sistema.
Dim MinhaData
MinhaData = Date ' MinhaData contm a data atual do sistema.
Exemplo da instruo Date
Este exemplo utiliza a instruo Date para definir a data do sistema do computador. No ambiente de desenvolvimento, a
literal de data exibida em formato de data abreviada utilizando as definies de localidade do seu cdigo.
Dim MinhaData
MinhaData = #Fevereiro 12, 1985# ' Atribui uma data.
Date = MinhaData ' Altera a data do sistema.
Exemplo da funo DateAdd
Este exemplo toma uma data e, utilizando a funo DateAdd, exibe uma data correspondente em um nmero especificado
de meses no futuro.
Dim PrimeiraData As Date ' Declara variveis.
Dim TipoDoIntervalo As String
Dim Nmero As Integer
Dim Msg
TipoDoIntervalo = "m" ' "m" especifica meses como intervalo.
PrimeiraData = InputBox("Insira uma data")
Nmero = InputBox("Insira o nmero de meses a adicionar")
Msg = "Nova data: " & DateAdd(TipoDoIntervalo, Nmero, PrimeiraData)
MsgBox Msg
Exemplo da funo DateDiff
Este exemplo utiliza a funo DateDiff para exibir o nmero de dias entre uma determinada data e hoje.
Dim AData As Date ' Declara as variveis.
Dim Msg
AData = InputBox("Insira uma data")
Msg = "Dias a contar de hoje: " & DateDiff("d", Agora, AData)
MsgBox Msg
Exemplo da funo DatePart
Este exemplo toma uma data e, utilizando a funo DatePart, exibe o trimestre do ano no qual ela ocorre.
Dim AData As Date ' Declara as variveis.
Dim Msg
AData = InputBox("Insira uma data:")
Funes Internas

53

Msg = "Trimestre: " & DatePart("q", AData)


MsgBox Msg
Exemplo da funo DateSerial
Este exemplo utiliza a funo DateSerial para retornar a data do ano, ms e dia especificados.
Dim MinhaData
' MinhaData contm a data de 12 de fevereiro de 1969.
MinhaData = DateSerial(1969, 2, 12) ' Retorna uma data.
Exemplo da funo DateValue
Este exemplo utiliza a funo DateValue para converter uma seqncia de caracteres em uma data. Voc pode tambm
utilizar literais de data para atribuir diretamente uma data a uma varivel Variant ou Date, por exemplo, MinhaData =
#2/12/69#).
Dim MinhaData
MinhaData = DateValue("12 Fevereiro 1969")
' Retorna uma data.
Exemplo da funo Day
Este exemplo utiliza a funo Day para obter o dia do ms de uma data especificada. No ambiente de desenvolvimento, a
literal de data exibida em formato abreviado utilizando as definies de localidade do seu cdigo.
Dim MinhaData, MeuDia
MinhaData = #Fevereiro 12, 1969# ' Atribui uma data.
MeuDia = Day(MinhaData) ' MeuDia contm 12.
Exemplo da funo Hour
Este exemplo utiliza a funo Hour para obter a hora de um horrio especificado. No ambiente de desenvolvimento, a literal
de hora exibida em formato de hora abreviada utilizando as definies de localidade do seu cdigo.
Dim MeuHorrio, MinhaHora
MeuHorrio = #4:35:17 PM# ' Atribui um horrio.
MinhaHora = Hour(MeuHorrio) ' MinhaHora contm 16.
Exemplo da funo Minute
Este exemplo utiliza a funo Minute para obter o minuto da hora de um horrio especificado. No ambiente de
desenvolvimento, a literal de hora exibida em formato de hora abreviada utilizando as definies de localidade do seu
cdigo.
Dim MeuHorrio, MeuMinuto
MeuHorrio = #4:35:17 PM# ' Atribui uma hora.
MeuMinuto = Minute(MeuHorrio)
' MeuMinuto contm 35.
Exemplo da funo Month
Este exemplo utiliza a funo Month para obter o ms de uma data especificada. No ambiente de desenvolvimento, a literal
de data exibida em formato de data abreviada utilizando as definies de localidade do seu cdigo.
Dim MinhaData, MeuMs
MinhaData = #Fevereiro 12, 1969# ' Atribui uma data.
MeuMs = Month(MinhaData) ' MeuMs contm 2.
Exemplo da funo Now
Este exemplo utiliza a funo Now para retornar a data e a hora do sistema atual.
Dim Hoje
Hoje = Now ' Atribui a data e a hora atuais do sistema.
Exemplo da funo Second
Este exemplo utiliza a funo Second para obter o segundo do minuto de um horrio especificado. No ambiente de
desenvolvimento, a literal de hora exibida em formato de hora abreviada utilizando as definies de localidade do seu
cdigo.
Dim MeuHorrio, MeuSegundo
MeuHorrio = #4:35:17 PM# ' Atribui uma hora.
MeuSegundo = Second(MeuHorrio) ' MeuSegundo contm 17.
Exemplo da funo Time
Este exemplo utiliza a funo Time para retornar o horrio atual do sistema.
Dim MeuHorrio
MeuHorrio = Time ' Retorna o horrio atual do sistema.
Exemplo da instruo Time
Este exemplo utiliza a instruo Time para definir o horrio do sistema do computador como um horrio definido pelo
usurio.
Dim MeuHorrio
Funes Internas

54

MeuHorrio = #4:35:17 PM# ' Atribui um horrio.


Time = MeuHorrio ' Define o horrio do sistema como MeuHorrio.
Exemplo da funo Timer
Este exemplo utiliza a funo Timer para pausar o aplicativo. O exemplo tambm utiliza DoEvents para submeter-se a
outros processos durante a pausa.
Dim TempoDePausa, Incio, Fim, TempoTotal
If (MsgBox("Pressione Sim para pausar por 5 segundos", 4)) = vbYes Then
TempoDePausa = 5 ' Define a durao.
Incio = Timer
' Define a hora inicial.
Do While Timer < Incio + TempoDePausa
DoEvents
' Submete-se a outros processos.
Loop
Fim = Timer ' Define a hora final.
TempoTotal = Fim - Incio ' Calcula o tempo total.
MsgBox "Pausou por " & TempoTotal & " segundos"
Else
End
End If
Exemplo da funo TimeSerial
Este exemplo utiliza a funo TimeSerial para retornar um horrio para a hora, minuto e segundo especificados.
Dim MeuHorrio
MeuHorrio = TimeSerial(16, 35, 17) ' MeuHorrio contm a representao
' serial de 4:35:17 PM.
Exemplo da funo TimeValue
Este exemplo utiliza a funo TimeValue para converter uma seqncia de caracteres em um horrio. Voc pode tambm
utilizar literais de data para atribuir diretamente uma hora a uma varivel Variant ou Date, por exemplo, MeuHorrio =
#4:35:17 PM#.
Dim MeuHorrio
MeuHorrio = TimeValue("4:35:17 PM") ' Retorna uma hora.
Exemplo da funo Weekday
Este exemplo utiliza a funo Weekday para obter o dia da semana de uma data especificada.
Dim MinhaData, MeuDiaDaSemana
MinhaData = #Fevereiro 12, 1969# ' Atribui uma data.
MeuDiaDaSemana = Weekday(MinhaData) ' MeuDiaDaSemana contm 4 porque
' MinhaData representa uma quarta-feira.
Exemplo da funo Year
Este exemplo utiliza a funo Year para obter o ano de uma data especificada. No ambiente de desenvolvimento, a literal
de data exibida em formato de data abreviada utilizando as definies de localidade do seu cdigo.
Dim MinhaData, MeuAno
MinhaData = #Fevereiro 12, 1969# ' Atribui uma data.
MeuAno = Year(MinhaData) ' MeuAno contm 1969.

Funo Date
Retorna um Variant (Date) contendo a data atual do sistema.
Sintaxe
Date
Comentrios
Para definir a data do sistema, utilize a instruo Date.

Instruo Date
Define a data atual do sistema.
Sintaxe
Date = data
Para sistemas com o Microsoft Windows 95, a especificao data exigida deve ser uma data de 1 de janeiro de 1980 a 31
de dezembro de 2099. Para sistemas que executam o Microsoft Windows NT, data deve ser uma data de 1 de janeiro de
1980 a 31 de dezembro de 2079.

Funo DateAdd
Retorna um Variant (Date) contendo uma data qual foi adicionado um segmento de tempo especfico.
Sintaxe

Funes Internas

55

DateAdd(interval, number, date)


A sintaxe da funo DateAdd possui estes argumentos nomeados:
Parte
Descrio
interval
Obrigatrio. Expresso de seqncia de caracteres que o segmento
de tempo que voc deseja adicionar.
number
Obrigatrio. Expresso numrica que o nmero de segmentos que
voc deseja adicionar. Pode ser positivo (para obter datas futuras) ou
negativo (para obter datas passadas).
date
Obrigatrio. Variant (Date) ou literal que representa a data na qual o
segmento adicionado.
Definies
O argumento interval possui estas definies:
Definio Descrio
yyyy
Ano
q
Trimestre
m
Ms
y
Dia do ano
d
Dia
w
Dia da semana
ww
Semana
h
Hora
n
Minuto
s
Segundo
Comentrios
Voc pode utilizar a funo DateAdd para adicionar ou subtrair um segmento de tempo especfico de uma data. Por
exemplo, voc pode utilizar DateAdd para calcular uma data a 30 dias de hoje ou uma hora a 45 minutos de agora.
Para adicionar dias a date, voc pode utilizar Dia do ano ("y"), Dia ("d"), ou Dia da semana ("w").
A funo DateAdd no retorna uma data invlida. O exemplo a seguir 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 fosse 31-jan-95, retornaria 29-fev-96 porque 1996 um
ano bissexto.
Se a data calculada fosse anterior ao ano 100 (isto , voc subtrairia mais anos do que esto em date), ocorreria um erro.
Se number no for um valor Long, ser arredondado para o nmero inteiro mais prximo antes de ser avaliado.

Funo DateDiff
Retorna um Variant (Long) que especifica o nmero de segmentos de tempo entre duas datas especificadas.
Sintaxe
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
A sintaxe da funo DateDiff possui estes argumentos nomeados:
Parte
Descrio
interval
Obrigatrio. Expresso de seqncia de caracteres que o
segmento que voc utiliza para calcular a diferena entre data1
e data2.
date1, date2
Obrigatrio; Variant (Date). Duas datas que voc deseja utilizar
no clculo.
firstdayofweek
Opcional. Uma constante que especifica o primeiro dia da
semana. Se no for especificada, assumido o domingo.
firstweekofyear
Opcional. Uma constante que especifica a primeira semana do
ano. Se no for especificada, assumida como a semana em
que ocorre o dia 1 de janeiro.
Definies
O argumento interval possui estas definies:
Definio Descrio
yyyy
Ano
q
Trimestre
m
Ms
y
Dia do ano
d
Dia
w
Dia da semana
ww
Semana
h
Hora
n
Minuto
s
Segundo
O argumento firstdayofweek possui estas definies:
Constante
Valor
Descrio
vbUseSystem
0
Utiliza a definio NLS API.
Funes Internas

56

VbSunday
vbMonday
vbTuesday
vbWednesday
vbThursday
vbFriday
vbSaturday

1
2
3
4
5
6
7

Domingo (padro)
Segunda-feira
Tera-feira
Quarta-feira
Quinta-feira
Sexta-feira
Sbado

O argumento firstweekofyear possui estas definies:


Constante
Valor
Descrio
vbUseSystem
0
Utiliza a definio NLS API.
vbFirstJan1
1
Inicia com a semana na qual ocorre o dia 1 de
janeiro (padro).
vbFirstFourDays
2
Inicia com a primeira semana que tem pelo menos
quatro dias no ano novo.
vbFirstFullWeek
3
Inicia com a primeira semana cheia do ano.
Comentrios
Voc pode utilizar a funo DateDiff para determinar quantos segmentos de tempo especificados existem entre duas datas.
Por exemplo, voc pode utilizar DateDiff para calcular o nmero de dias entre duas datas, ou o nmero de semanas entre
hoje e o final do ano.
Para calcular o nmero de dias entre date1e date2, voc pode utilizar Dia do ano ("y") ou Dia ("d"). Quando interval for um
Dia da semana ("w"), DateDiff retorna o nmero de semanas entre as duas datas. Se date1 cair em uma segunda-feira,
DateDiff contar o nmero de segundas-feiras at date2. contada date2 mas no date1. Entretanto, se interval for
Semana ("ww") a funo DateDiff retorna o nmero de semanas de calendrio entre as duas datas. Ela conta o nmero de
segundas-feiras entre date1 e date2. DateDiff conta date2 se cair em um domingo, mas no conta date1, mesmo que caia
em um domingo.
Se date1 se referir a um ponto no tempo alm de date2, a funo DateDiff retornar um nmero negativo.
O argumento firstdayofweek afeta os clculos que utilizam os smbolos de intervalo "w" e "ww".
Se data1 ou data2 for uma literal de data,, o ano especificado se torna uma parte permanente daquela data. Entretanto, se
data1 ou data2 for colocada entre aspas duplas (" ") e voc omitir o ano, o ano atual ser inserido no seu cdigo cada vez
que a expresso data1 ou data2 for avaliada. Isto torna possvel escrever o cdigo que pode ser utilizado em anos
diferentes.
Quando compara 31 de dezembro com 1 de janeiro do ano imediatamente seguinte, DateDiff para Ano ("yyyy") retorna 1,
mesmo que tenha se passado apenas um dia.

Funo DatePart
Retorna um Variant (Integer) que contm a parte especificada de uma data dada.
Sintaxe
DatePart(interval, date[,firstdayofweek[, firstweekofyear]])
A sintaxe da funo DatePart possui estes argumentos nomeados:
Parte
Descrio
interval
Obrigatrio. Expresso de seqncia de caracteres que o
intervalo de tempo que voc deseja retornar.
date
Obrigatrio. Valor de Variant (Date) que voc deseja avaliar.
firstdayofweek
Opcional. Uma constante que especifica o primeiro dia da
semana. Se no for especificada, assumido o domingo.
firstweekofyear
Opcional. Uma constante que especifica a primeira semana do
ano. Se no for especificada, assumida como aquela em que
ocorre o dia 1 de janeiro.
Definies
O argumento interval possui estas definies:
Definio Descrio
yyyy
Ano
q
Trimestre
m
Ms
y
Dia do ano
d
Dia
w
Dia da semana
ww
Semana
h
Hora
n
Minuto
s
Segundo
O argumento firstdayofweek possui estas definies:
Constante
Valor
Descrio
vbUseSystem
0
Utiliza a definio NLS API.
vbSunday
1
Domingo (padro)
vbMonday
2
Segunda-feira
vbTuesday
3
Tera-feira
vbWednesday
4
Quarta-feira

Funes Internas

57

vbThursday
vbFriday
vbSaturday

5
6
7

Quinta-feira
Sexta-feira
Sbado

O argumento firstweekofyear possui estas definies:


Constante
Valor
Descrio
vbUseSystem
0
Utiliza a definio NLS API.
vbFirstJan1
1
Inicia com a semana na qual ocorre o dia 1 de
janeiro (padro).
vbFirstFourDays
2
Inicia com a semana que tem pelo menos quatro dias
no ano novo.
vbFirstFullWeek
3
Inicia com a primeira semana cheia do ano.
Comentrios
Voc pode utilizar a funo DatePart para avaliar uma data e retornar um segmento de tempo especfico. Por exemplo,
voc poderia utilizar DataPart para calcular o dia da semana ou a hora atual.
O argumento firstdayofweek afeta clculos que utilizam os smbolos de intervalo "w" e "ww".
Se data for uma literal de data, o ano especificado torna-se uma parte permanente dessa data. Entretanto, se data estiver
entre aspas duplas (" ") e voc omitir o ano, o ano atual ser inserido no seu cdigo toda vez que a expresso data for
avaliada. Isto torna possvel escrever o cdigo que pode ser utilizado em anos diferentes.

Funo DateSerial
Retorna um Variant (Date) para um ano, ms e dia especficos.
Sintaxe
DateSerial(year, month, day)
A sintaxe da funo DateSerial possui estes argumentos nomeados:
Parte
Descrio
year
Obrigatrio; Integer. Nmero entre 100 e 9999, inclusive, ou uma
expresso numrica.
month
Obrigatrio; Integer. Qualquer expresso numrica.
day
Obrigatrio; Integer. Qualquer expresso numrica.
Comentrios
Para especificar uma data, como 31 de dezembro de 1991, o intervalo de nmeros para cada argumento de DateSerial
deve estar no intervalo aceito para a unidade, isto , 131 para dias e 112 para meses. Entretanto, voc pode tambm
especificar datas relativas para cada argumento utilizando qualquer expresso numrica que represente algum nmero de
dias, meses ou anos, antes ou depois de uma certa data.
O exemplo a seguir utiliza expresses numricas em vez de nmeros absolutos de data. Aqui a funo DateSerial retorna
uma data que o dia anterior ao primeiro dia (1 - 1), dois meses antes de agosto (8 - 2), 10 anos antes de 1990 (1990 - 10);
em outras palavras, 31 de maio de 1980.
DateSerial(1990 - 10, 8 - 2, 1 - 1)
Para o argumento year, os valores entre 0 e 99, inclusive, so interpretados como os anos 19001999. Para todos os
outros argumentos year, utilize o ano de quatro dgitos (por exemplo, 1800).
Quando qualquer argumento exceder o intervalo aceito para esse argumento, ele incrementado at a prxima unidade
maior apropriada. Por exemplo, se voc especificar 35 dias, ser avaliado como um ms e alguns dias, dependendo em
que poca do ano seja aplicado. Se qualquer argumento nico estiver fora do intervalo -32.768 a 32.767, ocorrer um erro.
Se a data especificada pelos trs argumentos ficar fora do intervalo de datas aceitvel, ocorrer um erro.

Funo DateValue
Retorna um Variant (Date).
Sintaxe
DateValue(data)
O argumento data requerido normalmente uma expresso de seqncia de caracteres que representa uma data de 1 de
janeiro de 100 a 31 de dezembro de 9999. Entretanto, data tambm pode ser qualquer expresso que possa representar
uma data, uma hora ou ambos, naquele intervalo.
Comentrios
Se data for uma seqncia de caracteres que inclui somente nmeros separados por separadores de data vlidos,
DateValue reconhecer a ordem para ms, dia e ano de acordo com o formato Short Date que voc especificou para o seu
sistema. DateValue tambm reconhece datas no ambguas que contenham nomes de meses, na forma longa ou
abreviada. Por exemplo, alm de reconhecer 30/12/1991 e 30/12/91, DateValue reconhece tambm 30 de dezembro de
1991 e 30-dez-1991.
Se a parte de ano de data for omitida, DateValue utiliza o ano atual da data do seu sistema de computador.
Se o argumento data incluir informaes de hora, DateValue no a retorna. Entretanto, se data incluir informao de hora
invlida (como "89:98"), ocorrer um erro.

Funo Day
Retorna um Variant (Integer) que especifica um nmero inteiro entre 1 e 31, inclusive, representando o dia do ms.
Sintaxe
Day(data)
O argumento data requerido qualquer Variant, expresso numrica, expresso de seqncia de caracteres, ou qualquer
combinao que possa representar uma data. Se data contiver Null, ser retornado Null.

Funes Internas

58

Funo Hour
Retorna um Variant (Integer) que especifica um nmero inteiro entre 0 e 23, inclusive, representando a hora do dia.
Sintaxe
Hour(hora)
O argumento hora requerido qualquer Variant, expresso numrica, expresso de seqncia de caracteres, ou qualquer
combinao que possa representar a hora. Se hora contiver Null, ser retornado Null.

Funes Internas

59

Funo Minute
Retorna um Variant (Integer) que especifica um nmero inteiro entre 0 e 59, inclusive, representando os minutos da hora.
Sintaxe
Minute(hora)
O argumento hora requerido qualquer Variant, expresso numrica, expresso de seqncia de caracteres ou qualquer
combinao que possa representar a hora. Se hora contiver Null, ser retornado Null.

Funo Month
Retorna um Variant (Integer) que especifica um nmero inteiro entre 1 e 12, inclusive, representando o ms do ano.
Sintaxe
Month(data)
O argumento data requerido qualquer Variant, expresso numrica, expresso de seqncia de caracteres, ou qualquer
combinao que possa representar uma data. Se data contiver Null, ser retornado Null.

Funo Now
Retorna um Variant (Date) que especifica a data e hora atual de acordo com a data e hora do sistema do seu computador.
Sintaxe
Now

Funo Second
Retorna um Variant (Integer) que especifica um nmero inteiro entre 0 e 59, inclusive, representando os segundos do
minuto.
Sintaxe
Second(hora)
O argumento hora requerido qualquer Variant, expresso numrica, expresso de seqncia de caracteres, ou qualquer
combinao que possa representar a hora. Se hora contiver Null, ser retornado Null.

Funo Time
Retorna um Variant (Date) que indica a hora atual do sistema.
Sintaxe
Time
Comentrios
Para definir a hora do sistema utilize a instruo Time.

Funes Internas

60

Instruo Time
Define a hora do sistema.
Sintaxe
Time = hora
O argumento hora requerido qualquer expresso numrica, expresso de seqncia de caracteres, ou qualquer
combinao que possa representar uma hora.
Comentrios
Se hora for uma seqncia de caracteres, Time tentar convert-la para horas utilizando os separadores de hora que voc
especificou para o seu sistema. Se no puder ser convertida para uma hora vlida, ocorrer um erro.

Funo Timer
Retorna um Single que representa o nmero de segundos decorridos desde a meia-noite.
Sintaxe
Timer

Funo TimeSerial
Retorna um Variant (Date) contendo uma indicao de hora para a hora, minuto e segundo especficos.
Sintaxe
TimeSerial(hour, minute, second))
A sintaxe da funo TimeSerial possui estes argumentos nomeados:
Parte
Descrio
hour
Obrigatrio; Variant (Integer). Nmero entre 0 (0:00 h) e 23 (23:00 h),
inclusive, ou uma expresso numrica.
minute
Obrigatrio; Variant (Integer). Qualquer expresso numrica.
second
Obrigatrio; Variant (Integer). Qualquer expresso numrica.
Comentrios
Para especificar uma hora, como 11:59:59, o intervalo de nmeros para cada argumento de TimeSerial deve estar no
intervalo normal da unidade, isto , 023 para horas e 059 para minutos e segundos. Entretanto, voc pode tambm
especificar horas relativas para cada argumento utilizando qualquer expresso numrica que represente alguma
quantidade de horas, minutos ou segundos antes e depois de uma determinada hora. O exemplo a seguir utiliza
expressesf em vez de nmeros de horas absolutos. A funo TimeSerial retorna a hora de 15 minutos antes (-15) de seis
horas antes do meio-dia (12 - 6), ou 5:45:00 h.
TimeSerial(12 - 6, -15, 0)
Quando qualquer argumento excede seu intervalo normal, ele incrementado at a prxima unidade maior apropriada. Por
exemplo, se voc especificar 75 minutos, isto ser avaliado como uma hora e 15 minutos. Se qualquer argumento nico
estiver fora do intervalo -32.768 a 32.768, ocorrer um erro. Se a hora especificada pelos trs argumentos fizer com que a
data fique fora do intervalo de datas aceitvel, ocorrer um erro.

Funes Internas

61

Funo TimeValue
Retorna um Variant (Date) contendo a hora.
Sintaxe
TimeValue(hora)
O argumento hora requerido normalmente uma expresso de seqncia de caracteres representando uma hora entre
0:00:00 (0:00:00 h) e 23:59:59 (23:59:59 h), inclusive. Entretanto, hora pode ser tambm qualquer expresso quer
represente uma hora naquele intervalo. Se hora contiver Null, ser retornado Null.
Comentrios
Voc pode inserir horas vlidas utilizando um relgio de 12 ou de 24 horas. Por exemplo, tanto "2:24PM" como "14:24" so
argumentos de hora vlidos.
Se o argumento hora contiver informao de data, TimeValue no o retorna. Entretanto, se hora incluir informao de data
invlida, ocorrer um erro.

Funo Weekday
Retorna um Variant (Integer) contendo um nmero inteiro que representa o dia da semana.
Sintaxe
Weekday(date, [firstdayofweek])
A sintaxe da funo Weekday possui estes argumentos nomeados:
Parte
Descrio
date
Obrigatrio. Variant, expresso numrica, expresso de
seqncia de caracteres, ou qualquer combinao que possa
representar uma data. Se date contiver Null, ser retornado
Null.
firstdayofweek
Opcional. Uma constante que especifica o primeiro dia da
semana. Se no for especificada, ser assumida vbSunday.
Definies
O argumento firstdayofweek possui estas definies:
Constante
Valor
Descrio
vbUseSystem
0
Utiliza a definio NLS API.
vbSunday
1
Domingo (padro)
vbMonday
2
Segunda-feira
vbTuesday
3
Tera-feira
vbWednesday
4
Quarta-feira
vbThursday
5
Quinta-feira
vbFriday
6
Sexta-feira
vbSaturday
7
Sbado
Valores de Retorno
A funo Weekday pode retornar qualquer um destes valores:
Constante
Valor
Descrio
vbSunday
1
Domingo
vbMonday
2
Segunda-feira
vbTuesday
3
Tera-feira
vbWednesday
4
Quarta-feira
vbThursday
5
Quinta-feira
vbFriday
6
Sexta-feira
vbSaturday
7
Sbado

Funo Year
Retorna um Variant (Integer) contendo um nmero inteiro que representa o ano.
Sintaxe
Year(data)
O argumento data requerido qualquer Variant, expresso numrica, expresso de seqncia de caracteres, ou qualquer
combinao que possa representar uma data. Se data contiver Null, ser retornado Null.

Funo Array
Retorna uma Variant que contm uma matriz.
Sintaxe
Array(arglist)
O argumento obrigatrio arglist uma lista de valores delimitados por vrgulas que so atribudos aos elementos da matriz
contidos dentro de Variant. Se nenhum argumento for especificado, uma matriz de tamanho zero ser criada.
Comentrios
A notao utilizada para referir-se a um elemento de uma matriz consiste no nome da varivel seguido por um nmero de
ndice entre parnteses indicando o elemento desejado. No exemplo abaixo, a primeira instruo cria uma varivel
denominada A como um Variant. A segunda instruo atribui uma matriz varivel A. A ltima instruo atribui o valor
contido no segundo elemento de matriz a outra varivel.

Funes Internas

62

Dim A As Variant
A = Array(10,20,30)
B = A(2)
O limite inferior de uma matriz criada com a funo Array ser sempre zero. Ao contrrio de outros tipos de matrizes, ela
no afetada pelo limite inferior especificado pela instruo Option Base.
Observao: Uma Variant que no declarada como matriz pode, ainda assim, conter uma matriz. Uma varivel Variant
pode conter uma matriz de qualquer tipo, com exceo de seqncias de caracteres de comprimento zero e tipos definidos
pelo usurio. Embora um Variant que contm uma matriz seja conceitualmente diferente de uma matriz cujos elementos
sejam de tipo Variant, os elementos da matriz so acessados da mesma forma.

Funes Internas

63

Instruo Const
Declara as constantes a serem utilizadas no lugar de valores literais.
Sintaxe
[Public | Private] Const constname[As type] = expression
A sintaxe da instruo Const tem estas partes:
Parte
Descrio
Public
Opcional. Palavra-chave utilizada no nvel de mdulo para
declarar constantes que esto disponveis para todos os
procedimentos em todos os mdulos. No permitida em
procedimentos.
Private
Opcional. Palavra-chave utilizada no nvel de mdulo para
declarar constantes disponveis apenas dentro do mdulo no qual
a declarao feita. No permitida em procedimentos.
constname
Obrigatrio. Nome da constante; segue a varivel padro que d
nome s convenes.
type
Opcional. Tipo de dados da constante; pode ser Byte, Boolean,
Integer, Long, Currency, Single, Double, Decimal (atualmente
no suportado), Date, String ou Variant. Utilize uma clusula
type As separada para cada constante que for declarada.
expression
Obrigatrio. Um literal, outra constante ou qualquer combinao
que inclua todos os operadores aritmticos ou lgicos com
exceo de Is.
Comentrios
As constantes so privadas como padro. Dentro de procedimentos, as constantes sempre sero particulares; sua
visibilidade no pode ser alterada. Em mdulos padro, a visibilidade padro de constantes no nvel de mdulo pode ser
alterada atravs da palavra-chave Public. Nos mdulos de classe, contudo, as constantes s podem ser privadas e sua
visibilidade no pode ser alterada atravs da palavra-chave Public.
Para combinar diversas declaraes de constantes na mesma linha, separe cada atribuio de constante com uma vrgula.
Quando as declaraes de constante so combinadas dessa forma, a palavra-chave Public ou Private, se utilizada, aplicase a todas elas.
Voc no pode utilizar variveis, funes definidas pelo usurio ou funes intrnsecas ao Visual Basic (como Chr) em
expresses atribudas a constantes.
Observao:
As constantes podem tornar seus programas automaticamente documentveis e fceis de serem
modificados. Ao contrrio das variveis, as constantes no podem ser alteradas inadvertidamente enquanto seu programa
est sendo executado.
Se voc no declarar explicitamente o tipo de constante utilizando As type, a constante receber o tipo de dados mais
apropriado expression.
As constantes declaradas em um procedimento Sub, Function ou Property so locais a esse procedimento. Uma
constante declarada fora de um procedimento definida em todo o mdulo no qual declarada. Voc pode utilizar
constantes em qualquer lugar onde for possvel utilizar uma expresso.

Funes Internas

64

Funo CreateObject
Cria e retorna uma referncia a um objeto ActiveX.
Sintaxe
CreateObject(class)
O argumento class utiliza a sintaxe appname.objecttype e tem as partes abaixo:
Parte
Descrio
appname
Obrigatria; Variant (String). O nome do aplicativo que fornece o
objeto.
objecttype
Obrigatria; Variant (String). O tipo ou classe do objeto a ser criado.
Comentrios
Qualquer aplicativo que suporte Automao fornece pelo menos um tipo de objeto. Por exemplo, um aplicativo de
processamento de texto pode fornecer um objeto Application, um objeto Document e um objeto Toolbar.
Para criar um objeto ActiveX, atribua o objeto retornado por CreateObject a uma varivel de objeto:
Declara uma varivel de objeto para conter a referncia do objeto
Dim as Object provoca ligao tardia.
Dim ExcelPlan As Object
Set ExcelPlan = CreateObject("Excel.Plan")
Esse cdigo inicia o aplicativo que cria o objeto, nesse caso uma planilha do Microsoft Excel. Aps um objeto ter sido
criado, ele pode ser referido no cdigo atravs da varivel de objeto que voc definiu. No exemplo abaixo, voc acessa as
propriedades e os mtodos do novo objeto utilizando a varivel de objeto, ExcelPlan e outros objetos do Microsoft Excel,
incluindo o objeto Application e a coleo Cells.
' Torna o Excel visvel atravs do objeto Application
ExcelPlan.Application.Visible = True
' Coloca um texto na primeira clula da planilha
ExcelPlan.Cells(1, 1).Value = "Esta a coluna A, fileira 1"
' Salva a planilha no diretrio C:\test.doc
ExcelPlan.SaveAs "C:\ TEST.DOC"
' Fecha o Excel com o mtodo Quit no objeto Application
ExcelPlan.Application.Quit
' Libera a varivel de objeto
Set ExcelPlan = Nothing
Declarar uma varivel de objeto com a clusula As Object cria uma varivel que pode conter uma referncia a qualquer tipo
de objeto. No entanto, o acesso ao objeto atravs dessa varivel d-se com uma ligao tardia, ou seja, a ligao ocorre
quando seu programa j est sendo executado. Para criar uma varivel de objeto que resulte em ligao inicial, ou seja,
quando o programa compilado, declare a varivel do objeto com um cdigo de classe especfico. Por exemplo, voc pode
declarar e criar as referncias abaixo do Microsoft Excel:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
A referncia atravs de uma varivel de vinculao inicial pode proporcionar melhor desempenho, mas s pode conter uma
referncia classe especificada na declarao.
Voc pode passar um objeto retornado pela funo CreateObject para uma funo que espere um objeto como argumento.
Por exemplo, o cdigo abaixo cria e passa uma referncia a um objeto Excel.Application:
Call MinhaSub (CreateObject("Excel.Application"))
Observao: Utilize CreateObject quando no houver nenhuma ocorrncia atual do objeto. Se uma ocorrncia do objeto
j estiver sendo executada, uma nova ocorrncia iniciada e um objeto do tipo especificado criado. Para utilizar a
ocorrncia atual ou para iniciar o aplicativo e faz-lo carregar um arquivo, utilize a funo GetObject.
Se um objeto tiver registrado a si prprio como um objeto de ocorrncia nica, apenas uma ocorrncia do objeto ser
criada, independente de quantas vezes CreateObject for executado.

Instruo Declare
Utilizada no nvel de mdulo para declarar referncias a procedimentos externos em uma biblioteca de vnculo dinmico
(DLL).
Sintaxe 1
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
Sintaxe 2
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
A sintaxe da instruo Declare tem estas partes:
Parte
Descrio
Public
Opcional. Utilizada para declarar procedimentos que estejam
disponveis a todos os outros procedimentos em todos os mdulos.
Private
Opcional. Utilizada para declarar procedimentos que estejam
disponveis apenas dentro do mdulo no qual a declarao feita.
Sub
Opcional (tanto Sub quanto Function devem aparecer). Indica que o
Funes Internas

65

Function
name
Lib
Libname
Alias

Aliasname

Arglist
Type

procedimento no retorna um valor.


Opcional (Sub ou Function deve aparecer). Indica que o procedimento
retorna um valor que pode ser utilizado em uma expresso.
Obrigatria. Qualquer nome de procedimento vlido. Observe que os
pontos de entrada da DLL coincidem maisculas e minsculas.
Obrigatria. Indica que uma DLL ou recurso de cdigo contm o
procedimento que est sendo declarado. A clusula Lib exigida para
todas as declaraes.
Obrigatria. Nome da DLL ou recurso de cdigo que contm o
procedimento declarado.
Opcional. Indica que o procedimento que est sendo chamado possui
outro nome na DLL. Isso til quando o nome do procedimento
externo o mesmo de uma palavra-chave. Voc tambm pode utilizar
Alias quando um procedimento de DLL tem o mesmo nome de uma
varivel pblica, constante ou qualquer outro procedimento no mesmo
escopo. Alias tambm til se qualquer caractere do nome do
procedimento da DLL no for permitido pela conveno de
nomenclatura da DLL.
Opcional. Nome do procedimento da DLL ou recurso de cdigo. Se o
primeiro caractere no for o sinal numrico (#), aliasname ser o nome
do ponto de entrada do procedimento na DLL. Se (#) for o primeiro
caractere, todos os caracteres seguintes devero indicar o nmero
ordinal do ponto de entrada do procedimento.
Opcional. Lista de variveis que representam argumentos que so
passados ao procedimento quando ele chamado.
Opcional. Tipo de dados do valor retornado por um procedimento
Function; pode ser Byte, Boolean, Integer, Long, Currency, Single,
Double, Decimal (atualmente no-suportado), Date, String (apenas
de comprimento varivel) ou Variant, um tipo definido pelo usurio ou
um tipo de objeto.

O argumento arglist apresenta a sintaxe e as partes abaixo:


[Optional] [ByVal | ByRef] [ParamArray] varname [( )] [As type]
Parte
Optional

ByVal
ByRef
ParamArray

varname
()
type

Descrio
Opcional. Indica que um argumento no obrigatrio. Se utilizado, todos
os argumentos subseqentes em arglist devero ser opcionais e
declarados atravs da palavra-chave Optional. Optional no pode ser
utilizado para qualquer argumento se ParamArray for utilizado.
Opcional. Indica que o argumento passado por valor.
Indica que o argumento passado por referncia. ByRef o padro no
Visual Basic.
Opcional. Utilizado apenas como o ltimo argumento em arglist para
indicar que o argumento final uma matriz Optional de elementos
Variant. A palavra-chave ParamArray permite que voc fornea um
nmero arbitrrio de argumentos. A palavra-chave ParamArray no pode
ser utilizada com ByVal, ByRef ou Optional.
Obrigatria. Nome da varivel que representa o argumento passado ao
procedimento; segue as convenes de nomenclatura padro de
variveis.
Obrigatria para variveis de matriz. Indica que varname uma matriz.
Opcional. Tipo de dados do argumento passado ao procedimento; pode
ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal
(atualmente no-suportado), Date, String (apenas de comprimento
varivel), Object, Variant, um tipo definido pelo usurio ou um tipo de
objeto.

Comentrios
Para procedimentos Function, o tipo de dados do procedimento determina o tipo de dados retornado. Voc pode utilizar
uma clusula As seguindo arglist para especificar o tipo de retorno da funo. Dentro de arglist, voc pode utilizar uma
clusula As para especificar o tipo de dados de qualquer um dos argumentos passados ao procedimento. Alm de
especificar qualquer tipo de dados padro, voc pode especificar As Any em arglist para inibir a verificao de tipo e
permitir que qualquer tipo de dados seja passado ao procedimento.
Parnteses vazios indicam que o procedimento Sub ou Function no possui argumentos e que o Visual Basic deve
garantir que nenhum argumento ser passado. No exemplo abaixo, First no possui argumentos. Se voc utilizar
argumentos em um chamada para First, um erro ser gerado:
Declare Sub First Lib "MinhaBib"()
Se voc incluir uma lista de argumentos, o nmero e tipo de argumentos so verificados a cada vez que o procedimento for
chamado. No exemplo abaixo, First aceita um argumento Long:
Declare Sub First Lib "MinhaLib" (X As Long)

Funes Internas

66

Observao: A presena de seqncias de caracteres de comprimento fixo na lista de argumentos de uma instruo
Declare no permitida; apenas seqncias de caracteres de comprimento varivel podem ser passadas a procedimentos.
Seqncias de caracteres de comprimento fixo podem aparecer como argumentos de procedimentos, mas so convertidas
em seqncias de caracteres de comprimento varivel antes de serem passadas.
Observao: A constante vbNullString utilizada ao chamar-se procedimentos externos, quando os procedimentos
externos exigem uma seqncia de caracteres cujo valor seja zero. Isso diferente de uma seqncia de caracteres de
comprimento zero ("").

Instrues Deftype
Utilizadas a nvel de mdulo para definir o tipo de dados padro para variveis, argumentos passados a procedimentos e o
tipo de retorno para os procedimentos Function e Property Get cujos nomes se iniciem pelos caracteres especificados.
Sintaxe
DefBool letterrange[, letterrange] . . .
DefByte letterrange[, letterrange] . . .
DefInt letterrange[, letterrange] . . .
DefLng letterrange[, letterrange] . . .
DefCur letterrange[, letterrange] . . .
DefSng letterrange[, letterrange] . . .
DefDbl letterrange[, letterrange] . . .
DefDec letterrange[, letterrange] . . .
DefDate letterrange[, letterrange] . . .
DefStr letterrange[, letterrange] . . .
DefObj letterrange[, letterrange] . . .
DefVar letterrange[, letterrange] . . .
O argumento obrigatrio letterrange apresenta a sintaxe abaixo:
letter1[-letter2]
Os argumentos letter1 e letter2 especificam o intervalo de nomes para o qual voc pode definir um tipo de dados padro.
Cada argumento representa a primeira letra da varivel, argumento, procedimento Function ou nome de procedimento
Property Get e pode ser qualquer letra do alfabeto. A caixa das letras em letterrange no relevante.
Comentrios
O nome da instruo determina o tipo de dados:
Instruo
Tipo de dados
DefBool
Boolean
DefByte
Byte
DefInt
Integer
DefLng
Long
DefCur
Currency
DefSng
Single
DefDbl
Double
DefDec
Decimal (atualmente no-suportado)
DefDate
Date
DefStr
String
DefObj
Object
DefVar
Variant
Por exemplo, no fragmento de programa abaixo, Message uma varivel de seqncia de caracteres:
DefStr A-Q
...
Message = "Sem espao em pilha."
Uma instruo Deftype afeta somente o mdulo onde ela utilizada. Por exemplo, uma instruo DefInt em um mdulo
afeta somente o tipo de dados padro de variveis, argumentos passados a procedimentos e o tipo de retorno para
procedimentos Function e Property Get declarados nesse mdulo; o tipo de dados padro de variveis, argumentos e os
tipos de retorno em outros mdulos no so afetados. Caso no sejam explicitamente declarados atravs de uma instruo
Deftype, o tipo de dados padro para todas as variveis, todos os argumentos, todos os procedimentos Function e todos
os procedimentos Property Get ser Variant.
Quando voc especifica um intervalo de letras, ele geralmente define o tipo de dados para variveis iniciadas com letras
entre os primeiros 128 caracteres do conjunto de caracteres. No entanto, quando voc especifica o intervalo de letras A Z,
voc define o padro para o tipo de dados especificado para todas as variveis, incluindo as iniciadas por caracteres
internacionais da parte estendida do conjunto de caracteres (128 255).
Depois que o intervalo A Z tiver sido especificado, voc no poder redefinir qualquer subintervalo de varivel utilizando
instrues Deftype. Uma vez que um intervalo tenha sido especificado, se voc incluir uma letra predefinida em uma outra
instruo Deftype, um erro ser gerado. No entanto, voc pode especificar explicitamente o tipo de dados de qualquer
varivel, definida ou no, utilizando uma instruo Dim com uma clusula As type. Por exemplo, voc pode utilizar o cdigo
abaixo no nvel do mdulo para definir uma varivel como um Double, embora o tipo de dados padro seja Integer:
DefInt A-Z
Dim PercTaxa As Double
As instrues Deftype no afetam os elementos de tipos definidos pelo usurio porque eles devem ser explicitamente
declarados.

Funes Internas

67

Instruo Dim
Declara variveis e aloca espao de armazenamento.
Sintaxe
Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] varname[([subscripts])] [As [New] type]] . . .
A sintaxe da instruo Dim tem estas partes:
Parte
Descrio
WithEvents
Opcional. Palavra-chave que especifica que varname uma varivel de objeto
utilizada para responder a eventos acionados por um objeto ActiveX. vlida
somente em mdulos de classe. Voc pode declarar quantas variveis individuais
desejar utilizando WithEvents, mas no pode criar matrizes com WithEvents.
Voc no pode utilizar New com WithEvents.
varname
Obrigatria. Nome da varivel; segue as convenes de nomenclatura padro de
variveis.
subscripts
Opcional. Dimenses de uma varivel de matriz; at 60 dimenses mltiplas
podem ser declaradas. O argumento subscripts utiliza a sintaxe abaixo:
[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.
New
Opcional. Palavra-chave que permite a criao implcita de um objeto. Se voc
utilizar New ao declarar a varivel de objeto, uma nova ocorrncia do objeto ser
criada na primeira referncia a ele. Dessa forma, voc no precisa utilizar a
instruo Set para atribuir a referncia do objeto. A palavra-chave New 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.
type
Opcional. Tipo de dados da varivel; pode ser Byte, Boolean, Integer, Long,
Currency, Single, Double, Decimal (atualmente no-suportado), Date, String
(para seqncias de caracteres de comprimento varivel), String * comprimento
(para seqncias de caracteres de comprimento fixo), Object, Variant, um tipo
definido pelo usurio ou um tipo de objeto. Utilize uma clusula As type separada
para cada varivel que voc declarar.
Comentrios
As variveis declaradas com Dim no nvel de mdulo esto disponveis para todos os procedimentos dentro do mdulo. No
nvel de procedimento, as variveis esto disponveis somente dentro do procedimento.
Utilize a instruo Dim no nvel de mdulo ou procedimento para declarar o tipo de dados de uma varivel. Por exemplo, a
instruo abaixo declara uma varivel como Integer.
Dim NmeroDeEmpregados As Integer
Tambm possvel utilizar uma instruo Dim para declarar o tipo de objeto de uma varivel. O exemplo abaixo declara
uma varivel para uma nova ocorrncia de uma planilha.
Dim X As New Planilha
Se a palavra-chave New no for utilizada para declarar uma varivel de objeto, um objeto j existente dever ser atribudo a
uma varivel referente ao objeto atravs da instruo Set antes que ele possa ser utilizado. At ter um objeto atribudo a
ela, a varivel de objeto declarada apresentar o valor especial Nothing, que indica que ela no se refere a nenhuma
ocorrncia especfica de um objeto.
Voc tambm pode utilizar a instruo Dim com parnteses vazios para declarar uma matriz dinmica. Aps declar-la,
utilize a instruo ReDim 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 Private, Public ou Dim, um erro ser gerado.
Se voc no especificar um tipo de dados ou de objeto e se no houver nenhuma instruo Deftype no mdulo, a varivel
ser Variant como padro.
Quando as variveis so inicializadas, uma varivel numrica inicializada como 0, uma seqncia de caracteres de
comprimento varivel inicializada como uma seqncia de caracteres de comprimento zero ("") e uma seqncia de
caracteres de comprimento fixo preenchida com zeros. As variveis Variant so inicializadas como Empty. Cada
elemento de uma varivel de tipo definida pelo usurio inicializado como se fosse uma varivel independente.
Observao:
Quando voc utiliza a instruo Dim em um procedimento, ela geralmente colocada no incio do
procedimento.

Instruo Enum
Declara um tipo para uma enumerao.
Sintaxe
[Public | Private] Enum name
membername [= constantexpression]
membername [= constantexpression]
...

Funes Internas

68

End Enum
A instruo Enum tem estas partes:
Parte
Public
Private
name
membername
constantexpression

Descrio
Opcional. Especifica que o tipo Enum visvel atravs de
todo o projeto. Os tipos Enum so Public como padro.
Opcional. Especifica que o tipo Enum somente visvel
dentro do mdulo em que ele aparece.
Obrigatrio. O nome do tipo Enum. O name deve ser um
identificador do Visual Basic vlido e especificado como o
tipo ao declarar variveis ou parmetros do tipo Enum.
Obrigatrio. Um identificador do Visual Basic vlido
especificando o nome pelo qual um elemento componente do
tipo Enum ser conhecido.
Opcional. O valor do elemento (avaliado como Long). Pode
ser outro tipo Enum. Se nenhuma constantexpression for
especificada, o valor atribudo ser ou zero (se for o primeiro
membername) ou 1 maior que o valor do membername
imediatamente anterior.

Comentrios
As variveis de enumerao so variveis declaradas com um tipo Enum. Ambas as variveis e parmetros podem ser
declarados com um tipo Enum. Os elementos do tipo Enum so inicializados como valores constantes dentro da instruo
Enum. Os valores atribudos no podem ser modificados em tempo de execuo e podem incluir nmeros negativos ou
positivos. Por exemplo:
Enum SecurityLevel
IllegalEntry = -1
SecurityLevel1 = 0
SecurityLevel2 = 1
End Enum
Uma instruo Enum somente pode aparecer em nvel de mdulo. Uma vez que o tipo Enum definido, ele pode ser
usado para declarar variveis, parmetros ou procedimentos retornando seu tipo. Voc no pode qualificar um nome de
tipo Enum com um nome de mdulo. Tipos Public Enum em um mdulo de classe no so membros da classe; entretanto,
eles so gravados na biblioteca de tipos. Tipos Enum definidos em mdulos padro no so gravados em bibliotecas de
tipos. Os tipos Public Enum de mesmo nome no podem ser definidos em ambos os mdulos padro e mdulos de classe,
pois eles compartilham o mesmo espao de nome. Quando dois tipos Enum em diferentes tipos de biblioteca tm o mesmo
nome, mas elementos diferentes, uma referncia a uma varivel do tipo depende de qual biblioteca de tipos tem prioridade
mais alta nas References.
Voc no pode usar um tipo Enum como destino de um bloco With.

Funes Internas

69

Instruo Erase
Reinicializa os elementos de matrizes de tamanho fixo e libera espao de armazenamento de matrizes dinmicas.
Sintaxe
Erase arraylist
O argumento obrigatrio arraylist uma ou mais variveis de matrizes delimitadas por vrgulas a serem apagadas.
Comentrios
Erase comporta-se de formas diferentes dependendo da matriz ser de tamanho fixo (normal) ou dinmica. Erase no
recupera memria para matrizes de tamanho fixo. Erase define os elementos de uma matriz fixa da seguinte forma:
Tipo de matriz
Efeito de Erase em elementos de matriz fixa
Matriz numrica fixa Define cada elemento como zero.
Matriz de seqnciaDefine cada elemento como uma seqncia de caracteres de
de caracteres fixacomprimento zero ("").
(tamanho varivel)
Matriz de seqnciaDefine cada elemento como zero.
de caracteres fixa
(tamanho fixo)
Matriz Variant fixa
Define cada elemento como Empty.
Matriz
de
tiposDefine cada elemento como se fosse uma varivel independente.
definidos pelo usurio
Matriz de objetos
Define cada elemento com o valor especial Nothing.
Erase libera a memria utilizada por matrizes dinmicas. Antes que seu programa possa se referir novamente matriz
dinmica, ele dever declarar as dimenses da varivel de matriz novamente, atravs da instruo ReDim.

Instruo Event
Declara um evento definido pelo usurio.
Sintaxe
[Public] Event procedurename [(arglist)]
A instruo Event tem estas partes:
Parte
Descrio
Public
Opcional. Especifica que o Event seja visvel em todo o projeto.
Os tipos de Events so Public como padro. Observe que os
eventos somente podem ser provocados no mdulo em que so
declarados.
procedurename
Obrigatrio. Nomeie o evento; siga as convenes padro de
nomenclatura de variveis.
O argumento arglist tem a seguinte sintaxe e partes:
[ByVal | ByRef] varname[( )] [As type]
Parte
ByVal
ByRef
varname
type

Descrio
Opcional. Indica que o argumento foi passado por valor.
Opcional. Indica que o argumento passado por referncia. ByRef
o padro no Visual Basic.
Obrigatrio. Nome da varivel representando o argumento que
est sendo passado ao procedimento; segue as convenes
padro de nomenclatura de variveis.
Opcional. Tipo de dados do argumento passado ao procedimento;
pode ser Byte, Boolean, Integer, Long, Currency, Single,
Double, Decimal (no suportado atualmente), Date, String
(somente comprimento varivel), Object, Variant, um tipo definido
pelo usurio, ou um tipo de objeto.

Comentrios
Uma vez declarado o evento, use a instruo RaiseEvent para dispar-lo. Ocorrer um erro de sintaxe se uma declarao
Event aparecer em um mdulo padro. Um evento no pode ser declarado para retornar um valor. Um evento tpico deve
ser declarado e provocado como mostram os fragmentos abaixo:
' Declarar um evento a nvel de mdulo de um mdulo de classe
Event LogonCompleted (UserName as String)
Sub
RaiseEvent LogonCompleted("AntoineJan")
End Sub

Instruo Function
Declara o nome, os argumentos e o cdigo que formam o corpo de um procedimento Function.
Sintaxe

Funes Internas

70

[Public

|
Private]
[Static]
Function
name
[(arglist)]
[As
[statements]
[name
=
[Exit
Function]
[statements]
[name = expression]
End Function
A sintaxe da instruo Function tem estas partes:
Parte
Descrio
Public
Opcional. Indica que o procedimento Function est acessvel a todos
os outros procedimentos em todos os mdulos. Se utilizado em um
mdulo que contenha Option Private, o procedimento no estar
disponvel fora do projeto.
Private
Opcional. Indica que o procedimento Function est acessvel apenas a
outros procedimentos no mdulo onde ele declarado.
Static
Opcional. Indica que as variveis locais do procedimento Function
esto preservadas entre as chamadas. O atributo Static no afeta as
variveis que so declaradas fora de Function, mesmo que elas sejam
utilizadas no procedimento.
name
Obrigatria. Nome de Function; segue as convenes de
nomenclatura padro de variveis.
arglist
Opcional. Lista de variveis que representam argumentos passados ao
procedimento Function quando ele chamado. Variveis mltiplas so
separadas por vrgulas.
type
Opcional. O tipo de dados do valor retornado pelo procedimento
Function; pode ser Byte, Boolean, Integer, Long, Currency, Single,
Double, Decimal (atualmente no-suportado), Date, String (exceto
seqncias de caracteres de comprimento fixo), Object, Variant ou
qualquer tipo definido pelo usurio. Matrizes de qualquer tipo no
podem ser retornadas, mas um Variant que contenha uma matriz
pode.
statements
Opcional. Qualquer grupo de instrues a serem executadas dentro do
procedimento Function.
expression
Opcional. Valor de retorno de Function.

type]
expression]

O argumento arglist apresenta a sintaxe e as partes abaixo:


[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]
Parte
Optional

ByVal
ByRef
ParamArray

varname
type

defaultvalue

Descrio
Opcional. Indica que um argumento no obrigatrio. Se utilizada,
todos os argumentos subseqentes em arglist devero ser opcionais
e declarados atravs da palavra-chave Optional. Optional no pode
ser utilizado para qualquer argumento se ParamArray for utilizado.
Opcional. Indica que o argumento passado por valor.
Opcional. Indica que o argumento passado por referncia. ByRef
o padro no Visual Basic.
Opcional. Utilizada apenas como o ltimo argumento em arglist para
indicar que o argumento final uma matriz Optional de elementos
Variant. A palavra-chave ParamArray permite que voc fornea um
nmero arbitrrio de argumentos. Ela no pode ser utilizada com
ByVal, ByRef ou Optional.
Obrigatria. Nome da varivel que representa o argumento; segue as
convenes de nomenclatura padro de variveis.
Opcional. Tipo de dados do argumento passado ao procedimento;
pode ser Byte, Boolean, Integer, Long, Currency, Single, Double,
Decimal (atualmente no-suportado) Date, String (somente de
comprimento varivel), Object, Variant. Se o parmetro no for
Optional, um tipo definido pelo usurio ou um tipo de objeto tambm
pode ser especificado.
Opcional. Qualquer constante ou expresso de constante. Vlido
somente para parmetros Optional. Se o tipo for um Object, um
valor padro explcito s poder ser Nothing.

Comentrios
Se no forem especificados explicitamente atravs de Public ou Private, os procedimentos Function sero pblicos como
padro. Se Static no for utilizado, o valor de variveis locais no ser preservado entre as chamadas. A palavra-chave
Friend somente pode ser usada em mdulos de classe. Entretanto, procedimentos Friend podem ser acessados por
procedimentos em qualquer mdulo de um projeto. Um procedimento Friend no aparece na biblioteca de tipos de sua
classe pai, nem pode um procedimento Friend ser acoplado posteriormente.
Ateno Os procedimentos Function podem ser recursivos; ou seja, eles podem chamar a si prprios para efetuar uma
determinada tarefa. No entanto, a recurso pode levar ao estouro da pilha. A palavra-chave Static em geral no utilizada
com procedimentos recursivos Function.
Funes Internas

71

Todo o cdigo executvel deve estar em procedimentos. Voc no pode definir um procedimento Function dentro de outro
procedimento Function, Sub ou Property.
A instruo Exit Function causa a sada imediata de um procedimento Function. A execuo do programa continua com a
instruo seguinte quela que chamou o procedimento Function. Qualquer nmero de instrues Exit Function pode
aparecer em qualquer lugar de um procedimento Function.
Assim como um procedimento Sub, um procedimento Function um procedimento separado que pode aceitar
argumentos, executar uma srie de instrues e alterar os valores de seus argumentos. No entanto, ao contrrio de um
procedimento Sub, voc pode utilizar um procedimento Function direita de uma expresso da mesma forma que voc
utiliza qualquer funo intrnseca, como Sqr, Cos ou Chr, quando voc deseja utilizar o valor retornado pela funo.
Voc chama um procedimento Function utilizando o nome da funo, seguido pela lista de argumentos entre parnteses,
em uma expresso. Consulte a instruo Call para obter Especificidades sobre como chamar procedimentos Function.
Para retornar um valor de uma funo, atribua o valor ao nome da funo. Qualquer quantidade dessas atribuies pode
aparecer em qualquer lugar do procedimento. Se no for atribudo um valor a name, o procedimento retornar um valor
padro: uma funo numrica retornar 0, uma funo de seqncia de caracteres retornar uma seqncia de caracteres
de comprimento zero ("") e uma funo Variant retornar Empty. Uma funo que retorna uma referncia de objeto
retornar Nothing se nenhuma referncia de objeto for atribuda a name (utilizando Set) dentro de Function.
O exemplo abaixo mostra como atribuir um valor de retorno a uma funo denominada PesquisaBinria. Neste caso, False
atribudo ao nome para indicar que um certo valor no foi encontrado.
Function PesquisaBinria(. . .) As Boolean
...
' Valor no encontrado. Retorna um valor False.
If inferior > superior Then
PesquisaBinria = False
Exit Function
End If
...
End Function
As variveis utilizadas em procedimentos Function dividem-se em duas categorias: aquelas explicitamente declaradas
dentro do procedimento e aquelas que no so declaradas dessa forma. As variveis que so explicitamente declaradas
dentro de um procedimento (utilizando Dim ou equivalente) so sempre locais em relao ao procedimento. As variveis
utilizadas mas no explicitamente declaradas em um procedimento tambm so locais, a menos que explicitamente
declaradas em algum nvel superior fora do procedimento.
Ateno Um procedimento pode utilizar uma varivel que no explicitamente declarada no procedimento, mas poder
ocorrer um conflito de nomenclatura se algo definido no nvel do mdulo apresentar o mesmo nome. Se o seu
procedimento referir-se a uma varivel no declarada que tenha o mesmo nome de outro procedimento, constante ou
varivel, pressupe-se que seu procedimento se refere quele nome do nvel do mdulo. Para evitar esse tipo de conflito,
convm declarar variveis de forma explcita. Voc pode utilizar uma instruo Option Explicit para forar a declarao
explcita de variveis.
Ateno O Visual Basic pode reorganizar expresses aritmticas para aumentar a eficcia interna. Evite utilizar um
procedimento Function em uma expresso aritmtica quando a funo alterar o valor das variveis na mesma expresso.

Funo GetObject
Retorna uma referncia a um objeto ActiveX de um arquivo.
Sintaxe
GetObject([pathname] [, class])
A sintaxe da funo GetObject apresenta os argumentos nomeados abaixo:
Parte
Descrio
pathname Opcional; Variant (String). Indica o caminho completo e nome do arquivo
que contm o objeto a ser recuperado. Se pathname for omitido, class
passa a ser obrigatrio.
class
Opcional; Variant (String). Uma seqncia de caracteres que representa a
classe do objeto.
O argumento class utiliza a sintaxe appname.objecttype e possui partes abaixo:
Parte
Descrio
appname
Obrigatria; Variant (String). Nome do aplicativo que fornece o objeto.
objecttype Obrigatria; Variant (String). Tipo ou classe do objeto a ser criado.
Comentrios
Utilize a funo GetObject para acessar um objeto ActiveX de um arquivo e atribuir o objeto a uma varivel de objeto.
Utilize a instruo Set para atribuir o objeto retornado por GetObject varivel do objeto. Por exemplo:
Dim ObjetoCAD As Object
Set ObjetoCAD = GetObject("C:\CAD\SCHEMA.CAD")
Quando esse cdigo executado, o aplicativo associado ao pathname especificado iniciado e o objeto no arquivo
especificado ativado.

Funes Internas

72

Se pathname for uma seqncia de caracteres de comprimento zero (""), GetObject retornar uma nova ocorrncia de
objeto do tipo especificado. Se o argumento do pathname for omitido, GetObject retornar um objeto atualmente ativo do
tipo especificado. Se no houver nenhum objeto do tipo especificado, um erro ser gerado.
Alguns aplicativos permitem que voc ative parte de um arquivo. Adicione um ponto de exclamao (!) ao final do nome do
arquivo e acrescente uma seqncia de caracteres que identifique a parte do arquivo que voc deseja ativar. Para obter
informaes sobre como criar essa seqncia de caracteres, consulte a documentao referente ao aplicativo que criou o
objeto.
Por exemplo, em um aplicativo de desenho, voc pode ter diversas camadas de um desenho armazenado em um arquivo.
Voc poderia utilizar o cdigo abaixo para ativar uma camada em um desenho denominado SCHEMA.CAD:
Set CamadaObjeto = GetObject("C:\CAD\SCHEMA.CAD!Camada3")
Se voc no especificar o class do objeto, a Automao determinar o aplicativo a ser iniciado e o objeto a ser ativado, de
acordo com o nome de arquivo fornecido. Alguns arquivos, contudo, podem suportar mais do que uma classe de objeto. Por
exemplo, um desenho poderia suportar trs diferentes tipos de objetos: um objeto Application, um objeto Drawing e um
objeto Toolbar, os quais fazem parte do mesmo arquivo. Para especificar o objeto de um arquivo que voc deseja ativar,
utilize o argumento de class opcional. Por exemplo:
Dim MeuObjeto As Object
Set MeuObjeto = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
No exemplo acima, FIGMENT o nome de um aplicativo de desenho e DRAWING um dos tipos de objeto que ele
suporta.
Depois que o objeto tiver sido ativado, voc pode referenci-lo em cdigo utilizando a varivel de objeto que voc definiu.
No exemplo anterior, voc acessa as propriedades e os mtodos do novo objeto utilizando a varivel de objeto MeuObjeto.
Por exemplo:
MeuObjeto.Line 9, 90
MeuObjeto.InsertText 9, 100, "Ol, mundo."
MeuObjeto.SaveAs "C:\DRAWINGS\SAMPLE.DRW"
Observao: Utilize a funo GetObject quando houver uma ocorrncia atual do objeto ou quando voc desejar criar o
objeto com um arquivo j carregado. Se no houver uma ocorrncia atual e se voc no quiser iniciar o objeto com um
arquivo carregado, utilize a funo CreateObject.
Se um objeto registrou a si prprio como um objeto de ocorrncia nica, apenas uma ocorrncia desse objeto ser criada,
independente de quantas vezes CreateObject for executado. Com um objeto de ocorrncia nica, GetObject sempre
retornar a mesma ocorrncia quando chamado com a sintaxe da seqncia de caracteres de comprimento zero (""), e se o
argumento do pathname for omitido, um erro ser gerado. Voc no pode utilizar GetObject para obter uma referncia a
uma classe criada com o Visual Basic.

Instruo Implements
Especifica uma interface ou classe que ser implementada no mdulo de classe onde ele aparece.
Sintaxe
Implements [InterfaceName | Class]
O InterfaceName ou Class obrigatrio o nome de uma interface ou classe na biblioteca de tipos, cujos mtodos sero
implementados pelos mtodos correspondentes na classe Visual Basic.
Comentrios
Uma interface uma coleo de prottipos representando os membros (mtodos e propriedades) encapsulados na
interface; isto , contm apenas as declaraes para os procedimentos membros. Uma classe oferece uma implementao
de todos os mtodos e propriedades de uma ou mais inferfaces. As classes oferecem o cdigo usado quando cada funo
chamada por um controlador da classe. Todas as classes implementam pelo menos uma interface, que considerada a
interface padro da classe. No Visual Basic, todo membro que no explicitamente um membro de uma interface
implementada implicitamente um membro da interface padro.
Quando uma classe do Visual Basic implementa uma interface, a classe do Visual Basic oferece sua prpria verso de
todos os procedimentos Public especificados na biblioteca de tipos da interface. Alm de oferecer uma mapeamento entre
prottipos de interface e seus procedimentos, a instruo Implements provoca a aceitao de chamada COM
QueryInterfaces pela classe para a identificao da interface especificada.
Quando voc implementa uma interface ou classe, voc deve incluir todos os procedimentos Public envolvidos. Um
membro faltando em uma implementao de interface ou classe provoca um erro. Se voc no colocar cdigo em um dos
procedimentos de uma classe que estiver implementando, voc pode provocar o erro adequado (Const E_NOTIMPL =
&H80004001) de modo que o usurio da implementao compreenda que o membro no est implementado.
A instruo Implements no pode aparecer em um mdulo padro.

Funo LBound
Retorna um Long que contm o menor subscrito disponvel para a dimenso indicada de uma matriz.
Sintaxe
LBound(arrayname[, dimension])
A sintaxe da funo LBound apresenta as partes abaixo:
Parte
Descrio
arrayname
Obrigatria. Nome da varivel de matriz, de acordo com as convenes
de nomenclatura padro de variveis.
dimension
Opcional; Variant (Long). Nmero inteiro que indica qual limite inferior

Funes Internas

73

da dimenso retornado. Utilize 1 para a primeira dimenso, 2 para a


segunda e assim por diante. Se dimension for omitida, ser utilizado 1.
Comentrios
A funo LBound utilizada com a funo UBound para determinar o tamanho de uma matriz. Utilize a funo UBound
para calcular o limite superior de uma dimenso de matriz.
LBound retorna os valores apresentados na tabela abaixo para uma matriz com as dimenses abaixo:
Dim A(1 To 100, 0 To 3, -3 To 4)
Instruo
LBound(A, 1)
LBound(A, 2)
LBound(A, 3)

Valor de retorno
1
0
-3

O limite inferior padro para qualquer dimenso 0 ou 1, de acordo com a definio da instruo Option Base. A base de
uma matriz criada com a funo Array zero; ela no afetada por Option Base.
As matrizes para as quais so definidas dimenses utilizando-se a clusula To em uma instruo Dim, Private, Public,
ReDim ou Static podem apresentar qualquer valor inteiro como um limite inferior.

Instruo Let
Atribui o valor de uma expresso a uma varivel ou propriedade.
Sintaxe
[Let] varname = expression
A sintaxe da instruo Let tem estas partes:
Parte
Descrio
Let
Opcional. A utilizao explcita da palavra-chave Let uma questo de
estilo, mas ela em geral omitida.
varname
Obrigatria. Nome da varivel ou propriedade; segue as convenes de
nomenclatura padro de variveis.
expression
Obrigatria. Valor atribudo varivel ou propriedade.
Comentrios
Uma expresso de valor pode ser atribuda a uma varivel ou propriedade somente se for de um tipo de dados compatvel
com a varivel. Voc no pode atribuir expresses de seqncias de caracteres a variveis numricas e no pode atribuir
expresses numricas a variveis de seqncias de caracteres. Se o fizer, ocorrer um erro em tempo de compilao.
A variveis Variant podem ser atribudas tanto expresses de seqncia de caracteres quanto expresses numricas. No
entanto, o contrrio nem sempre verdadeiro. Qualquer Variant exceto Null pode ser atribudo a uma varivel de
seqncia de caracteres, mas apenas um Variant cujo valor possa ser interpretado como um nmero pode ser atribudo a
uma varivel numrica. Utilize a funo IsNumeric para determinar se o Variant pode ser convertido em um nmero.
Ateno Atribuir uma expresso de um tipo numrico a uma varivel de um tipo numrico diferente converter o valor da
expresso no tipo numrico da varivel resultante.
As instrues Let podem ser utilizadas para atribuir uma varivel de registro a outra apenas quando ambas as variveis so
do mesmo tipo definido pelo usurio. Utilize a instruo LSet para atribuir variveis de registro a diferentes tipos definidos
pelo usurio. Utilize a instruo Set para atribuir referncias de objetos s variveis.

Instruo Option Base


Utilizada no nvel de mdulo para declarar o limite inferior padro para os subscripts de matriz.
Sintaxe
Option Base {0 | 1}
Comentrios
Uma vez que a base padro 0, a instruo Option Base nunca exigida. Se utilizada, a instruo deve aparecer em um
mdulo antes de qualquer procedimento. Option Base s pode aparecer uma vez em um mdulo e deve anteceder as
declaraes de matrizes que incluam dimenses.
Observao: A clusula To nas instrues Dim, Private, Public, ReDim e Static fornecem uma maneira mais flexvel de
controlar o intervalo de subscritos de uma matriz. No entanto, se voc no definir explicitamente o limite mnimo com uma
clusula To, poder utilizar Option Base para alterar o limite inferior padro para 1. A base de uma matriz criada com a
funo Array ou com a palavra-chave ParamArray zero; Option Base no afeta Array ou ParamArray.
A instruo Option Base afeta somente o limite inferior das matrizes no mdulo no qual se localiza a instruo.

Instruo Option Compare


Utilizada no nvel de mdulo para declarar o mtodo de comparao padro a ser utilizado quando dados de seqncia de
caracteres forem comparados.
Sintaxe
Option Compare {Binary | Text | Database}
Comentrios
Se utilizada, a instruo Option Compare deve aparecer em um mdulo antes dos procedimentos.

Funes Internas

74

A instruo Option Compare especifica o mtodo de comparao de seqncias de caracteres (Binary, Text ou
Database) de um mdulo. Se um mdulo no incluir uma instruo Option Compare, o mtodo de comparao de texto
padro ser Binary.
Option Compare Binary resulta em comparaes de seqncias de caracteres baseadas em uma ordem de classificao
derivada das representaes binrias internas dos caracteres. No Microsoft Windows, a ordem de classificao
determinada pela pgina de cdigo. Uma ordem de classificao binria tpica mostrada no exemplo abaixo:
A<B<E<Z<a<b<e<z<<<<<<
Option Compare Text resulta em comparaes de seqncias de caracteres baseadas em uma ordem de classificao de
texto que no coincide maisculas e minsculas determinada pela localidade do seu sistema. Quando alguns caracteres
so classificados utilizando-se Option Compare Text, a ordem de classificao de texto abaixo produzida:
(A=a) < ( =) < (B=b) < (E=e) < (=) < (Z=z) < (=)
Option Compare Database somente pode ser utilizado dentro do Microsoft Access. Isso resulta em comparaes de
seqncias de caracteres baseadas na ordem de classificao determinada pelo cdigo de localidade do banco de dados
em que ocorrem as comparaes de seqncias de caracteres.

Instruo Option Explicit


Utilizada no nvel de mdulo para forar a declarao explcita de todas as variveis desse mdulo.
Sintaxe
Option Explicit
Comentrios
Se utilizada, a instruo Option Explicit deve aparecer em um mdulo antes de qualquer procedimento.
Quando Option Explicit aparece em um mdulo, voc deve declarar explicitamente todas as variveis utilizando as
instrues Dim, Private, Public, ReDim ou Static. Se voc tentar utilizar um nome de varivel no-declarado, ocorrer um
erro em tempo de compilao.
Se voc no utilizar a instruo Option Explicit, todas as variveis no-declaradas sero do tipo Variant, a menos que o
tipo padro seja especificado com uma instruo Deftype.
Observao: Utilize Option Explicit para evitar a digitao incorreta do nome de uma varivel existente ou para evitar
confuso no cdigo em que o escopo da varivel no esteja claro.

Instruo Option Private


Quando utilizada em aplicativos host que permitem referncias em mltiplos projetos, Option Private Module impede que
o contedo de um mdulo seja referenciado fora do seu projeto. Em aplicativos host que no permitem essas referncias,
por exemplo, em verses independentes do Visual Basic, Option Private no ter efeito.
Sintaxe
Option Private Module
Comentrios
Se utilizada, a instruo Option Private deve aparecer no nvel de mdulo antes de qualquer procedimento.
Quando um mdulo contm Option Private Module, as partes pblicas, por exemplo, variveis, objetos e tipos definidos
pelo usurio declarados no nvel de mdulo, continuam disponveis dentro do projeto que contm o mdulo, mas no ficam
disponveis para outros aplicativos ou projetos.
Observao: Option Private somente til para aplicativos host que suportam carregamento simultneo de vrios
projetos e permitem referncias entre os projetos carregados. Por exemplo, o Microsoft Excel permite carregamento de
vrios projetos e Option Private Module pode ser utilizado para restringir a visibilidade do projeto cruzado. Ainda que o
Visual Basic permita o carregamento de vrios projetos, referncias entre projetos nunca so permitidas no Visual Basic.

Instruo Private
Utilizada no nvel de mdulo para declarar variveis privadas e alocar espao de armazenamento.
Sintaxe
Private [WithEvents] varname[([subscripts])] [As [New] type] [,[WithEvents] varname[([subscripts])] [As [New] type]] . . .
A sintaxe da instruo Private tem estas partes:
Parte
Descrio
WithEvents
Opcional. Palavra-chave que especifica que varname uma varivel
de objeto utilizada para responder a eventos acionados por um objeto
ActiveX. Vlida somente em mdulos de classe. Voc pode declarar
quantas variveis individuais quiser utilizando WithEvents, mas no
pode criar matrizes com WithEvents. Voc no pode utilizar New com
WithEvents.
varname
Obrigatria. Nome da varivel; segue as convenes de nomenclatura
padro de variveis.
subscripts
Opcional. Dimenses de uma varivel de matriz; at 60 dimenses
mltiplas podem ser declaradas. O argumento subscripts utiliza a
sintaxe abaixo:
[lower To] upper [,[lower To] upper] . . .
Quando no enunciado explicitamente em lower, o limite inferior de
uma matriz controlado pela instruo Option Base. O limite inferior
Funes Internas

75

New

type

ser zero se no estiver presente uma instruo Option Base.


Opcional. Palavra-chave que permite a criao implcita de um objeto.
Se voc utilizar New ao declarar a varivel de objeto, uma nova
ocorrncia do objeto ser criada na primeira referncia a ele; portanto,
voc no precisa utilizar a instruo Set para atribuir a referncia do
objeto. A palavra-chave New no pode ser utilizada para declarar
variveis de tipo de dados intrnseco, no pode ser utilizada para
declarar instncias de objetos dependentes e no pode ser utilizada
com WithEvents.
Opcional. Tipo de dados da varivel; pode ser Byte, Boolean, Integer,
Long, Currency, Single, Double, Decimal (no-suportado
atualmente), Date, String (para seqncias de caracteres de
comprimento varivel), String * length (para seqncias de caracteres
de comprimento fixo), Object, Variant, um tipo definido pelo usurio ou
um tipo de objeto. Utilize uma clusula As type para cada varivel que
estiver sendo definida.

Comentrios
As variveis Private encontram-se disponveis somente para o mdulo em que so declaradas.
Utilize a instruo Private para declarar o tipo de dados de uma varivel. Por exemplo, a instruo abaixo declara uma
varivel como um Integer:
Private NmeroDeEmpregados As Integer
Voc tambm pode utilizar uma instruo Private para declarar o tipo de objeto de uma varivel. A instruo abaixo declara
uma varivel para uma nova ocorrncia de uma planilha.
Private X As New Worksheet
Se a palavra-chave New no for utilizada quando declarar uma varivel de objeto, a varivel que se refere ao objeto dever
ser atribuda a um objeto existente utilizando-se a instruo Set para que possa ser utilizada. At que seja atribudo um
objeto, a varivel de objeto declarada ter o valor especial Nothing, que indica que no se refere a uma ocorrncia
especfica de um objeto.
Se voc no especificar um tipo de dados ou tipo de objeto e no houver instruo Deftype no mdulo, a varivel ser
Variant como padro.
Voc tambm pode utilizar a instruo Private com parnteses vazios para declarar uma matriz dinmica. Depois de
declarar uma matriz dinmica, utilize a instruo ReDim dentro de um procedimento para definir o nmero de dimenses e
elementos na matriz. Se voc tentar declarar novamente uma dimenso de uma varivel de matriz cujo tamanho tenha sido
explicitamente especificado em uma instruo Private, Public ou Dim, um erro ser gerado.
Quando variveis so inicializadas, uma varivel numrica inicializada como 0, uma seqncia de caracteres de
comprimento varivel inicializada como uma seqncia de caracteres de comprimento zero ("") e uma seqncia de
caracteres de comprimento fixo preenchida com zeros. As variveis Variant so inicializadas como Empty. Cada
elemento de uma varivel de tipo definido pelo usurio inicializado como se fosse uma varivel separada.
Observao: Quando voc utiliza a instruo Private em um procedimento, geralmente coloca a instruo Private no
incio dele.

Instruo Property Get


Declara o nome, os argumentos e o cdigo que formam o corpo de um procedimento Property, que obtm o valor de uma
propriedade.
Sintaxe
[Public
|
Private]
[Static]
Property
Get
name
[(arglist)]
[As
type]
[statements]
[name
=
expression]
[Exit
Property]
[statements]
[name = expression]
End Property
A sintaxe da instruo Property Get tem estas partes:
Parte
Descrio
Public
Opcional. Indica que o procedimento Property Get acessvel a todos
os outros procedimentos de todos os mdulos. Se utilizada em um
mdulo que contm uma instruo Option Private, o procedimento
no se encontrar disponvel fora do projeto.
Private
Opcional. Indica que o procedimento Property Get acessvel
somente a outros procedimentos do mdulo em que declarado.
Static
Opcional. Indica que as variveis locais do procedimento Property Get
so preservadas entre chamadas. O atributo Static no afeta variveis
que sejam declaradas fora do procedimento Property Get, mesmo que
elas sejam utilizadas no procedimento.
name
Obrigatria. Nome do procedimento Property Get; segue as
convenes de nomenclatura padro de variveis, exceto que o nome
pode ser o mesmo de um procedimento Property Let ou Property Set

Funes Internas

76

arglist

type

statements
expression

do mesmo mdulo.
Opcional. Lista de variveis que representam argumentos que so
passados ao procedimento Property Get quando ele chamado.
Mltiplos argumentos so separados por vrgulas. O nome e o tipo de
dados de cada argumento de um procedimento Property Get devem
ser iguais ao argumento correspondente de um procedimento Property
Let (se houver um).
Opcional. Tipo de dados do valor retornado pelo procedimento
Property Get; pode ser Byte, Boolean, Integer, Long, Currency,
Single, Double, Decimal (no-suportado atualmente), Date, String
(exceto comprimento fixo), Object, Variant ou tipo definido pelo
usurio. No podem ser retornadas matrizes de tipo algum, mas um
Variant que contenha uma matriz pode.
O type de retorno de um procedimento Property Get deve ser do
mesmo tipo de dados do ltimo (ou algumas vezes do nico)
argumento de um procedimento Property Let correspondente (se
houver um) que define o valor atribudo propriedade do lado direito
de uma expresso.
Opcional. Qualquer grupo de instrues a serem executadas dentro do
corpo do procedimento Property Get.
Opcional. Valor da propriedade retornado pelo procedimento definido
pela instruo Property Get.

O argumento arglist possui a sintaxe e as partes abaixo:


[Optional] [ByVal | ByRef] varname[( )] [As type] [= defaultvalue]
Parte
Optional
ByVal
ByRef
ParamArray

varname
type

defaultvalue

Descrio
Opcional. Indica que um argumento no obrigatrio. Se utilizada,
todos os argumentos subseqentes em arglist devero tambm ser
opcionais e declarados utilizando-se a palavra-chave Optional.
Opcional. Indica que o argumento passado por valor.
Opcional. Indica que o argumento passado por referncia. ByRef o
padro do Visual Basic.
Opcional. Utilizada apenas como o ltimo argumento em arglist para
indicar que o argumento final uma matriz Optional de elementos
Variant. A palavra-chave ParamArray permite que voc fornea um
nmero arbitrrio de argumentos. Ela no deve ser utilizada com
ByVal, ByRef ou Optional.
Obrigatria. Nome da varivel que representa o argumento; segue as
convenes de nomenclatura padro de variveis.
Opcional. Tipo de dados do argumento passado ao procedimento; pode
ser Byte, Boolean, Integer, Long, Currency, Single, Double,
Decimal (no-suportado atualmente), Date, String (somente de
comprimento varivel), Object, Variant. Se o parmetro no for
Optional, um tipo definido pelo usurio ou um tipo de objeto tambm
poder ser especificado.
Opcional. Qualquer constante ou expresso de constante. Vlido
somente para parmetros Optional. Se o tipo for um Object, um valor
padro explcito somente poder ser Nothing.

Comentrios
Se no especificado explicitamente utilizando-se Public ou Private, os procedimentos Property sero pblicos como
padro. Se Static no for utilizado, o valor de variveis locais no ser preservado entre chamadas.
Todo o cdigo executvel deve estar nos procedimentos. Voc no pode definir um procedimento Property Get dentro de
outro procedimento Property, Sub ou Function.
A instruo Exit Property causa uma sada imediata de um procedimento Property Get. A execuo do programa continua
com a instruo que segue a instruo que chamou o procedimento Property Get. Pode aparecer qualquer nmero de
instrues Exit Property em qualquer lugar de um procedimento Property Get.
Como um procedimento Sub e Property Let, um procedimento Property Get um procedimento separado que pode tomar
argumentos, efetuar uma srie de instrues e alterar os valores de seus argumentos. Entretanto, ao contrrio de um
procedimento Sub ou Property Let, voc pode utilizar um procedimento Property Get do lado direito de uma expresso da
mesma forma que utiliza um Function ou um nome de propriedade quando deseja retornar o valor de uma propriedade.

Instruo Property Let


Declara o nome, os argumentos e o cdigo que formam o corpo de um procedimento Property Let, que atribui um valor a
uma propriedade.
Sintaxe
[Public
|
Private]
[Static]
Property
Let
name
([arglist,]
value)
[statements]
[Exit
Property]
[statements]
Funes Internas

77

End Property
A sintaxe da instruo Property Let tem estas partes:
Parte
Descrio
Public
Opcional. Indica que o procedimento Property Let acessvel a todos os
outros procedimentos de todos os mdulos. Se utilizada em um mdulo
que contm uma instruo Option Private, o procedimento no estar
disponvel fora do projeto.
Private
Opcional. Indica que o procedimento Property Let acessvel somente
para outros procedimentos do mdulo em que declarado.
Static
Opcional. Indica que as variveis locais do procedimento Property Let
so preservadas entre chamadas. O atributo Static no afeta variveis
que sejam declaradas fora do procedimento Property Let, mesmo que
elas sejam utilizadas no procedimento.
nome
Obrigatria. Nome do procedimento Property Let; segue as convenes
de nomenclatura padro de variveis, exceto que o nome pode ser o
mesmo de um procedimento Property Get ou Property Set do mesmo
mdulo.
arglist
Obrigatria. Lista de variveis que representam argumentos que so
passados ao procedimento Property Let quando ele chamado.
Mltiplos argumentos so separados por vrgulas. O nome e o tipo de
dados de cada argumento de um procedimento Property Let (exceto o
ltimo) devem ser iguais ao argumento correspondente de um
procedimento Property Get.
value
Obrigatria. Varivel que contm o valor a ser atribudo propriedade.
Quando o procedimento chamado, este argumento aparece no lado
direito da expresso de chamada. O tipo de dados de value deve ser o
mesmo que o tipo de retorno do procedimento Property Get
correspondente.
statements
Opcional. Qualquer grupo de instrues a ser executado dentro do
procedimento Property Let.
O argumento arglist possui a sintaxe e as partes abaixo:
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]
Parte
Optional

ByVal
ByRef
ParamArray

varname
type

defaultvalue

Descrio
Opcional. Indica que um argumento no obrigatrio. Se utilizada, todos
os argumentos subseqentes em arglist devem tambm ser opcionais e
declarados utilizando-se a palavra-chave Optional. Observe que o lado
direito de uma expresso Property Let no pode ser Optional.
Opcional. Indica que o argumento passado por valor.
Opcional. Indica que o argumento passado por referncia. ByRef o
padro no Visual Basic.
Opcional. Utilizada apenas como o ltimo argumento em arglist para
indicar que o argumento final uma matriz Optional de elementos
Variant. A palavra-chave ParamArray permite que voc fornea um
nmero arbitrrio de argumentos. Ela no pode ser utilizada com ByVal,
ByRef ou Optional.
Obrigatria. Nome da varivel que representa o argumento; segue as
convenes de nomenclatura padro de variveis.
Opcional. Tipo de dados do argumento passado ao procedimento; pode
ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal
(no-suportado atualmente), Date, String (somente de comprimento
varivel), Object, Variant. Se o parmetro no for Optional, tambm
pode ser especificado um tipo definido pelo usurio ou um tipo de objeto.
Opcional. Qualquer constante ou expresso de constante. Vlido
somente para parmetros Optional. Se o tipo for um Object, um valor
padro explcito somente poder ser Nothing.

Observao: Toda instruo Property Let deve definir pelo menos um argumento para o procedimento que ela define.
Esse argumento (ou o ltimo argumento se houver mais de um) contm o valor real a ser atribudo propriedade quando o
procedimento definido pela instruo Property Let for chamado. Tal argumento referido como value na sintaxe anterior.
Comentrios
Se no especificados explicitamente utilizando-se Public ou Private, os procedimentos Property sero pblicos como
padro. Se Static no for utilizado, o valor de variveis locais no ser preservado entre chamadas.
Todo o cdigo executvel deve estar nos procedimentos. Voc no pode definir um procedimento Property Let dentro de
outro procedimento Property, Sub ou Function.
A instruo Exit Property causa uma sada imediata de um procedimento Property Let. A execuo do programa continua
com a instruo que segue a instruo que chamou o procedimento Property Let. Pode aparecer qualquer nmero de
instrues Exit Property em qualquer lugar de um procedimento Property Let.
Da mesma forma que um procedimento Function e Property Get, um procedimento Property Let um procedimento
separado que pode tomar argumentos, efetuar uma srie de instrues e alterar o valor de seus argumentos. Entretanto, ao

Funes Internas

78

contrrio de um procedimento Function e Property Get, os quais retornam um valor, voc somente pode utilizar um
procedimento Property Let do lado esquerdo de uma expresso de atribuio de propriedade ou instruo Let.

Funes Internas

79

Instruo Property Set


Declara o nome, os argumentos e o cdigo que formam o corpo de um procedimento Property, o qual define uma
referncia a um objeto.
Sintaxe
[Public
|
Private]
[Static]
Property
Set
name
([arglist,]
reference)
[statements]
[Exit
Property]
[statements]
End Property
A sintaxe da instruo Property Set tem estas partes:
Parte
Descrio
Optional
Opcional. Indica que o argumento pode ou no ser fornecido pelo chamador.
Public
Opcional. Indica que o procedimento Property Set acessvel a todos os outros
procedimentos em todos os mdulos. Se utilizada em um mdulo que contm
uma instruo Option Private, o procedimento no estar disponvel fora do
projeto.
Private
Opcional. Indica que o procedimento Property Set acessvel somente a outros
procedimentos do mdulo em que declarado.
Static
Opcional. Indica que as variveis locais do procedimento Property Set so
preservadas entre chamadas. O atributo Static no afeta variveis que sejam
declaradas fora do procedimento Property Set, mesmo se forem utilizadas no
procedimento.
name
Obrigatria. Nome do procedimento Property Set; segue as convenes de
nomenclatura padro de variveis, exceto que o nome pode ser o mesmo de um
procedimento Property Get ou Property Let do mesmo mdulo.
arglist
Obrigatria. Lista de variveis que representam argumentos que so passados
ao procedimento Property Set quando ele chamado. Mltiplos argumentos so
separados por vrgulas.
reference
Obrigatria. Varivel que contm a referncia ao objeto utilizada no lado direito
da atribuio de referncia ao objeto.
statements
Opcional. Qualquer grupo de instrues a ser executado dentro do corpo do
procedimento Property.
O argumento arglist possui a sintaxe e as partes abaixo:
[Optional] [ByVal | ByRef] varname[( )] [As type] [= defaultvalue]
Parte
Optional

ByVal
ByRef
ParamArray

varname
type

defaultvalue

Descrio
Opcional. Indica que um argumento no obrigatrio. Se utilizada, todos os
argumentos subseqentes em arglist tambm devero ser opcionais e
declarados utilizando-se a palavra-chave Optional. Observe que o lado
direito de uma expresso Property Set no pode ser Optional.
Opcional. Indica que o argumento passado por valor.
Opcional. Indica que o argumento passado por referncia. ByRef o
padro do Visual Basic.
Opcional. Utilizada apenas como o ltimo argumento em arglist para indicar
que o argumento final uma matriz Optional de elementos Variant. A
palavra-chave ParamArray permite que voc fornea um nmero arbitrrio
de argumentos. Ela no pode ser utilizada com ByVal, ByRef ou Optional.
Obrigatria. Nome da varivel que representa o argumento; segue as
convenes de nomenclatura padro de variveis.
Opcional. Tipo de dados do argumento passado ao procedimento; pode ser
Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (nosuportado atualmente), Date, String (somente de comprimento varivel),
Object, Variant. Se o parmetro no for Optional, poder ser especificado
um tipo definido pelo usurio ou um tipo de objeto.
Opcional. Qualquer constante ou expresso de constante. Vlido somente
para parmetros Optional. Se o tipo for um Object, um valor padro
explcito somente poder ser Nothing.

Observao: Toda instruo Property Set deve definir pelo menos um argumento do procedimento que ela define. Esse
argumento (ou o ltimo argumento se houver mais de um) contm a referncia real ao objeto da propriedade quando o
procedimento definido pela instruo Property Set chamado. Ele referido como reference na sintaxe anterior. No pode
ser Optional.
Comentrios
Se no forem especificados explicitamente utilizando-se Public ou Private, os procedimentos Property sero pblicos
como padro. Se Static no for utilizado, o valor de variveis locais no ser preservado entre chamadas.
Todo o cdigo executvel deve estar nos procedimentos. Voc no pode definir um procedimento Property Set dentro de
outro procedimento Property, Sub ou Function.

Funes Internas

80

A instruo Exit Property causa uma sada imediata de um procedimento Property Set. A execuo do programa continua
com a instruo que segue a instruo que chamou o procedimento Property Set. Pode aparecer qualquer nmero de
instrues Exit Property em qualquer lugar de um procedimento Property Set.
Da mesma forma que um procedimento Function e Property Get, um procedimento Property Set um procedimento
separado que pode tomar argumentos, efetuar uma srie de instrues e alterar o valor de seus argumentos. Entretanto, ao
contrrio de um procedimento Function e Property Get, os quais retornam um valor, voc pode utilizar somente um
procedimento Property Set do lado esquerdo de uma atribuio de referncia de objeto (instruo Set).

Instruo Public
Utilizada no nvel de mdulo para declarar variveis pblicas e alocar espao de armazenamento.
Sintaxe
Public [WithEvents] varname[([subscripts])] [As [New] type] [,[WithEvents] varname[([subscripts])] [As [New] type]] . . .
A sintaxe da instruo Public tem estas partes:
Parte
Descrio
WithEvents
Opcional. Palavra-chave que especifica que varname uma varivel
de objeto utilizada para responder a eventos acionados por um objeto
ActiveX. Vlida somente em mdulos de classe. Voc pode declarar
quantas variveis individuais desejar utilizando WithEvents, mas no
pode criar matrizes com WithEvents. Voc no pode utilizar New com
WithEvents.
varname
Obrigatria. Nome da varivel; segue as convenes de nomenclatura
padro de variveis.
subscripts
Opcional. Dimenses de uma varivel de matriz; at 60 dimenses
mltiplas podem ser declaradas. O argumento subscripts utiliza a
sintaxe abaixo:
[lower To] upper [,[lower To] upper] . . .
Quando no enunciado explicitamente em lower, o limite inferior de
uma matriz controlado pela instruo Option Base. O limite inferior
ser zero se no estiver presente uma instruo Option Base.
New
Opcional. Palavra-chave que permite a criao implcita de um objeto.
Se voc utilizar New quando declarar a varivel de objeto, uma nova
ocorrncia do objeto ser criada na primeira referncia a ele; portanto,
voc no precisa utilizar a instruo Set para atribuir a referncia ao
objeto. A palavra-chave New no pode ser utilizada para declarar
variveis de tipo de dados intrnseco, no pode ser utilizada para
declarar instncias de objetos dependentes e no pode ser utilizada
com WithEvents.
type
Opcional. Tipo de dados da varivel; pode ser Byte, Boolean, Integer,
Long, Currency, Single, Double, Decimal (no-suportado
atualmente), Date, String, (para seqncias de caracteres de
comprimento varivel), String * length (para seqncias de caracteres
de comprimento fixo), Object, Variant, um tipo definido pelo usurio ou
um tipo de objeto. Utilize uma clusula As type separada para cada
varivel que estiver sendo definida.
Comentrios
Variveis declaradas utilizando-se a instruo Public esto disponveis para todos os procedimentos de todos os mdulos
de todos os aplicativos, a menos que Option Private Module esteja em vigor, caso em que as variveis sero pblicas
somente dentro do projeto no qual residem.
Ateno A instruo Public no pode ser utilizada em um mdulo de classe para declarar uma varivel de seqncia de
caracteres de comprimento fixo.
Utilize a instruo Public para declarar o tipo de dados de uma varivel. Por exemplo, a instruo abaixo declara uma
varivel como um Integer:
Public NmeroDeEmpregados As Integer
Utilize tambm uma instruo Public para declarar o tipo de objeto de uma varivel. A instruo abaixo declara uma
varivel para uma nova ocorrncia de uma planilha.
Public X As New Worksheet
Se a palavra-chave New no for utilizada ao declarar uma varivel de objeto, a varivel que se refere ao objeto dever ser
atribuda a um objeto existente utilizando-se a instruo Set para que ela possa ser utilizada. At que seja atribudo um
objeto, a varivel de objeto declarada ter o valor especial Nothing, que indica que no se refere a uma ocorrncia
especfica de um objeto.
Voc tambm pode utilizar a instruo Public com parnteses vazios para declarar uma matriz dinmica. Depois de
declarar uma matriz dinmica, utilize a instruo ReDim dentro de um procedimento para definir o nmero de dimenses e
elementos na matriz. Se voc tentar declarar novamente uma dimenso de uma varivel de matriz cujo tamanho tenha sido
especificado explicitamente em uma instruo Private, Public ou Dim, um erro ser gerado.
Se voc no especificar um tipo de dados ou um tipo de objeto e no houver uma instruo Deftype no mdulo, a varivel
ser Variant como padro.

Funes Internas

81

Quando variveis so inicializadas, uma varivel numrica inicializada como 0, uma seqncia de caracteres de
comprimento varivel inicializada como uma seqncia de caracteres de comprimento zero ("") e uma seqncia de
caracteres de comprimento fixo preenchida com zeros. As variveis Variant so inicializadas como Empty. Cada
elemento de uma varivel de tipo definido pelo usurio inicializado como se fosse uma varivel separada.

Funes Internas

82

Instruo ReDim
Utilizado no nvel de procedimento para realocar o espao de armazenamento para as variveis de matriz dinmica.
Sintaxe
ReDim [Preserve] varname(subscripts) [As type] [, varname(subscripts) [As type]] . . .
A sintaxe da instruo ReDim tem estas partes:
Parte
Descrio
Preserve
Opcional. Palavra-chave utilizada para preservar os dados em uma
matriz existente quando voc altera o tamanho da ltima dimenso.
varname
Obrigatria. Nome da varivel; segue as convenes de nomenclatura
padro de varivel.
subscripts
Obrigatria. Dimenses de uma varivel de matriz; at 60 dimenses
mltiplas podem ser declaradas. O argumento subscripts utiliza a sintaxe
abaixo:
[lower To] upper [,[lower To] upper] . . .
Quando no declarado de forma explcita em lower, o limite inferior de
uma matriz controlado pela instruo Option Base. O limite inferior
ser zero se nenhuma instruo Option Base estiver presente.
type
Opcional. Tipo de dados da varivel; pode ser Byte, Boolean, Integer,
Long, Currency, Single, Double, Decimal (no-suportado atualmente),
Date, String (para seqncias de caracteres de comprimento varivel),
String * length (para seqncias de caracteres de comprimento fixo),
Object, Variant, um tipo definido pelo usurio ou um tipo de objeto.
Utilize uma clusula As type separada para cada varivel sendo definida.
Para um Variant contendo uma matriz, type descreve o tipo de cada
elemento da matriz, mas no altera o Variant para algum outro tipo.
Comentrios
A instruo ReDim utilizada para dimensionar ou redimensionar uma matriz dinmica que j tenha sido declarada
formalmente utilizando-se uma instruo Private, Public ou Dim com os parnteses vazios (sem subscritos de dimenso).
Voc pode utilizar a instruo ReDim repetidamente para alterar o nmero de elementos e dimenses em uma matriz.
Contudo, voc no pode declarar uma matriz de um tipo dados e utilizar posteriormente ReDim para alterar a matriz para
um outro tipo de dados, a menos que a matriz esteja contida em um Variant. Se a matriz estiver contida em um Variant, o
tipo dos elementos podem ser alterados utilizando-se uma clusula As type, a menos que voc esteja utilizando a palavrachave Preserve, que no caso, no permite alteraes no tipo de dados.
Se voc utilizar a palavra-chave Preserve, poder redimensionar somente a ltima dimenso da matriz e no poder
alterar o nmero de dimenses. Por exemplo, se sua matriz possuir somente uma dimenso, voc poder redimensionar
essa dimenso porque ela a ltima e a nica dimenso. Contudo, se sua matriz possuir duas ou mais dimenses, voc
poder alterar somente o tamanho da ltima dimenso e ainda preservar o contedo da matriz. O exemplo abaixo mostra
como voc pode aumentar o tamanho da ltima dimenso de uma matriz dinmica sem apagar os dados nela contidos.
ReDim X(10, 10, 10)
...
ReDim Preserve X(10, 10, 15)
De forma semelhante, quando voc utiliza Preserve, pode alterar o tamanho da matriz somente alterando o limite superior;
alterar o limite inferior gera um erro.
Se voc tornar uma matriz menor do que seu tamanho original, os dados contidos nos elementos eliminados sero
perdidos. Se voc passar uma matriz para um procedimento por referncia, no poder redimensionar a matriz dentro do
procedimento.
Quando as variveis forem inicializadas, uma varivel numrica ser inicializada para 0, uma seqncia de caracteres de
comprimento varivel ser inicializada para uma seqncia de caracteres de comprimento zero ("") e uma seqncia de
caracteres de comprimento fixo ser preenchida com zeros. As variveis Variant so inicializadas para Empty. Cada
elemento de uma varivel de tipo definido pelo usurio inicializada como se fosse uma varivel separada. Uma varivel
que faz referncia a um objeto deve ser atribuda a um objeto existente utilizando-se a instruo Set antes que possa ser
utilizada. At que um objeto seja atribudo a ela, a varivel de objeto declarada ter o valor especial Nothing, o que indica
que ela no faz referncia a uma ocorrncia especfica de um objeto.
Ateno A instruo ReDim age como uma instruo declarativa se a varivel que ela declara no existir no nvel de
mdulo ou no nvel de procedimento. Se uma outra varivel com o mesmo nome for criada posteriormente, mesmo em um
escopo mais amplo, ReDim far referncia varivel posterior e no causar necessariamente um erro de compilao,
mesmo que Option Explicit esteja em vigor. Para evitar tais conflitos, ReDim no deve ser utilizada como uma instruo
declarativa, mas simplesmente para o redimensionamento de matrizes.
Observao: Para redimensionar uma matriz contida em um Variant, voc deve declarar de forma explicita a varivel
Variant antes de tentar redimensionar sua matriz.

Instruo Rem
Utilizada para incluir comentrios explicativos em um programa.
Sintaxe
Rem comment
Voc tambm pode utilizar a sintaxe abaixo:

Funes Internas

83

' comment
O argumento opcional comment o texto de qualquer comentrio que voc deseje incluir. necessrio um espao entre a
palavra-chave Rem e o comment.
Comentrios
Se voc utilizar nmeros de linha ou rtulos de linha, poder desviar de uma instruo GoTo ou GoSub para uma linha
contendo uma instruo Rem. A execuo continua com a primeira instruo executvel que segue a instruo Rem. Se a
palavra-chave Rem seguir outras instrues em uma linha, ela deve ser separada das instrues por dois-pontos (:).
Voc pode utilizar um apstrofo (') ao invs da palavra-chave Rem. Quando voc utiliza um apstrofo, os dois-pontos no
so obrigatrios aps outras instrues.

Instruo Set
Atribui uma referncia de objeto a uma varivel ou propriedade.
Sintaxe
Set objectvar = {[New] objectexpression | Nothing}
A sintaxe da instruo Set tem estas partes:
Parte
Descrio
objectvar
Obrigatria. Nome da varivel ou propriedade; segue as convenes
de nomenclatura padro de varivel.
New
Opcional. New geralmente utilizado durante a declarao para
possibilitar a criao implcita de objeto. Quando New for utilizada
com Set, ela criar uma nova ocorrncia da classe. Se objectvar
contiver uma referncia a um objeto, essa referncia ser liberada
quando for atribuda uma nova. A palavra-chave New no pode ser
utilizada para criar novas instncias de qualquer tipo de dados
intrnseco e no pode ser utilizada para criar objetos dependentes.
objectexpression Obrigatria. Expresso que consiste no nome de um objeto, uma
outra varivel declarada do mesmo tipo de objeto ou uma funo ou
mtodo que retorna um objeto do mesmo tipo.
Nothing
Opcional. Suspende a associao de objectvar com qualquer objeto
especfico. Atribuir Nothing a objectvar libera todos os recursos de
sistema e memria associados com o objeto referenciado
anteriormente quando nenhuma outra varivel fizer referncia a ele.
Comentrios
Para ser vlido, objectvar deve ser um tipo de objeto consistente com o objeto sendo atribudo ao mesmo.
As instrues Dim, Private, Public, ReDim e Static declaram somente uma varivel que faz referncia a um objeto. No
feita nenhuma referncia a um objeto real at que voc utilize a instruo Set para atribuir um objeto especfico.
O exemplo abaixo ilustra como Dim utilizado para declarar uma matriz com o tipo Form1. Nenhuma ocorrncia de Form1
existe realmente. Set ento atribui referncias s novas instncias de Form1 varivel FormulriosFilho. Tal cdigo pode
ser utilizado para criar formulrios filho em um aplicativo MDI.
Dim FormulriosFilho(1 to 4) As Form1
Set FormulriosFilho(1) = New Form1
Set FormulriosFilho(2) = New Form1
Set FormulriosFilho(3) = New Form1
Set FormulriosFilho(4) = New Form1
Geralmente, quando voc utiliza Set para atribuir uma referncia de objeto a uma varivel, nenhuma cpia do objeto
criada para essa varivel. Em vez disso, uma referncia ao objeto criada. possvel fazer com que mais do que uma
varivel de objeto faa referncia ao mesmo objeto. Como tais variveis so referncias ao objeto em vez de cpias do
objeto, qualquer alterao no objeto refletida em todas as variveis que fazem referncia a ele. Contudo, quando voc
utiliza a palavra-chave New na instruo Set, estar realmente criando uma ocorrncia do objeto.

Instruo Static
Utilizada no nvel de procedimento para declarar variveis e alocar espao de armazenamento. As variveis declaradas
com a instruo Static retm seus valores desde que o cdigo esteja sendo executado.
Sintaxe
Static varname[([subscripts])] [As [New] type] [, varname[([subscripts])] [As [New] type]] . . .
A sintaxe da instruo Static tem estas partes:
Parte
Descrio
varname
Obrigatria. Nome da varivel; segue as convenes de nomenclatura
padro de varivel.
subscripts
Opcional. As dimenses de uma varivel de matriz; podem ser
declaradas at 60 dimenses variadas. O argumento subscripts utiliza a
sintaxe abaixo:
[lower To] upper [,[lower To] upper] . . .
Quando no enunciado de forma explcita em lower, o limite inferior de
uma matriz ser controlado pela instruo Option Base. O limite inferior
ser zero se nenhuma instruo Option Base estiver presente.
New
Opcional. Palavra-chave que possibilita a criao implcita de um objeto.
Se voc utilizar New ao declarar a varivel de objeto, uma nova
Funes Internas

84

type

ocorrncia do objeto ser criada na primeira referncia a ele, assim no


ser necessrio utilizar a instruo Set para atribuir a referncia ao
objeto. A palavra-chave New no pode ser utilizada para declarar
variveis de qualquer tipo de dados intrnseco e no pode ser utilizada
para declarar instncias de objetos dependentes.
Opcional. Tipo de dados da varivel; pode ser Byte, Boolean, Integer,
Long, Currency, Single, Double, Decimal (no-suportado atualmente),
Date, String, (para seqncias de caracteres de comprimento varivel),
String * length (para seqncias de caracteres de comprimento fixo),
Object, Variant, um tipo definido pelo usurio ou um tipo de objeto.
Utilize uma clusula As type separada para cada varivel sendo definida.

Comentrios
Assim que o cdigo do mdulo estiver sendo executado, as variveis declaradas com a instruo Static retero seus
valores at que o mdulo seja redefinido ou reinicializado. Utilize a instruo Static em um procedimento no-esttico para
declarar as variveis explicitamente, as quais so visveis somente dentro do procedimento, mas cujo tempo de vida seja o
mesmo que o mdulo no qual o procedimento definido.
Utilize uma instruo Static dentro de um procedimento para declarar o tipo de dados de uma varivel que retenha seu
valor entre as chamadas de procedimento. Por exemplo, a instruo abaixo declara uma matriz de tamanho fixo de
nmeros inteiros:
Static NmeroDoEmpregado(200) As Integer
A instruo abaixo declara uma varivel para uma nova ocorrncia de uma planilha:
Static X As New Worksheet
Se a palavra-chave New no for utilizada ao declarar uma varivel de objeto, dever ser atribudo um objeto existente
varivel que se refere ao objeto utilizando-se a instruo Set antes que ela possa ser utilizada. At que um objeto seja
atribudo a ela, a varivel de objeto declarada conter o valor especial Nothing, indicando que ela no se refere a uma
ocorrncia em particular de um objeto. Quando voc utiliza a palavra-chave New na declarao, uma ocorrncia do objeto
criada na primeira referncia a ele.
Se voc no especificar um tipo de dados ou um tipo objeto e se no houver uma instruo Deftype no mdulo, a varivel
ser Variant como padro.
Observao: A instruo Static e a palavra-chave Static so semelhantes, mas so utilizadas para efeitos diferentes. Se
voc declarar um procedimento utilizando a palavra-chave Static (como em Static Sub ContabVendas ()), o espao de
armazenamento para todas as variveis locais dentro de um procedimento ser alocado uma vez e os valores das variveis
sero preservados durante todo o tempo em que o programa encontrar-se em execuo. Para procedimentos noestticos, o espao de armazenamento referente s variveis alocado cada vez que o procedimento chamado e
liberado quando o procedimento finalizado. A instruo Static utilizada para declarar variveis especficas dentro de
procedimentos no-estticos para preservar seus valores durante o tempo em que o programa estiver sendo executado.
Quando as variveis so inicializadas, uma varivel numrica inicializada para o valor 0, uma seqncia de caracteres de
comprimento varivel inicializada para uma seqncia de caracteres de comprimento ("") e uma seqncia de caracteres
de comprimento fixo preenchida com zeros. As variveis Variant so inicializadas para Empty. Cada elemento de uma
varivel de tipo definida pelo usurio inicializado como se fosse uma varivel separada.
Observao: Quando voc utilizar as instrues Static dentro de um procedimento, coloque-as no incio do procedimento
com outras instrues declarativas como Dim.

Instruo Sub
Declara o nome, os argumentos e o cdigo que formam o corpo de um procedimento Sub.
Sintaxe
[Private
|
Public]
[Static]
Sub
name
[(arglist)]
[statements]
[Exit
[statements]
End Sub
A sintaxe da instruo Sub tem estas partes:
Parte
Descrio
Public
Opcional. Indica que o procedimento Sub acessvel a todos os outros
procedimentos em todos os mdulos. Se utilizado em um mdulo que
contiver uma instruo Option Private, o procedimento no estar
disponvel fora do projeto.
Private
Opcional. Indica que o procedimento Sub acessvel somente a outros
procedimentos no mdulo onde ele declarado.
Static
Opcional. Indica que as variveis locais do procedimento Sub so
preservadas entre as chamadas. O atributo Static no afeta as variveis
que so declaradas fora de Sub, mesmo que elas sejam utilizadas no
procedimento.
name
Obrigatria. Nome de Sub; segue as convenes de nomenclatura
padro de varivel.
arglist
Opcional. Lista de variveis representando os argumentos que so
passados para o procedimento Sub quando ele chamado. As variveis

Funes Internas

Sub]

85

statements

so separadas por vrgulas.


Opcional. Qualquer grupo de instrues a serem executadas dentro do
procedimento Sub.

O argumento arglist possui a sintaxe e as partes abaixo:


[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]
Parte
Optional

ByVal
ByRef
ParamArray

varname
type

defaultvalue

Descrio
Opcional. Palavra-chave indicando que um argumento no obrigatrio.
Se utilizada, todos os argumentos subseqentes em arglist devero
tambm ser opcionais e declarados utilizando-se a palavra-chave
Optional. Optional no poder ser utilizado para qualquer argumento se
ParamArray for utilizado.
Opcional. Indica que o argumento passado por valor.
Opcional. Indica que o argumento passado por referncia. ByRef
representa o padro no Visual Basic.
Opcional. Utilizado somente como ltimo argumento em arglist para
indicar que o argumento final uma matriz Optional de elementos
Variant. A palavra-chave ParamArray permite-lhe fornecer um nmero
arbitrrio de argumentos. ParamArray no pode ser utilizado com ByVal,
ByRef ou Optional.
Obrigatria. Nome da varivel representando o argumento; segue as
convenes de nomenclatura padro de varivel.
Opcional. Tipo de dados do argumento passado ao procedimento; pode
ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal
(no-suportado atualmente), Date, String (somente de comprimento
varivel), Object, Variant. Se o parmetro no for Optional, um tipo
definido pelo usurio ou um tipo de objeto tambm pode ser
especificado.
Opcional. Qualquer constante ou expresso de constante. Vlida
somente para parmetros Optional. Se o tipo for um Object, o valor
padro explcito poder ser apenas Nothing.

Comentrios
Se no forem especificados de forma explcita utilizando Public ou Private, os procedimentos Sub sero pblicos como
padro. Se no for utilizado Static, o valor das variveis locais no ser preservado entre as chamadas.
Ateno Os procedimentos Sub podem ser recursivos; ou seja, eles podem chamar a si mesmos para efetuar uma certa
tarefa. Contudo, a recurso pode levar a um estouro de pilha. A palavra-chave Static geralmente no utilizada com os
procedimentos Sub recursivos.
Todos os cdigos executveis devem estar contidos em procedimentos. Voc no pode definir um procedimento Sub dentro
de um outro procedimento Sub, Function ou Property.
As palavras-chave Exit Sub causam uma sada imediata de um procedimento Sub. A execuo do programa continua com
a instruo que segue a instruo que chamou esse procedimento. possvel aparecer um nmero variado de instrues
Exit Sub em qualquer lugar de um procedimento Sub.
Como um procedimento Function, um procedimento Sub um procedimento separado que pode tomar os argumentos,
efetuar uma srie de instrues e alterar o valor de seus argumentos. Contudo, ao contrrio do procedimento Function,
que retorna um valor, um procedimento Sub no pode ser utilizado em uma expresso.
Voc chama um procedimento Sub utilizando o nome do procedimento seguido pela lista de argumentos. Consulte a
instruo Call para obter Especificidades sobre como chamar os procedimentos Sub.
As variveis utilizadas nos procedimentos Sub incorrem em duas categorias: aquelas que so declaradas de forma
explcita dentro de um procedimento e aquelas que no o so. As variveis que so declaradas de forma explcita em um
procedimento (utilizando-se Dim ou equivalente) so sempre locais no que se refere ao procedimento. As variveis que so
utilizadas mas no so declaradas de forma explcita em um procedimento tambm so locais, a menos que elas sejam
declaradas de forma explcita em algum nvel superior fora do procedimento.
Ateno Um procedimento pode utilizar uma varivel que no declarada de forma explcita no procedimento, mas
poder ocorrer um conflito de nomeao se algo que voc tenha definido no nvel de mdulo possuir o mesmo nome. Se
seu procedimento fizer referncia a uma varivel no-declarada que possui o mesmo nome que um outro procedimento,
constante ou varivel, ser assumido que seu procedimento est se referindo quele nome no nvel de mdulo. Para evitar
esse tipo de conflito, declare as variveis de forma explcita. Voc pode utilizar uma instruo Option Explicit para forar a
declarao explcita das variveis.
Observao: Voc no pode utilizar GoSub, GoTo ou Return para entrar ou sair de um procedimento Sub.

Funes Internas

86

Instruo Type
Utilizada no nvel de mdulo para definir um tipo de dados definido pelo usurio contendo um ou mais elementos.
Sintaxe
[Private
|
Public]
Type
varname
elementname[([subscripts])]
As
type
[elementname[([subscripts])]
As
type]
...
End Type
A sintaxe da instruo Type tem estas partes:
Parte
Descrio
Public
Opcional. Utilizada para declarar tipos definidos pelo usurio que esto
disponveis para todos os procedimentos em todos os mdulos e em todos
os projetos.
Private
Opcional. Utilizada para declarar tipos definidos pelo usurio que esto
disponveis somente dentro do mdulo onde ocorre a declarao.
varname
Obrigatria. Nome do tipo definido pelo usurio; segue as convenes de
nomenclatura padro de variveis.
elementnam Obrigatria. Nome de um elemento de tipo definido pelo usurio. Os nomes
e
de elemento tambm seguem as convenes de nomenclatura padro de
varivel, exceto que palavras-chave podem ser utilizadas.
subscripts Opcional. Dimenses de um elemento de matriz. Utilize somente
parnteses quando declarar uma matriz cujo tamanho pode ser alterado. O
argumento subscripts utiliza a sintaxe abaixo:
[lower To] upper [,[lower To] upper] . . .
Quando no for declarado de forma explcita em lower, o limite inferior de
uma matriz ser controlado pela instruo Option Base. O limite inferior
ser zero se nenhuma instruo Option Base estiver presente.
type
Obrigatria. Tipo de dados do elemento; pode ser Byte, Boolean, Integer,
Long, Currency, Single, Double, Decimal (no-suportado atualmente),
Date, String(para seqncias de caracteres de comprimento varivel),
String * comprimento (para seqncias de caracteres de comprimento
fixo), Object, Variant, um outro tipo definido pelo usurio ou um tipo de
objeto.
Comentrios
A instruo Type pode ser utilizada somente no nvel de mdulo. Assim que voc tiver declarado um tipo definido pelo
usurio utilizando a instruo Type, ser possvel declarar uma varivel daquele tipo em qualquer lugar dentro do escopo
da declarao. Utilize Dim, Private, Public, ReDim ou Static para declarar uma varivel do tipo definido pelo usurio.
Nos mdulos padro, os tipos definidos pelo usurio so pblicos como padro. Essa visibilidade pode ser alterada
utilizando-se a palavra-chave Private. Nos mdulos de classe, contudo, os tipos definidos pelo usurio podem somente ser
privados e a visibilidade no pode ser alterada utilizando-se a palavra-chave Public.
No so permitidos nmeros de linha e rtulos de linha nos blocos Type...End Type.
Os tipos definidos pelo usurio so geralmente utilizados com registros de dados, que freqentemente consistem em um
nmero de elementos relacionados de diferentes tipos de dados.
O exemplo abaixo mostra a utilizao de matrizes de tamanho fixo em um tipo definido pelo usurio:
Type StateData
CdigoDaCidade (1 To 100) As Integer
' Declara uma matriz esttica.
Municpio As String * 30
End Type
Dim SoPaulo(1 To 100) As StateData
No exemplo anterior, StateData inclui a matriz esttica CdigoDaCidade e o registro SoPaulo possui a mesma estrutura
que StateData.
Quando voc declara uma matriz de tamanho fixo dentro de um tipo definido pelo usurio, suas dimenses devem ser
declaradas com literais numricos ou constantes em vez de variveis.
A definio da instruo Option Base determina o limite inferior para as matrizes dentro dos tipos definidos pelo usurio.

Funo UBound
Retorna um Long contendo o maior subscrito disponvel para a dimenso indicada de uma matriz.
Sintaxe
UBound(arrayname[, dimension])
A sintaxe da funo UBound tem estas partes:
Parte
Descrio
arrayname
Obrigatria. Nome da varivel de matriz; segue as convenes de
nomenclatura padro de varivel.
dimension
Opcional; Variant (Long). Nmero inteiro indicando o limite superior da
dimenso que retornado. Utilize 1 para a primeira dimenso, 2 para a
segunda e assim por diante. Se dimension for omitida, assume-se o valor

Funes Internas

87

1.
Comentrios
A funo UBound utilizada com a funo LBound para determinar o tamanho de uma matriz. Utilize a funo LBound
para encontrar o limite inferior da dimenso de uma matriz.
UBound retorna os seguintes valores para uma matriz com as dimenses abaixo:
Dim A(1 To 100, 0 To 3, -3 To 4)
Instruo
UBound(A, 1)
UBound(A, 2)
UBound(A, 3)

Valor de retorno
100
3
4

Exemplo da funo Array


Este exemplo utiliza a funo Array para retornar uma Variant que contm uma matriz.
Dim MyWeek, MyDay
MyWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
' Os valores de retorno assumem o limite inferior definido como 1 (utilizando a instruo Option Base).
MyDay = MyWeek(2) ' MyDay contm "Tue".
MyDay = MyWeek(4) ' MyDay contm "Thu".

Funes Internas

88

Exemplo da instruo Const


Este exemplo utiliza a instruo Const para declarar constantes para uso em lugar de valores literais. As constantes Public
ocorrem em uma seo Geral de um mdulo padro, em vez de em um mdulo de classe. As constantes Private podem
aparecer na seo Geral de qualquer tipo de mdulo.
' As constantes so Private como padro.
Const MyVar = 459
' Declara a constante Public.
Public Const MyString = "HELP"
' Declara a constante Integer Private.
Private Const MyInt As Integer = 5
' Declara mltiplas constantes na mesma linha.
Const MyStr = "Hello", MyDouble As Double = 3.4567
Exemplo da funo CreateObject
Este exemplo utiliza a funo CreateObject para definir uma referncia (xlApp) ao Microsoft Excel. Ele utiliza a referncia
para acessar a propriedade Visible do Microsoft Excel e, em seguida, utiliza o mtodo Quit do Microsoft Excel para fechlo. Por fim, a prpria referncia liberada.
Dim xlApp As Object
' Declara a varivel para conter a referncia.
Set xlApp = CreateObject("excel.application")
' Voc pode ter que definir a propriedade Visible como True
' se quiser ver o aplicativo.
xlApp.Visible = True
' Usa xlApp para acessar outros objetos do
' Microsoft Excel.
xlApp.Quit' Quando terminar, use o mtodo Quit para fechar
Set xlApp = Nothing
' o aplicativo e, em seguida, libere a referncia.
Exemplo da instruo Declare
Este exemplo mostra como a instruo Declare utilizada em nvel de mdulo de um mdulo padro para declarar uma
referncia a um procedimento externo em uma biblioteca de vinculao dinmica (DLL) ou no recurso de cdigo do
Macintosh. Voc pode inserir as instrues Declare em mdulos de classe se as instrues Declare forem Private.
' No Microsoft Windows (de 16 bits):
Declare Sub MessageBeep Lib "User" (ByVal N As Integer)
' Suponha que SomeBeep um alias para o nome do procedimento.
Declare Sub MessageBeep Lib "User" Alias "SomeBeep"(ByVal N As Integer)
' Usa um ordinal na clusula Alias para chamar GetWinFlags.
Declare Function GetWinFlags Lib "Kernel" Alias "#132"() As Long
' Nos sistemas Microsoft Windows de 32 bits, especifique a biblioteca USER32.DLL,
' em vez de USER.DLL. Voc pode utilizar a compilao
' condicional para gravar um cdigo que possa ser
' executado tanto no Win32 como no Win16.
#If Win32 Then
Declare Sub MessageBeep Lib "User32" (ByVal N As Long)
#Else
Declare Sub MessageBeep Lib "User" (ByVal N As Integer)
#End If
' No Macintosh:
Declare Sub MessageAlert Lib "MyHd:MyAlert" Alias "MyAlert" (ByVal N _
As Integer)
' Utiliza um recurso de cdigo na clusula Alias.
Declare Sub MessageAlert Lib "MyHd:MyAlert" Alias "XTST$MyAlert" _
(ByVal N As Integer)
' Se o especificador do tipo de recurso de cdigo tiver
' somente 3 caracteres, certifique-se de deixar um
' espao em branco onde apareceria normalmente o
' caractere final.
Declare Sub MessageAlert Lib "MyHd:AnAlert" Alias "COD $AnAlert" _
(ByVal N As Integer)
Exemplo de instrues Deftype
Este exemplo mostra vrios usos das instrues Deftype para definir os tipos de dados padro de variveis e
procedimentos de funo cujos nomes iniciam com caracteres especificados. O tipo de dados padro pode ser sobrescrito
somente por atribuio explcita utilizando-se a instruo Dim. As instrues Deftype somente podem ser utilizadas em
nvel de mdulo (ou seja, fora dos procedimentos).
' Os nomes de varivel que comeam com as letras entre A e K tm como padro Integer.
Funes Internas

89

DefInt A-K
' Os nomes de varivel que comeam com as letras entre L e Z tm como padro String.
DefStr L-Z
CalcVar = 4
' Inicializa Integer.
StringVar = "Hello, there"
' Inicializa String.
AnyVar = "Hello" ' Provoca o erro "Type Mismatch".
Dim Calc As Double
' Define explicitamente o tipo como Double.
Calc = 2.3455 ' Atribui um Double.
' As instrues Deftype tambm se aplicam a procedimentos de funo.
CalcNum = ATestFunction(4)' Chama a funo definida pelo usurio.
' Definio do procedimento de funo ATestFunction.
Function ATestFunction(INumber)
ATestFunction = INumber * 2 ' O valor de retorno um inteiro.
End Function
Exemplo da instruo Dim
Este exemplo mostra vrios usos da instruo Dim para declarar variveis. Ele tambm mostra a instruo Dim sendo
utilizada para declarar matrizes. O limite inferior padro dos subscritos de matriz 0 e pode ser sobrescrito em nvel de
mdulo utilizando-se a instruo Option Base.
' AnyValue e MyValue so declaradas como Variant como padro com o valores definidos como Empty.
Dim AnyValue, MyValue
' Declara explicitamente uma varivel do tipo Integer.
Dim Nmero As Integer
' Mltiplas declaraes em uma nica linha. AnotherVar do tipo Variant
' porque o seu tipo est omitido.
Dim AnotherVar, Option As Boolean, BirthDate As Date
' DayArray uma matriz de variantes com 51 elementos indexados, de
' 0 a 50, pressupondo-se que Option Base esteja definida como 0 (padro) para o
' mdulo atual.
Dim DayArray(50)
' Matrix uma matriz bidimensional de inteiros.
Dim Matrix(3, 4) As Integer
' MyMatrix uma matriz tridimensional de duplos com limites explcitos.
Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double
' BirthDay uma matriz de datas com ndices de 1 a 10.
Dim BirthDay(1 To 10) As Date
' MyArray uma matriz dinmica de variantes.
Dim MyArray()
Exemplo da instruo Enum
O exemplo abaixo mostra a instruo Enum usada para definir uma coleo de constantes nomeadas. Neste caso, as
constantes so cores que voc poderia escolher para designar formulrios de entrada de dados para um banco de dados.
Public Enum InterfaceColors
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFBF00&
icSpringGreen = &H7FFF00&
icForestGreen = &H228B22&
icGoldenrod = &H20A5DA&
icFirebrick = &H2222B2&
End Enum
Exemplo da instruo Erase
Este exemplo utiliza a instruo Erase para reinicializar os elementos de matrizes de tamanho fixo e desalocar espao de
armazenamento de matrizes dinmicas.
' Declara variveis de matriz.
Dim NumArray(10) As Integer
' Matriz Integer.
Dim StrVarArray(10) As String ' Matriz de seqncia de caracteres varivel.
Dim Str|FixArray(10) As String * 10 ' Matriz de seqncia de caracteres fixa.
Dim VarArray(10) As Variant ' Matriz de variante.
Dim DynamicArray() As Integer ' Matriz Dinmica.
ReDim DynamicArray(10) ' Alocar espao de armazenamento.
Erase NumArray ' Cada elemento definido como 0.

Funes Internas

90

Erase StrVarArray ' Cada elemento definido como seqncia de caracteres de Length
' zero ("").
Erase Str|FixArray ' Cada elemento definido como 0.
Erase VarArray
' Cada elemento definido como Empty.
Erase DynamicArray
' Liberar a memria utilizada pela matriz.

Funes Internas

91

Exemplo da instruo Event


O exemplo abaixo utiliza eventos para contar segundos durante uma demonstrao da mais rpida corrida de 100 metros
rasos. O cdigo ilustra todos os mtodos relacionados com eventos, propriedades e instrues, incluindo a instruo Event.
A classe que produz um evento da origem do evento e a classe que implementa o evento so os coletores. Uma origem de
evento pode ter mltiplos coletores para os eventos que ela gera. Quando a classe provoca o evento, ele disparado em
todas as classes que escolheram eventos coletores para aquela ocorrncia do objeto.
O exemplo tambm utiliza um formulrio (Form1) com um boto (Command1), um rtulo (Label1) e duas caixas de texto
(Text1 e Text2). Quando voc clica no boto, a primeira caixa de texto exibe "A partir de agora" e a segunda inicia a
contagem de segundos. Quando o tempo completo (9,84 segundos) decorre, a primeira caixa de texto exibe "At agora" e a
segunda exibe "9,84"
O cdigo para Form1 especifica os estados inicial e final do formulrio. Ele tambm contm o cdigo executado quando os
eventos so provocados.
Option Explicit
Private WithEvents mText As TimerState
Private Sub Command1_Click()
Text1.Text = "Frow now"
Text1.Refresh
Text2.Text = "0"
Text2.Refresh
Call mText.TimerTask(9.84)
End Sub
Private Sub Form_Load()
Command1.Caption = "Click to Start Timer"
Text1.Text = ""
Text2.Text = ""
Label1.Caption = "The fastest 100 meter run took this long:"
Set mText = New TimerState
End Sub
Private Sub mText_ChangeText()
Text1.Text = "At agora"
Text2.Text = "9.84"
End Sub
Private Sub mText_UpdateTime(ByVal dblJump As Double)
Text2.Text = Str(Format(dblJump, "0"))
DoEvents
End Sub
O cdigo restante est em um mdulo de classe chamado TimerState. As instrues Event declaram os procedimentos
iniciados quando eventos so provocados.
Option Explicit
Public Event UpdateTime(ByVal dblJump As Double)
Public Event ChangeText()
Public Sub TimerTask(ByVal Duration As Double)
Dim dblStart As Double
Dim dblSecond As Double
Dim dblSoFar As Double
dblStart = Timer
dblSoFar = dblStart
Do While Timer < dblStart + Duration
If Timer - dblSoFar >= 1 Then
dblSoFar = dblSoFar + 1
RaiseEvent UpdateTime(Timer - dblStart)
End If
Loop
RaiseEvent ChangeText
End Sub
Exemplo da instruo Function
Este exemplo utiliza a instruo Function para declarar o nome, argumentos e cdigo que formam o corpo de um
procedimento Function. O ltimo exemplo utiliza argumentos Optional inicializados.
' A seguinte funo definida pelo usurio retorna a raiz quadrada do
Funes Internas

92

' argumento passado a ela.


Function CalculateSquareRoot(NumberArg As Double) As Double
If NumberArg < 0 Then
' Avalia o argumento.
Exit Function ' Sai para chamar o procedimento.
Else
CalculateSquareRoot = Sqr(NumberArg) ' Retorna a raiz quadrada.
End If
End Function
O uso da palavra-chave ParamArray possibilita que uma funo aceite um nmero varivel de argumentos. Na definio a
seguir, FirstArg passado pelo valor.
Function CalcSum(ByVal FirstArg As Integer, ParamArray OtherArgs())
Dim ReturnValue
' Se a funo for chamada da seguinte maneira:
ReturnValue = CalcSum(4, 3 ,2 ,1)
' As variveis locais so atribudas aos seguintes valores: FirstArg = 4,
' OtherArgs(1) = 3, OtherArgs(2) = 2, e assim por diante, pressupondo-se o limite inferior padro
' para matrizes = 1.
Os argumentos Optional agora podem ter valores e tipos padro diferentes de Variant.
' Se os argumentos de uma funo forem definidos da seguinte maneira:
Function MyFunc(MyStr As String, Optional MyArg1 As Integer = 5, Optional MyArg2 = "Dolly")
Dim RetVal
' A funo pode ser chamada da seguinte maneira:
RetVal = MyFunc("Hello", 2, "World") ' Todos os 3 argumentos fornecidos.
RetVal = MyFunc("Test", , 5) ' Segundo argumento omitido.
' Argumentos um e trs utilizando argumentos nomeados.
RetVal = MyFunc(MyStr:="Hello ", MyArg1:=7)

Funes Internas

93

Exemplo da funo GetObject


Este exemplo utiliza a funo GetObject para obter uma referncia a uma planilha especfica do Microsoft Excel (MyXL).
Ele utiliza a propriedade Application da planilha para tornar o Microsoft Excel visvel, fech-lo etc. A primeira chamada de
GetObject provoca um erro se o Microsoft Excel ainda no estiver sendo executado. No exemplo, o erro faz com que o
sinalizador ExcelNoEstavaSendo Executado seja definido como True. A segunda chamada de GetObject especifica um
arquivo a ser aberto. Se o Microsoft Excel ainda no estiver sendo executado, a segunda chamada o iniciar e retornar
uma referncia planilha representada pelo arquivo especificado. O arquivo, meuteste.xls no exemplo, deve existir no local
especificado; caso contrrio, ser gerado o erro de automao do Visual Basic. Depois, o cdigo de exemplo torna visveis
tanto o Microsoft Excel como a janela que contm a planilha especificada. Por fim, se no havia verso anterior do
Microsoft Excel sendo executada, o cdigo utiliza o mtodo Quit do objeto Application para fechar o Microsoft Excel. Se o
aplicativo j estava sendo executado, no feita nenhuma tentativa de fech-lo. A prpria referncia liberada sendo
definida como Nothing.
' Declara necessrio as routinas API :
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
ByVal lpWindowName As Long) As Long
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long _
ByVal wParam as Long _
ByVal lParam As Long) As Long
Sub GetExcel()
Dim MyXL As Object
' Varivel para conter a referncia ao Microsoft Excel.
Dim ExcelWasNotRunning As Boolean
' Sinalizador para liberao final.
' Testa para ver se j h uma cpia do Microsoft Excel sendo executada.
On Error Resume Next ' Adia a interceptao do erro.
' Funo GetObject chamada sem que o primeiro argumento
' retorne uma referncia a uma instncia do aplicativo. ' Se o aplicativo no estiver sendo executado, ocorrer ' um erro.
Observe a vrgula utilizada como marcador para o primeiro argumento
Set MyXL = Getobject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Limpa o objeto Err se tiver ocorrido o erro.
' Verifique para o Microsoft Excel. Se o Microsoft Excel est sendo executado,
' insira dentro da tabela Running Object.
DetectExcel
' Define a varivel de objeto para fazer referncia ao arquivo que voc deseja ver.
Set MyXL = Getobject("c:\vb4\MYTEST.XLS")
' Mostra o Microsoft Excel atravs da sua propriedade Application. Em seguida mostra a janela real que contm o arquivo
que utiliza a coleo Windows
' da referncia do objeto MyXL.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
' Faz a manipulao do seu
' arquivo aqui.
' ...
' Se esta cpia do Microsoft Excel no estava sendo executada quando voc iniciou, feche-a utilizando o mtodo Quit da
propriedade Application.
' Observe que, quando voc tentar sair do Microsoft Excel, a barra de ttulo do Microsoft Excel
' piscar e o Microsoft Excel exibir uma mensagem perguntando-lhe se deseja
' salvar os arquivos carregados.
If ExcelWasNotRunning = True Then MyXL.Application.Quit
End If
Set MyXL = Nothing
' Libera a referncia para o
' aplicativo e planilha.
End Sub
Sub DetectExcel()
' O procedimento detecta que o Excel est sendo executado e registra-o.
Const WM_USER = 1024
Dim hWnd As Long
' Se o Excel est sendo executado esta chamada API retorna seu identificador.
hWnd = FindWindow("XLMAIN", 0)
If hWnd = 0 Then ' 0 significa que o Excel no est executando.
Exit Sub
Else
' O Excel est sendo executado, ento use o SendMessage API

Funes Internas

94

' funo para inserir a tabela Running Object .


SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub
Exemplo da instruo Implements
O exemplo abaixo mostra como usar a instruo Implements para fazer um conjunto de declaraes disponveis para
mltiplas classes. Compartilhando as declaraes atravs da instruo Implements, nenhuma classe precisa fazer
qualquer declarao.
Suponhamos que existam dois formulrios. O formulrio Selector tem dois botes, Customer Data e Supplier Data. Para
inserir informaes de nome e endereo para um cliente ou um fornecedor, o usurio clica no boto Customer ou no boto
Supplier no formulrio Selector e, em seguida, insere o nome e o endereo usando o formulrio Data Entry. Este formulrio
tem dois campos, Name e Address.
O cdigo abaixo para as declaraes compartilhadas est em uma classe chamada PersonalData:
Public Name As String
Public Address As String
O cdigo que suporta os dados do cliente est em um mdulo de classe chamado Customer:
Implements PersonalData
Private Property Get PersonalData_Address() As String
PersonalData_Address = "CustomerAddress"
End Property
Private Property Let PersonalData_Address(ByVal RHS As String)
'
End Property
Private Property Let PersonalData_Name(ByVal RHS As String)
'
End Property
Private Property Get PersonalData_Name() As String
PersonalData_Name = "CustomerName"
End Property
O cdigo que suporta os dados do fornecedor est em um mdulo de classe chamado Supplier:
Implements PersonalData
Private Property Get PersonalData_Address() As String
PersonalData_Address = "SupplierAddress"
End Property
Private Property Let PersonalData_Address(ByVal RHS As String)
'
End Property
Private Property Let PersonalData_Name(ByVal RHS As String)
'
End Property
Private Property Get PersonalData_Name() As String
PersonalData_Name = "SupplierName"
End Property
O cdigo abaixo suporta o formulrio Selector:
Private cust As New Customer
Private sup As New Supplier
Private Sub Command1_Click()
Dim frm2 As New Form2
Set frm2.PD = cust
frm2.Show 1
End Sub
Private Sub Command2_Click()
Dim frm2 As New Form2
Set frm2.PD = sup
frm2.Show 1
End Sub

Funes Internas

95

O cdigo abaixo suporta o formulrio Data Entry:


Private m_pd As PersonalData
Private Sub Form_Load()
With m_pd
Text1 = .Name
Text2 = .Address
End With
End Sub
Public Property Set PD(Data As PersonalData)
Set m_pd = Data
End Property

Funes Internas

96

Exemplo da funo LBound


Este exemplo utiliza a funo LBound para determinar o menor subscrito disponvel para a dimenso indicada de uma
matriz. Utiliza a instruo Option Base para sobrescrever o valor 0 do subscrito da matriz base padro.
Dim Lower
Dim MyArray(1 To 10, 5 To 15, 10 To 20) ' Declara as variveis de matriz.
Dim AnyArray(10)
Lower = Lbound(MyMatrix, 1)
' Retorna 1.
Lower = Lbound(MyMatrix, 3)
' Retorna 10.
Lower = Lbound(AnyArray) ' Retorna 0 ou 1, dependendo da
' definio de Option Base.
Exemplo da instruo Let
Este exemplo atribui os valores de expresses a variveis utilizando a instruo Let explcita e implcita.
Dim MyStr, MyInt
' As atribuies de varivel a seguir utilizam a instruo Let.
Let MyStr = "Hello World"
Let MyInt = 5
As instrues a seguir so as mesmas, sem a instruo Let.
Dim MyStr, MyInt
MyStr = "Hello World"
MyInt = 5
Exemplo da instruo Option Base
Este exemplo utiliza a instruo Option Base para sobrescrever o valor 0 do subscrito da matriz base padro. A funo
LBound retorna o menor subscrito disponvel para a dimenso indicada de uma matriz. A instruo Option Base utilizada
somente em nvel de mdulo.
Option base 1 ' Define os subscritos da matriz padro como 1.
Dim Lower
Dim MyArray(20), TwoDArray(3, 4) ' Declara as variveis de matriz.
Dim ZeroArray(0 To 5) ' Sobrescreve o subscrito base padro.
' Utiliza a funo LBound para testar os limites Inferiores da matrizes.
Lower = LBound(MyArray) ' Retorna 1.
Lower = LBound(TwoDArray, 2) ' Retorna 1.
Lower = LBound(ZeroArray) ' Retorna 0.
Exemplo da instruo Option Compare
Este exemplo utiliza a instruo Option Compare para definir o mtodo de comparao de seqncias padro. A instruo
Option Compare utilizada somente no nvel de mdulo.
' Define o mtodo de comparao de seqncias de caracteres como Binary.
Option compare Binary ' Ou seja, "AAA" menos que "aaa"
' Define o mtodo de comparao de seqncias como Text.
Option compare Text ' Ou seja, "AAA" igual a "aaa".

Funes Internas

97

Exemplo da instruo Option Explicit


Este exemplo utiliza a instruo Option Explicit para for-lo a declarar explicitamente todas as variveis. A tentativa de
utilizar uma varivel no declarada provoca um erro em tempo de compilao. A instruo Option Explicit utilizada
somente no nvel de mdulo.
Option explicit ' Fora a declarao de varivel explcita.
Dim MyVar' Declara a varivel.
MyInt = 10
' Varivel no declarada gera erro.
MyVar = 10
' Varivel declarada no gera erro.
Exemplo da instruo Option Private
Este exemplo demonstra a instruo Option Private, que utilizada no nvel de mdulo para indicar que o mdulo inteiro
privado. Com Option Private Module, os smbolos de nvel de mdulo no declarados Private continuam disponveis para
outros mdulos no projeto, mas no para outros projetos ou aplicativos.
Option private Module ' Indica que o mdulo privado.
Exemplo da instruo Private
Este exemplo mostra a instruo Private sendo utilizada no nvel de mdulo para declarar variveis como privadas, ou seja,
elas esto disponveis somente para o mdulo em que so declaradas.
Private Nmero As Integer ' Varivel Integer privada.
Private NameArray(1 To 5) As String ' Varivel de matriz privada.
' Mltiplas declaraes, duas Variants e um Integer, todos Private.
Private MyVar, YourVar, ThisVar As Integer
Exemplo da instruo Property Get
Este exemplo utiliza a instruo Property Get para definir um procedimento de propriedade que obtm o valor de uma
propriedade. A propriedade identifica, como uma seqncia de caracteres, a cor atual de uma caneta em um pacote de
desenho.
Dim CurrentColor As Integer
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3
' Retorna a cor atual da caneta como uma seqncia de caracteres.
Property Get PenColor() As String
Select Case CurrentColor
Case RED
PenColor = "Red"
Case GREEN
PenColor = "Green"
Case BLUE
PenColor = "Blue"
End Select
End Property
' O cdigo a seguir obtm a cor da caneta
' que chama o procedimento Property Get.
ColorName = PenColor

Funes Internas

98

Exemplo da instruo Property Let


Este exemplo utiliza a instruo Property Let para definir um procedimento que atribui um valor a uma propriedade. A
propriedade identifica a cor da caneta para um pacote de desenho.
Dim CurrentColor As Integer
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3
' Define a propriedade da cor da caneta de um pacote de desenho.
' A varivel em nvel de mdulo CurrentColor definida como um valor numrico que identifica a cor utilizada no desenho.
Property Let PenColor(ColorName As String)
Select Case ColorName ' Verifica a seqncia de caracteres do nome da cor.
Case "Red"
CurrentColor = RED ' Atribui o valor a Red.
Case "Green"
CurrentColor = GREEN
' Atribui o valor a Green.
Case "Blue"
CurrentColor = BLUE ' Atribui o valor a Blue.
Case Else
CurrentColor = BLACK
' Atribui valor padro.
End Select
End Property
' O cdigo a seguir define a propriedade PenColor de um pacote de desenho
' chamando o procedimento Property Let.
PenColor = "Red"
Exemplo da instruo Property Set
Este exemplo utiliza a instruo Property Set para definir um procedimento de propriedade que define uma referncia a um
objeto.
' A propriedade Pen pode ser definida como diferentes implementaes Pen.
Property Set Pen(P As Object)
Set CurrentPen = P ' Atribui Pen ao objeto.
End Property
Exemplo da instruo Public
Este exemplo utiliza a instruo Public no nvel de mdulo (seo Geral) de um mdulo padro para declarar
explicitamente variveis como pblicas, ou seja, elas esto disponveis para todos os procedimentos em todos os
aplicativos, a menos que Option Private Module esteja ativa.
Public Nmero As Integer ' Varivel Integer pblica.
Public NameArray(1 To 5) As String ' Varivel de matriz pblica.
' Mltiplas declaraes, duas Variants e um Integer, todos Public.
Public MyVar, YourVar, ThisVar As Integer

Funes Internas

99

Exemplo da instruo ReDim


Este exemplo utiliza a instruo ReDim para alocar e realocar o espao de armazenamento para variveis de matriz
dinmica. Ele pressupe que a Option Base seja 1.
Dim MyArray() As Integer ' Declara a matriz dinmica.
Redim MyArray(5) ' Aloca 5 elementos.
For I = 1 To 5 ' Faz o loop 5 vezes.
MyArray(I) = I
' Inicializa a matriz.
Next I
A prxima instruo redimensiona a matriz e apaga os elementos.
Redim MyArray(10)' Redimensiona para 10 elementos.
For I = 1 To 10 ' Faz o loop 10 vezes.
MyArray(I) = I
' Inicializa a matriz.
Next I
A instruo a seguir redimensiona a matriz, mas no apaga os elementos:
Redim Preserve MyArray(15)
' Redimensiona para 15 elementos.
Exemplo da instruo Rem
Este exemplo ilustra as vrias formas da instruo Rem, que utilizada para incluir comentrios explicativos em um
programa.
Rem Esta a primeira forma da sintaxe.
A segunda forma da sintaxe a seguinte:
Dim MyStr1, MyStr2
MyStr1 = "Hello": Rem Comentrio aps uma instruo separada por dois-pontos.
MyStr2 = "Goodbye"
' Isto tambm um comentrio; no h necessidade de dois-pontos.
Exemplo da instruo Set
Este exemplo utiliza a instruo Set para atribuir referncias de objeto s variveis. YourObject considerado um objeto
vlido com uma propriedade Text.
Dim YourObject, MyObject, MyStr
Set MyObject = YourObject ' Atribui referncia a objeto.
' MyObject e YourObject se referem ao mesmo objeto.
YourObject.Text = "Hello World" ' Inicializa a propriedade.
MyStr = MyObject.Text ' Retorna "Hello World".
' Descontinua a associao. MyObject no se refere mais a YourObject.
Set MyObject = Nothing ' Solta o objeto.
Exemplo da instruo Static
Este exemplo utiliza a instruo Static para conter o valor de uma varivel desde que o cdigo do mdulo esteja sendo
executado.
' Definio de funo.
Function KeepTotal(Number)
' Somente a varivel Accumulate preserva o seu valor entre chamadas.
Static Accumulate
Accumulate = Accumulate + Number
KeepTotal = Accumulate
End Function
' Definio de funo Static.
Static Function MyFunction(Arg1, Arg2, Arg3)
' Todas as variveis locais preservam o valor entre chamadas de funo.
Accumulate = Arg1 + Arg2 + Arg3
Half = Accumulate / 2
MyFunction = Half
End Function
Exemplo da instruo Sub
Este exemplo utiliza a instruo Sub para definir o nome, argumentos e o cdigo que formam o corpo de um procedimento
Sub.
' Definio do procedimento Sub.
' Procedimento Sub com dois argumentos.
Sub SubComputeArea(Length, TheWidth)
Dim Area As Double ' Declara a varivel local.
If Length = 0 Or TheWidth = 0 Then
' Se ambos os argumentos = 0.
Exit Sub ' Sai de Sub imediatamente.
End If

Funes Internas

100

Area = Length * TheWidth ' Calcula a rea do retngulo.


Debug.Print Area ' Imprime a rea na janela Depurar.
End Sub
Exemplo da instruo Type
Este exemplo utiliza a instruo Type para definir um tipo de dados definido pelo usurio. A instruo Type utilizada
somente no nvel de mdulo. Se ela aparecer em um mdulo de classe, uma instruo Type dever ser precedida pela
palavra-chave Private.
Type EmployeeRecord ' Cria o tipo definido pelo usurio.
ID As Integer ' Define elementos de um tipo de dados.
Name As String * 20
Adress As String * 30
Phone As Long
HireDate As Date
End Type
Sub CreateRecord()
Dim MyRecord As EmployeeRecord' Declara a varivel.
' A atribuio varivel EmployeeRecord deve ocorrer em um procedimento.
MyRecord.ID = 12003 ' Atribui um valor a um elemento.
End Sub

Funes Internas

101

Exemplo da funo UBound


Este exemplo utiliza a funo UBound para determinar o maior subscrito disponvel para a dimenso indicada de uma
matriz.
Dim Upper
Dim MyArray(1 To 10, 5 To 15, 10 To 20) ' Declara as variveis de matriz.
Dim AnyArray(10)
Upper = UBound(MyArray, 1)
' Retorna 10.
Upper = UBound(MyArray, 3)
' Retorna 20.
Upper = UBound(AnyArray) ' Retorna 10.

Convenes da documentao
A documentao do Visual Basic utiliza as seguintes convenes tipogrficas.
Convenes
Descrio
Sub, If, ChDir, Print, True,Palavras em negrito cuja primeira letra maiscula
Debug
indicam palavras-chaves especficas da linguagem.
Setup
Palavras que voc instrudo a digitar aparecem em
negrito.
Objeto, nomevar, lista_arg
Letras minsculas em itlico indicam lugares
reservados para informaes que voc fornece.
nomecaminho,
Letras minsculas em itlico e negrito indicam lugares
nmeroarquivo
reservados para argumentos onde voc pode usar
sintaxe posicional ou de argumento nomeado.
[listaexpresso]
Na sintaxe, os itens entre de colchetes so opcionais.
{While | Until}
Na sintaxe, chaves e uma barra vertical indicam uma
escolha obrigatria entre dois ou mais itens. Voc deve
escolher um dos itens, a no ser que todos os itens
tambm estejam entre colchetes. Por exemplo:
[{Isto| OuAquilo}]
ESC, ENTER
Palavras em maisculas pequenas indicam nomes de
teclas e seqncias de teclas.
ALT+F1, CTRL+R
Um sinal de adio (+) entre nomes de teclas indica
uma combinao de teclas. Por exemplo, ALT+F1
significa que voc deve manter a tecla ALT pressionada
enquanto pressiona a tecla F1.
Convenes de cdigo
So usadas as seguintes convenes de cdigo:
Sample Code

Descrio

MinhaSeqncia = "Al, mundo!"


' Isto um comentrio.
MinhaVar
=
"Isto

&
"exemplo"
& " de como continuar o cdigo."

um

"

_
_

Esta fonte usada para cdigo, variveis


e texto de mensagens de erro.
Uma apstrofo (') introduz comentrios
sobre o cdigo.
Um espao e uma sublinha (_) do
continuidade a uma linha de cdigo.

Exemplo da instruo ChDir


Este exemplo utiliza a instruo ChDir para alterar o diretrio ou pasta atual.
' Altera o diretrio ou pasta atual para "MEUDIR".
ChDir "MEUDIR"
' Pressupe que "C:" a unidade de disco atual. A instruo a seguir altera
' o diretrio padro na unidade de disco "D:". "C:" permanece a unidade de disco atual.
ChDir "D:\WINDOWS\SYSTEM"
Exemplo da instruo ChDrive
Este exemplo utiliza a instruo ChDrive para alterar a unidade de disco atual.
ChDrive "D" ' Torna "D" a unidade de disco atual.
Exemplo da funo CurDir
Este exemplo utiliza a funo CurDir para retornar o caminho atual.
' Pressupe que o caminho atual na unidade de disco C "C:\WINDOWS\SYSTEM".
' Pressupe que o caminho atual na unidade de disco D "D:\EXCEL".
' Pressupe que C a unidade de disco atual.
Dim MeuCaminho
MeuCaminho = CurDir ' Retorna "C:\WINDOWS\SYSTEM".
Funes Internas

102

MeuCaminho = CurDir("C") ' Retorna "C:\WINDOWS\SYSTEM".


MeuCaminho = CurDir("D") ' Retorna "D:\EXCEL".
Exemplo da funo Dir
Este exemplo utiliza a funo Dir para verificar se determinados arquivos e diretrios existem.
Dim MeuArquivo, MeuCaminho, MeuNome
' Retorna "WIN.INI" se existir.
MeuArquivo = Dir("C:\WINDOWS\WIN.INI")
' Retorna o nome do arquivo com a extenso especificada. Se existir mais de um arquivo *.ini,
' o primeiro arquivo encontrado ser retornado.
MeuArquivo = Dir("C:\WINDOWS\*.INI")
' Chama Dir novamente sem argumentos para retornar o prximo arquivo *.INI no
' mesmo diretrio.
MeuArquivo = Dir
' Retorna primeiro o arquivo *.TXT com um atributo oculto definido.
MeuArquivo = Dir("*.TXT", vbHidden)
' Exibe os nomes em C:\ que representam diretrios.
MeuCaminho = "c:\"
' Define o caminho.
MeuNome = Dir(MeuCaminho, vbDirectory) ' Recupera a primeira entrada.
Do While MeuNome <> "" ' Inicia o loop.
' Ignora o diretrio atual e o diretrio abrangente.
If MeuNome <> "." And MeuNome <> ".." Then
' Utiliza a comparao bit a bit para se certificar de que MeuNome um diretrio.
If (GetAttr(MeuCaminho & MeuNome) And vbDirectory) = vbDirectory Then
Debug.Print MeuNome
' Exibe a entrada somente se
End If ' representar um diretrio.
End If
MeuNome = Dir ' Obtm a prxima entrada.
Loop
Exemplo da funo Environ
Este exemplo utiliza a funo Environ para fornecer o nmero e comprimento de entrada da instruo PATH da tabela de
seqncias de caracteres de ambiente.
Dim SeqAmb, Ind, Msg, CompCaminho ' Declara as variveis.
Ind = 1
' Inicializa o ndice como 1.
Do
SeqAmb = Environ(Ind)
' Obtm a varivel
' de ambiente.
If Left(SeqAmb, 5) = "PATH=" Then ' Verifica a entrada PATH.
CompCaminho = Len(Environ("PATH")) ' Obtm o comprimento.
Msg = "entrada PATH = " & Ind & " e comprimento = " & CompCaminho
Exit Do
Else
Ind = Ind + 1 ' No h entrada PATH,
End If ' ento incrementa.
Loop Until SeqAmb = ""
If CompCaminho > 0 Then
MsgBox Msg ' Exibe a mensagem.
Else
MsgBox "No existe a varivel de ambiente PATH."
End If
Exemplo da instruo FileCopy
Este exemplo utiliza a instruo FileCopy para copiar um arquivo em outro. Para este exemplo, pressuponha que
ARQORIGEM um arquivo que contm alguns dados.
Dim ArquivoDeOrigem, ArquivoDeDestino
ArquivoDeOrigem = "ARQORIGEM" ' Define o nome do arquivo de origem.
ArquivoDeDestino = "ARQDESTINO" ' Define o nome do arquivo de destino.
FileCopy ArquivoDeOrigem, ArquivoDeDestino
' Copia a origem no destino.

Funes Internas

103

Exemplo da funo FileDateTime


Este exemplo utiliza a funo FileDateTime para determinar a data e a hora em que um arquivo foi criado ou modificado
pela ltima vez. O formato da data e hora exibido baseado nas definies de localidade do seu sistema.
Dim MinhaMarcao
' Pressupe que ARQUIVODETESTE foi modificado pela ltima vez em 12 de fevereiro de 1993, s 4:35:47 PM.
' Pressupe as definies de localidade Ingls/EUA.
MinhaMarcao = FileDateTime("ARQUIVODETESTE")
' Retorna "12/2/93 4:35:47 PM".
Exemplo da funo FileLen
Este exemplo utiliza a funo FileLen para retornar o comprimento de um arquivo em bytes. Para este exemplo, suponha
que ARQUIVODETESTE um arquivo que contm alguns dados.
Dim MeuTamanho
MeuTamanho = FileLen("ARQUIVODETESTE")
' Retorna o comprimento do arquivo (bytes).
Exemplo da funo GetAttr
Este exemplo utiliza a funo GetAttr para determinar os atributos de um arquivo e diretrio ou pasta.
Dim MeuAtributo
' Pressupe que o arquivo ARQUIVODETESTE tem o atributo de oculto definido.
MeuAtributo = GetAttr("ARQUIVODETESTE")
' Retorna 2.
' Retorna um valor diferente de zero se o atributo de oculto estiver definido em ARQUIVODETESTE.
Debug.Print MeuAtributo And vbHidden
' Pressupe que o arquivo ARQUIVODETESTE tem os atributos de oculto e somente leitura definidos.
MeuAtributo = GetAttr("ARQUIVODETESTE")
' Retorna 3.
' Retorna um valor diferente de zero se o atributo de oculto estiver definido em ARQUIVODETESTE.
Debug.Print MeuAtributo And (vbHidden + vbReadOnly)
' Pressupe que MEUDIR um diretrio ou pasta.
MeuAtributo = GetAttr("MEUDIR")
' Retorna 16.
Exemplo da instruo Kill
Este exemplo utiliza a instruo Kill para excluir um arquivo de um disco.
' Pressupe que ARQUIVODETESTE um arquivo que contm alguns dados.
Kill "ArquivoDeTeste" ' Exclui o arquivo.
' Exclui todos os arquivos *.TXT do diretrio atual.
Kill "*.TXT"

Funes Internas

104

Exemplo da instruo MkDir


Este exemplo utiliza a instruo MkDir para criar um diretrio ou pasta. Se a unidade de disco no for especificada, o novo
diretrio ou pasta ser criado na unidade de disco atual.
MkDir "MEUDIR" ' Cria um novo diretrio ou pasta.
Exemplo da instruo Name
Este exemplo utiliza a instruo Name para renomear um arquivo. Para este exemplo, suponha que os diretrios ou pastas
especificados j existem.
Dim NomeAntigo, NovoNome
NomeAntigo = "NOMEANTIGO": NovoNome = "NOVOARQUIVO"
' Define os nomes de arquivo.
Name NomeAntigo As NovoNome
' Renomeia o arquivo.
NomeAntigo = "C:\MEUDIR\ARQUIVOANTIGO": NovoNome = "C:\SEUDIR\NOVOARQUIVO"
Name NomeAntigo As NovoNome
' Move e renomeia o arquivo.
Exemplo da funo QBColor
Este exemplo utiliza a funo QBColor para alterar a propriedade BackColor do formulrio passado como MeuFormulrio
para a cor indicada por CdigoDaCor. QBColor aceita valores inteiros entre 0 e 15.
Sub ChangeBackColor (CdigoDaCor As Integer, MeuFormulrio As Form)
MeuFormulrio.BackColor = QBColor(CdigoDaCor)
End Sub
Exemplo da funo RGB
Este exemplo mostra como a funo RGB utilizada para retornar um nmero inteiro que representa um valor de cor RGB.
Ela utilizada em mtodos e propriedades de aplicativo que aceitam uma especificao de cor. O objeto MeuObjeto e a
sua propriedade so utilizados somente com finalidades ilustrativas. Se MeuObjeto no existir, ou se no tiver uma
propriedade Color, ocorrer um erro.
Dim VERMELHO, I, ValorRGB, MeuObjeto
Vermelho = RGB(255, 0, 0) ' Retorna o valor para Vermelho.
I = 75 ' Inicializa o deslocamento.
ValorRGB = RGB(I, 64 + I, 128 + I) ' Igual a RGB(75, 139, 203).
MeuObjeto.Color = RGB(255, 0, 0) ' Define a propriedade Color de
' MeuObjeto como Vermelho.
Exemplo da instruo RmDir
Este exemplo utiliza a instruo RmDir para remover um diretrio ou pasta existente.
' Pressupe que MEUDIR um diretrio ou pasta vazia.
RmDir "MEUDIR" ' Remove MEUDIR.

Funes Internas

105

Exemplo da instruo SetAttr


Este exemplo utiliza a instruo SetAttr para definir atributos para um arquivo.
SetAttr "ARQUIVODETESTE
", vbHidden
' Define o atributo de oculto.
SetAttr "ARQUIVODETESTE", vbHidden + vbReadOnly
' Define os atributos de
' oculto e somente leitura.

Instruo ChDir
Altera o diretrio ou pasta atual.
Sintaxe
ChDir caminho
O argumento caminho obrigatrio uma expresso de seqncia que identifica qual diretrio ou pasta se torna o novo
diretrio ou pasta padro. O caminho pode incluir a unidade de disco. Se nenhuma unidade for especificada, ChDir altera o
diretrio ou pasta padro na unidade atual.
Comentrios
A instruo ChDir altera o diretrio padro, mas no a unidade de disco padro. Por exemplo, se a unidade padro for C, a
instruo a seguir altera o diretrio padro na unidade D, mas C permanece como unidade padro:
ChDir "D:\TMP"

Instruo ChDrive
Altera a unidade de disco atual.
Sintaxe
ChDrive unidade
O argumento unidade obrigatrio uma expresso de seqncia que especifica uma unidade existente. Se voc fornecer
uma seqncia de comprimento zero (""), a unidade atual no ser alterada. Se o argumento unidade for uma seqncia de
mltiplos caracteres, CdDrive utilizar somente a primeira letra.

Funo CurDir
Retorna um Variant (String) representando o caminho atual.
Sintaxe
CurDir[(unidade)]
O argumento opcional unidade uma expresso de seqncia que especifica uma unidade existente. Se no for
especificada uma unidade ou se unidade for uma seqncia de comprimento zero (""), CurDir retorna o caminho para a
unidade atual.

Funes Internas

106

Funo Dir
Retorna um String que representa o nome de um arquivo, diretrio ou pasta que corresponde a um padro especificado ou
atributo de arquivo, ou o rtulo de volume de uma unidade de disco.
Sintaxe
Dir[(nomedocaminho[, atributos])]
A sintaxe da funo Dir possui as partes a seguir:
Parte
Descrio
nomedocami Opcional. Expresso de seqncia que especifica um nome de arquivo
nho
pode incluir diretrio ou pasta e unidade de disco. Retorna uma
seqncia de comprimento zero ("") se nomedocaminho no for
encontrado.
atributos
Opcional. Constante ou expresso numrica cuja soma especifica os
atributos de arquivo. Se for omitido, todos os arquivos que
correspondem a nomedocaminho so retornados.
Definies
As definies do argumento atributos so:
Constante
Valor
vbNormal
0
vbHidden
2
vbSystem
4
vbVolume
8
vbDirectory

16

Descrio
Normal
Oculto
Arquivo do sistema
Rtulo do volume. Se for especificado, todos os outros
atributos sero ignorados
Diretrio ou pasta

Observao Estas constantes so especificadas pelo Visual Basic para Aplicativos e podem ser utilizadas em qualquer
parte do seu cdigo no lugar de valores reais.
Comentrios
Dir suporta a utilizao de curingas de mltiplos caracteres (*) e de caractere nico (?) para especificar vrios arquivos.
Voc deve especificar nomedocaminho na primeira vez que chamar a funo Dir ou um erro ser gerado. Se especificar
tambm atributos de arquivo, ser necessrio incluir nomedocaminho.
Dir retorna o primeiro nome de arquivo que corresponda a nomedocaminho. Para obter qualquer nome de arquivo adicional
que combine com nomedocaminho, chame Dir novamente sem argumentos. Quando no houver mais nenhum nome de
arquivo correspondente, Dir retornar uma seqncia de comprimento zero (""). Uma vez que essa seqncia seja
retornada, voc dever especificar nomedocaminho em chamadas subseqentes ou um erro ser gerado. Voc pode
mudar para um novo nomedocaminho sem recuperar todos os nomes de arquivo que correspondam ao nomedocaminho
atual. Entretanto, voc no pode chamar a funo Dir recorrentemente. Chamar Dir com o atributo vbDirectory no
retorna subdiretrios continuamente.
Dica Em razo de os nomes de arquivo serem recuperados sem nenhuma ordem especfica, pode ser que voc deseje
armazenar nomes de arquivo retornados em uma matriz e depois classific-la.

Funes Internas

107

Funo Environ
Retorna o String associado a uma varivel de ambiente do sistema operacional.
Sintaxe
Environ({envstring | number})
A sintaxe da funo Environ possui os argumentos nomeados a seguir:
Parte
Descrio
envstring
Opcional. Expresso de seqncia que contm o nome de uma varivel
de ambiente.
number
Opcional. Expresso numrica que corresponde ordem numrica da
seqncia de ambiente na tabela de seqncia de ambiente. O
argumento number pode ser qualquer expresso numrica, mas ser
arredondado para um nmero inteiro antes de ser avaliado.
Comentrios
Se envstring no puder ser encontrado na tabela de seqncia de ambiente, uma seqncia de comprimento zero ("") ser
retornada. Caso contrrio, Environ retornar o texto atribudo ao envstring especificado, isto , o texto subseqente ao
sinal de igual (=) na tabela de seqncia de ambiente daquela varivel de ambiente.
Se voc especificar number, a seqncia que ocupa aquela posio numrica na tabela de seqncia de ambiente ser
retornada. Neste caso, Environ retornar todo o texto, incluindo envstring. Se no houver seqncia de ambiente na
posio especificada, Environ retornar uma seqncia de comprimento zero.

Instruo FileCopy
Copia um arquivo.
Sintaxe
FileCopy source, destination
A sintaxe da instruo FileCopy possui os argumentos nomeados a seguir:
Parte
Descrio
source
Obrigatrio. Expresso de seqncia
arquivo a ser copiado. Source pode
unidade de disco.
destination
Obrigatrio. Expresso de seqncia
arquivo de destino. Destination pode
unidade de disco.

que especifica o nome do


incluir diretrio ou pasta e
que especifica o nome do
incluir diretrio ou pasta e

Comentrios
Se voc tentar utilizar a instruo FileCopy em um arquivo atualmente aberto, um erro ser gerado.

Funes Internas

108

Funo FileDateTime
Retorna um Variant (Date) que indica a data e hora em que um arquivo foi criado ou modificado pela ltima vez.
Sintaxe
FileDateTime(nomedocaminho)
O argumento obrigatrio nomedocaminho uma expresso de seqncia que especifica um nome de arquivo. O
nomedocaminho pode incluir o diretrio ou pasta e a unidade de disco.

Funo FileLen
Retorna um Long que especifica o tamanho de um arquivo em bytes.
Sintaxe
FileLen(nomedocaminho)
O argumento obrigatrio nomedocaminho uma expresso de seqncia que especifica um arquivo. O nomedocaminho
pode incluir o diretrio ou pasta e a unidade de disco.
Comentrios
Se o arquivo especificado estiver aberto quando a funo FileLen for chamada, o valor retornado representa o tamanho do
arquivo imediatamente antes de ele ser aberto.
Observao Para obter o tamanho de um arquivo aberto, utilize a funo LOF.

Funo GetAttr
Retorna um Integer que representa os atributos de um arquivo, diretrio ou pasta.
Sintaxe
GetAttr(nomedocaminho)
O argumento obrigatrio nomedocaminho uma expresso de seqncia que especifica um nome de arquivo. O
nomedocaminho pode incluir o diretrio ou pasta e a unidade de disco.
Valores de retorno
O valor retornado por GetAttr a soma dos valores de atributos a seguir:
Constante
Valor
Descrio
vbNormal
0
Normal
vbReadOnly
1
Somente leitura
vbHidden
2
Oculto
vbSystem
4
Sistema
vbDirectory
16
Diretrio ou pasta
vbArchive
32
O arquivo foi alterado desde o ltimo backup
Observao Estas constantes so especificadas pelo Visual Basic para Aplicativos. Os nomes podem ser utilizados em
qualquer parte do seu cdigo no lugar dos valores reais.
Comentrios
Para determinar quais atributos esto definidos, utilize o operador And para efetuar uma comparao bit a bit do valor
retornado pela funo GetAttr e do valor do atributo individual de arquivo que voc deseja. Se o resultado no for zero, o
atributo ser definido para o arquivo nomeado. Por exemplo, o valor de retorno da expresso And a seguir ser zero se o
atributo Archive no estiver definido:
Result = GetAttr(FName) And vbArchive
Um valor diferente de zero ser retornado se o atributo Archive estiver definido.

Instruo Kill
Exclui arquivos de um disco.
Sintaxe
Kill nomedocaminho
O argumento obrigatrio nomedocaminho uma expresso de seqncia que especifica um ou mais nomes de arquivo a
serem excludos. O nomedocaminho pode incluir o diretrio ou pasta e a unidade de disco.
Comentrios
Kill suporta a utilizao de curingas de mltiplos caracteres (*) ou de caractere nico (?) para especificar vrios arquivos.
Se voc tentar utilizar Kill para excluir um arquivo aberto, um erro ser gerado.
Observao Para excluir diretrios, utilize a instruo RmDir.

Instruo MkDir
Cria um novo diretrio ou pasta.
Sintaxe
MkDir caminho
O argumento obrigatrio caminho uma expresso de seqncia que identifica o diretrio ou pasta a ser criado. O caminho
pode incluir a unidade de disco. Se uma unidade no for especificada, MkDir cria o novo diretrio ou pasta na unidade
atual.

Funes Internas

109

Instruo Name
Renomeia um arquivo, diretrio ou pasta no disco.
Sintaxe
Name nomeantigodocaminho As nomenovodocaminho
A sintaxe da instruo Name possui as partes a seguir:
Parte
Descrio
nomeantigodocaminho
Obrigatrio. Expresso de seqncia que especifica o
nome de arquivo existente e sua localizao pode
incluir diretrio ou pasta e unidade de disco.
Nomenovodocaminho
Obrigatrio. Expresso de seqncia que especifica o
novo nome de arquivo e sua localizao pode incluir
diretrio ou pasta e unidade de disco. O nome de arquivo
especificado por nomenovodocaminho no pode j
existir.
Comentrios
Tanto nomenovodocaminho quanto nomeantigodocaminho devem estar na mesma unidade. Se o caminho em
nomenovodocaminho existir e for diferente do caminho em nomeantigodocaminho, a instruo Name mover o arquivo
para o novo diretrio ou pasta e, se necessrio, renomear o arquivo. Se nomenovodocaminho e nomeantigodocaminho
tiverem caminhos diferentes e nomes de arquivo iguais, Name mover o arquivo para a nova localizao e no alterar o
nome do arquivo. Utilizando Name, voc poder mover um arquivo de um diretrio ou pasta para outro, mas no poder
mover um diretrio ou pasta.
A utilizao de Name em um arquivo aberto gera um erro. Voc deve fechar um arquivo que esteja aberto antes de
renome-lo. Os argumentos de Name no podem conter curingas de mltiplos caracteres (*) nem de caractere nico (?).

Funo QBColor
Retorna um Long que representa o cdigo de cores RGB correspondente ao nmero de cor especificado.
Sintaxe
QBColor(cor)
O argumento obrigatrio cor um nmero inteiro no intervalo de 0 a 15.
Definies
O argumento cor possui as definies a seguir:
Nmero
Cor
Nmero
Cor
0
Preto
8
Cinza
1
Azul
9
Azul-claro
2
Verde
10
Verde-claro
3
Ciano
11
Ciano-claro
4
Vermelho
12
Vermelho-claro
5
Magenta
13
Magenta-claro
6
Amarelo
14
Amarelo-claro
7
Branco
15
Branco-brilhante
Comentrios
O argumento cor representa valores de cor utilizados por verses anteriores do Basic (como o Microsoft Visual Basic para
MS-DOS e o Basic Compiler). Comeando pelo byte menos significativo, o valor retornado especifica os valores de
vermelho, verde e azul utilizados para definir a cor apropriada no sistema RGB utilizado pelo Visual Basic para Aplicativos.

Funo RGB
Retorna um nmero inteiro Long que representa um valor de cor RGB.
Sintaxe
RGB(red, green, blue
A sintaxe da funo RGB possui os argumentos nomeados a seguir:
Parte
Descrio
red
Obrigatrio; Variant (Integer). Nmero no intervalo de 0 a 255, inclusive,
que representa o componente vermelho da cor.
green
Obrigatrio; Variant (Integer). Nmero no intervalo de 0 a.255, inclusive,
que representa o componente verde da cor.
blue
Obrigatrio; Variant (Integer). Nmero no intervalo de 0 a 255, inclusive,
que representa o componente azul da cor.
Comentrios
Os mtodos e as propriedades de aplicativos que aceitam uma especificao de cor esperam que essa especificao seja
um nmero que represente um valor de cor RGB. Este valor especifica a intensidade relativa de vermelho, verde e azul que
causa a exibio de uma cor especfica.
O valor de qualquer argumento de RGB que exceda 255 assumido como sendo 255.
A tabela a seguir lista algumas cores padro e os valores de vermelho, verde, e azul que elas contm:
Cor
Valor
doValor do verde
Valor do azul
vermelho

Funes Internas

110

Preto
Azul
Verde
Ciano
Vermelho
Magenta
Amarelo
Branco

0
0
0
0
255
255
255
255

0
0
255
255
0
0
255
255

0
255
0
255
0
255
0
255

Instruo RmDir
Remove um diretrio ou pasta existente.
Sintaxe
RmDir caminho
O argumento obrigatrio caminho uma expresso de seqncia que identifica o diretrio ou pasta a ser removida. O
caminho pode incluir a unidade de disco. Se uma unidade no for especificada, RmDir remove o diretrio ou pasta da
unidade atual.
Comentrios
Se voc tentar utilizar RmDir em um diretrio ou pasta que contenha arquivos, um erro ser gerado. Utilize a instruo Kill
para excluir todos os arquivos antes de tentar a remoo de um diretrio ou pasta.

Instruo SetAttr
Define as informaes de atributo de um arquivo.
Sintaxe
SetAttr pathname, attributes
A sintaxe da instruo SetAttr possui os argumentos nomeados a seguir:
Parte
Descrio
pathname
Obrigatrio. Expresso de seqncia que especifica um nome de
arquivo pode incluir diretrio ou pasta e unidade de disco.
Attributes
Obrigatrio. Constante ou expresso numrica cuja soma especifica os
atributos do arquivo.
Definies
As definies do argumento attributes so:
Constante
Valor
vbNormal
0
vbReadOnly
1
vbHidden
2
vbSystem
4
vbArchive
32

Descrio
Normal (padro)
Somente leitura
Oculto
Arquivo do sistema
O arquivo foi alterado desde o ltimo backup

Observao Estas constantes so especificadas pelo Visual Basic para Aplicativos. Os nomes podem ser utilizados em
qualquer parte do seu cdigo no lugar dos valores reais.
Comentrios
Um erro em tempo de execuo ocorrer se voc tentar definir os atributos de um arquivo que esteja aberto.
Exemplo da instruo Close
Este exemplo utiliza a instruo Close para fechar os trs arquivos abertos para Output.
Dim I, NomeDoArquivo
For I = 1 To 3 ' Faz o loop 3 vezes.
NomeDoArquivo = "TESTE" & I ' Cria o nome de arquivo.
Open NomeDoArquivo For Output As #I
' Abre o arquivo.
Print #I, "Isto um teste." ' Grava a seqncia de caracteres no arquivo.
Next I
Close ' Fecha os 3 arquivos abertos.
Exemplo da funo EOF
Este exemplo utiliza a funo EOF para detectar o final de um arquivo. Este exemplo pressupe que MEUARQUIVO seja
um arquivo de texto com algumas linhas de texto.
Dim DadosDeEntrada
Open "MEUARQUIVO" For Input As #1 ' Abre o arquivo para entrada.
Do While Not EOF(1) ' Procura o fim do arquivo.
Line Input #1, DadosDeEntrada
' L a linha de dados.
Debug.Print DadosDeEntrada ' Imprime para a janela Depurar.
Loop
Close #1 ' Fecha o arquivo.

Funes Internas

111

Exemplo da funo FileAttr


Este exemplo utiliza a funo FileAttr para retornar o modo de arquivo e o identificador de arquivo de um arquivo aberto.
Dim NumArquivo, Modo, Identificador
NumArquivo = 1
' Atribui o nmero de arquivo.
Open "ARQUIVODETESTE" For Append As NumArquivo
' Abre o arquivo.
Modo = FileAttr(NumArquivo, 1) ' Retorna 8 (modo de arquivo Acrscimo).
Identificador = FileAttr(NumArquivo, 2)
' Retorna o identificador do arquivo.
Close NumArquivo ' Fecha o arquivo.

Funes Internas

112

Exemplo da funo FreeFile


Este exemplo utiliza a funo FreeFile para retornar o prximo nmero de arquivo disponvel. Cinco arquivos so abertos
para sada dentro do loop e alguns dados de exemplo so gravados em cada.
Dim Meundice, NmeroDoArquivo
For Meundice = 1 To 5 ' Faz o loop 5 vezes.
NmeroDoArquivo = FreeFile ' Obtm o nmero de arquivo
' no utilizado.
Open "TESTE" & Meundice For Output As #NmeroDoArquivo ' Cria o nome do arquivo.
Write #NmeroDoArquivo, "Isto um exemplo."
' D sada ao texto.
Close #NmeroDoArquivo ' Fecha o arquivo.
Next Meundice
Exemplo da instruo Get
Este exemplo utiliza a instruo Get para ler dados de um arquivo para uma varivel. Este exemplo pressupe que
ARQUIVODETESTE seja um arquivo que contenha cinco registros do tipo Record definido pelo usurio.
Type Record ' Define o tipo definido pelo usurio.
ID As Integer
Name As String * 20
End Type
Dim MeuRegistro As Record, Posio
' Declara as variveis.
' Abre o arquivo de exemplo para acesso aleatrio.
Open "ARQUIVODETESTE" For Random As #1 Len = Len(MeuRegistro)
' L o arquivo de exemplo utilizando a instruo Get.
Posio = 3 ' Define o nmero do registro.
Get #1, Posio, MeuRegistro ' L o terceiro registro.
Close #1 ' Fecha o arquivo.
Exemplo da instruo Input #
Este exemplo utiliza a instruo Input # para ler dados de um arquivo em duas variveis. Este exemplo pressupe que
ARQUIVODETESTE seja um arquivo com algumas linhas de dados gravadas nele utilizando a instruo Write #, ou seja,
cada linha contm uma seqncia de caracteres entre aspas e um nmero separado por uma vrgula; por exemplo, ("Al",
234).
Dim MinhaSeqncia, MeuNmero
Open "ARQUIVODETESTE" For Input As #1
' Abre o arquivo para entrada.
Do While Not EOF(1) ' Faz o loop at o fim do arquivo.
Input #1, MinhaSeqncia, MeuNmero
' L os dados para duas variveis.
Debug.Print MinhaSeqncia, MeuNmero
' Imprime os dados para a janela Depurar.
Loop
Close #1 ' Fecha o arquivo.

Funes Internas

113

Exemplo da funo Input


Este exemplo utiliza a funo Input para ler um caractere de cada vez de um arquivo e o imprime para a janela Depurar.
Este exemplo pressupe que ARQUIVODETESTE seja um arquivo com algumas linhas de dados de exemplo.
Dim MeuCar
Open "ARQUIVODETESTE" For Input As #1
' Abre o arquivo.
Do While Not EOF(1) ' Faz o loop at o fim do arquivo.
MeuCar = Input(1, #1) ' Obtm um caractere.
Debug.Print MeuCar ' Imprime para a janela Depurar.
Loop
Close #1 ' Fecha o arquivo.
Exemplo da instruo Line Input #
Este exemplo utiliza a instruo Line Input # para ler uma linha de um arquivo seqencial e a atribui a uma varivel. Este
exemplo pressupe que ARQUIVODETESTE seja um arquivo de texto com algumas linhas de dados de exemplo.
Dim LinhaDeTexto
Open "ARQUIVODETESTE" For Input As #1
' Abre o arquivo.
Do While Not EOF(1) ' Faz o loop at o fim do arquivo.
Line Input #1, LinhaDeTexto
' L a linha para a varivel.
Debug.Print LinhaDeTexto ' Imprime para a janela Depurar.
Loop
Close #1 ' Fecha o arquivo.
Exemplo da funo Loc
Este exemplo utiliza a funo Loc para retornar a posio atual de leitura/gravao dentro de um arquivo aberto. Este
exemplo pressupe que ARQUIVODETESTE seja um arquivo de texto com algumas linhas de dados de exemplo.
Dim MeuLocal, MinhaLinha
Open "ARQUIVODETESTE" For Binary As #1
' Abre o arquivo recm-criado.
Do While MeuLocal < LOF(1)
' Faz o loop at o fim do arquivo.
MinhaLinha = MinhaLinha & Input(1, #1)
' L o caractere para a varivel.
MeuLocal = Loc(1)
' Obtm a posio atual dentro do arquivo.
' Imprime para a janela Depurar.
Debug.Print MinhaLinha; Tab; MeuLocal
Loop
Close #1 ' Fecha o arquivo.
Exemplo das instrues Lock e Unlock
Este exemplo ilustra o uso das instrues Lock e Unlock. Enquanto um registro est sendo modificado, o acesso por
outros processos negado. Este exemplo pressupe que ARQUIVODETESTE seja um arquivo que contenha cinco
registros do tipo Record definido pelo usurio.
Type Record ' Define o tipo definido pelo usurio.
ID As Integer
Name As String * 20
End Type
Dim MeuRegistro As Record, NmeroDoRegistro
' Declara as variveis.
' Abre o arquivo de exemplo para acesso aleatrio.
Open "ARQUIVODETESTE" For Random Shared As #1 Len = Len(MeuRegistro)
NmeroDoRegistro = 4 ' Define o nmero do registro.
Lock #1, NmeroDoRegistro' Protege o registro.
Get #1, NmeroDoRegistro, MeuRegistro ' L o registro.
MeuRegistro.ID = 234 ' Modifica o registro.
MeuRegistro.Name = "Joo da Silva"
Put #1, NmeroDoRegistro, MeuRegistro ' Grava o arquivo modificado.
Unlock #1, NmeroDoRegistro ' Desprotege o registro atual.
Close #1 ' Fecha o arquivo.
Exemplo da funo LOF
Este exemplo utiliza a funo LOF para determinar o tamanho de um arquivo aberto. Este exemplo pressupe que
ARQUIVODETESTE seja um arquivo de texto que contenha dados de exemplo.
Dim ComprimentoDoArquivo
Open "ARQUIVODETESTE" For Input As #1
' Abre o arquivo.
ComprimentoDoArquivo = LOF(1)
' Obtm o comprimento do arquivo.
Close #1 ' Fecha o arquivo.
Exemplo da instruo Open
Este exemplo ilustra vrios usos da instruo Open para permitir a entrada e sada em um arquivo.
O cdigo a seguir abre o arquivo ARQUIVODETESTE no modo de entrada seqencial.
Open "ARQUIVODETESTE" For Input As #1

Funes Internas

114

' Fecha antes de reabrir em outro modo.


Close #1
Este exemplo abre o arquivo no modo Binrio somente para gravar operaes.
Open "ARQUIVODETESTE" For Binary Access Write As #1
' Fecha antes de reabrir em outro modo.
Close #1
O exemplo a seguir abre o arquivo no modo Aleatrio. O arquivo contm registros do tipo Record definido pelo usurio.
Type Record ' Define o tipo definido pelo usurio.
ID As Integer
Name As String * 20
End Type
Dim MeuRegistro As Record' Declara a varivel.
Open "ARQUIVODETESTE" For Random As #1 Len = Len(MeuRegistro)
' Fecha antes de reabrir em outro modo.
Close #1
Este exemplo de cdigo abre o arquivo para sada seqencial; todo processo pode ler ou gravar no arquivo.
Open "ARQUIVODETESTE" For Output Shared As #1
' Fecha antes de reabrir em outro modo.
Close #1
Este exemplo de cdigo abre o arquivo no modo Binrio para leitura; outros processos no conseguem ler o arquivo.
Open "ARQUIVODETESTE" For Binary Access Read Lock Read As #1

Funes Internas

115

Exemplo da instruo Print #


Este exemplo utiliza a instruo Print # para gravar dados em um arquivo.
Open "ARQUIVODETESTE" For Output As #1
' Abre o arquivo para sada.
Print #1, "Isto um teste" ' Imprime o texto para o arquivo.
Print #1, ' Imprime a linha no arquivo.
Print #1, "Zona 1"; Tab ; "Zona 2"' Imprime em duas zonas de impresso.
Print #1, "Al" ; " " ; "Mundo" ' Seqncias de caracteres separadas por espao.
Print #1, Spc(5) ; "5 espaos esquerda "' Imprime cinco espaos esquerda.
Print #1, Tab(10) ; "Al" ' Imprime a palavra na coluna 10.
' Atribui valores Boolean, Date, Null e Error.
Dim MeuBool, MinhaData, MeuNulo, MeuErro
MeuBool = False : MinhaData = #Fevereiro 12, 1969# : MeuNulo = Null
MeuErro = CVErr(32767)
' True, False, Null e Error so traduzidos utilizando-se as configuraes de localidade do seu
' sistema. As literais de data so gravadas utilizando-se a data abreviada padro.
Print #1, MeuBool ; " um valor Booleano"
Print #1, MinhaData ; " uma data"
Print #1, MeuNulo ; " um valor nulo"
Print #1, MeuErro ; " um valor de erro"
Close #1 ' Fecha o arquivo.
Exemplo da instruo Put
Este exemplo utiliza a instruo Put para gravar dados em um arquivo. Cinco registros do tipo Record definido pelo usurio
so gravados no arquivo.
Type Record ' Define o tipo definido pelo usurio.
ID As Integer
Name As String * 20
End Type
Dim MeuRegistro As Record, NmeroDoRegistro
' Declara as variveis.
' Abre o arquivo para acesso aleatrio.
Open "ARQUIVODETESTE" For Random As #1 Len = Len(MeuRegistro)
For NmeroDoRegistro = 1 To 5 ' Faz o loop 5 vezes.
MeuRegistro.ID = NmeroDoRegistro ' Define o cdigo.
MeuRegistro.Name = "Meu Nome" & NmeroDoRegistro
' Cria uma seqncia de caracteres.
Put #1, NmeroDoRegistro, MeuRegistro
' Grava o registro no arquivo.
Next NmeroDoRegistro
Close #1 ' Fecha o arquivo.

Funes Internas

116

Exemplo da instruo Reset


Este exemplo utiliza a instruo Reset para fechar todos os arquivos abertos e gravar o contedo de todos os buffers de
arquivo em disco. Observe o uso da varivel Variant NmeroDoArquivo tanto como a seqncia de caracteres e o nmero.
Dim NmeroDoArquivo
For NmeroDoArquivo = 1 To 5 ' Faz o loop 5 vezes.
' Abre o arquivo para sada. NmeroDoArquivo concatenado na seqncia de caracteres
' TESTE para o nome do arquivo, mas um nmero que se segue a #.
Open "TESTE" & NmeroDoArquivo For Output As #NmeroDoArquivo
Write #NmeroDoArquivo, "Al Mundo"
' Grava os dados no arquivo.
Next NmeroDoArquivo
Reset' Fecha os arquivos e grava o contedo
' em disco.
Exemplo da funo Seek
Este exemplo utiliza a funo Seek para retornar a posio de arquivo atual. O exemplo pressupe que
ARQUIVODETESTE seja um arquivo que contenha registros do tipo Record definido pelo usurio.
Type Record ' Define o tipo definido pelo usurio.
ID As Integer
Name As String * 20
End Type
Para arquivos abertos no modo Aleatrio, Seek retorna o nmero do prximo registro.
Dim MeuRegistro As Record' Declara a varivel.
Open "ARQUIVODETESTE" For Random As #1 Len = Len(MeuRegistro)
Do While Not EOF(1) ' Faz o loop at o final do arquivo.
Get #1, , MeuRegistro ' L o prximo registro.
Debug.Print Seek(1) ' Imprime o nmero do registro para a janela
' Depurar.
Loop
Close #1 ' Fecha o arquivo.
Para arquivos abertos em modo diferentes do modo Aleatrio, Seek retorna a posio do byte em que ocorre a prxima
operao. Suponha que ARQUIVODETESTE seja um arquivo que contenha algumas linhas de texto.
Dim MeuCar
Open "ARQUIVODETESTE" For Input As #1
' Abre o arquivo para leitura.
Do While Not EOF(1) ' Faz o loop at o fim do arquivo.
MeuCar = Input(1, #1) ' L o prximo caractere de dados.
Debug.Print Seek(1) ' Imprime a posio do byte para a janela
' Depurar.
Loop
Close #1 ' Fecha o arquivo.

Funes Internas

117

Exemplo da instruo Seek


Este exemplo utiliza a instruo Seek para definir a posio da prxima leitura ou gravao dentro de um arquivo. Este
exemplo pressupe que ARQUIVODETESTE seja um arquivo que contenha registros do tipo Record definido pelo usurio.
Type Record ' Define o tipo definido pelo usurio.
ID As Integer
Name As String * 20
End Type
Para arquivos abertos no modo Aleatrio, Seek define o prximo registro.
Dim MeuRegistro As Record, TamanhoMax, NmeroDoRegistro
' Declara as variveis.
' Abre o arquivo no modo de arquivo aleatrio.
Open "ARQUIVODETESTE" For Random As #1 Len = Len(MeuRegistro)
TamanhoMax = LOF(1) \ Len(MeuRegistro) ' Obtm nmero de registros no arquivo.
' O loop l todos os registros a comear do ltimo.
For NmeroDoRegistro = TamanhoMax To 1 Step - 1
Seek #1, NmeroDoRegistro ' Define a posio.
Get #1, , MeuRegistro ' L o registro.
Next NmeroDoRegistro
Close #1 ' Fecha o arquivo.
Para arquivos abertos em modos diferentes do modo Aleatrio, Seek define a posio do byte em que a prxima operao
ocorre. Suponha que ARQUIVODETESTE seja um arquivo que contenha algumas linhas de texto.
Dim TamanhoMax, PrximoCar, MeuCar
Open "ARQUIVODETESTE" For Input As #1
' Abre o arquivo para entrada.
TamanhoMax = LOF(1) ' Obtm o tamanho do arquivo em bytes.
' O loop l todos os caracteres a comear do ltimo.
For PrximoCar = TamanhoMax To 1 Step -1
Seek #1, PrximoCar ' Define a posio.
MeuCar = Input(1, #1) ' L os caracteres.
Next PrximoCar
Close #1 ' Fecha o arquivo.
Exemplo da funo Spc
Este exemplo utiliza a funo Spc para posicionar a sada em um arquivo e na janela Depurar.
' A funo Spc pode ser utilizada com a instruo Print #.
Open "ARQUIVODETESTE" For Output As #1
' Abre o arquivo para sada.
Print #1, "10 espaos entre aqui "; Spc(10); "e aqui."
Close #1 ' Fecha o arquivo.
A instruo a seguir faz com que o texto seja impresso na janela Depurar (utilizando o mtodo Print), precedido por 30
espaos.
Debug.Print Spc(30); "Trinta espaos depois..."

Funes Internas

118

Exemplo da funo Tab


Este exemplo utiliza a funo Tab para posicionar a sada em um arquivo e na janela Depurar.
' A funo Tab pode ser utilizada com a instruo Print #.
Open "ARQUIVODETESTE" For Output As #1
' Abre o arquivo para sada.
' A segunda palavra impressa na coluna 20.
Print #1, "Al"; Tab(20); "Mundo."
' Se o argumento for omitido, o cursor ser movido para a prxima zona de impresso.
Print #1, "Al"; Tab; "Mundo"
Close #1 ' Fecha o arquivo.
A funo Tab tambm pode ser utilizada com o mtodo Print. A instruo a seguir imprime o texto comeando na coluna
10.
Debug.Print Tab(10); "10 colunas depois do incio."
Exemplo da instruo Width #
Este exemplo utiliza a instruo Width # para definir a largura da linha de sada de um arquivo.
Dim I
Open "ARQUIVODETESTE" For Output As #1
' Abre o arquivo para sada.
Width #1, 5
' Define a largura da linha de sada como 5.
For I = 0 To 9 ' Faz o loop 10 vezes.
Print #1, Chr(48 + I); ' Imprime cinco caracteres por linha.
Next I
Close #1 ' Fecha o arquivo.
Exemplo da instruo Write #
Este exemplo utiliza a instruo Write # para gravar dados brutos em um arquivo seqencial.
Open "ARQUIVODETESTE" For Output As #1
' Abre o arquivo para sada.
Write #1, "Al Mundo", 234 ' Grava os dados delimitados por vrgula.
Write #1, ' Grava linha em branco.
Dim MeuBool, MinhaData, MeuNulo, MeuErro
' Atribui os valores Boolean, Date, Null e Error.
MeuBool = False : MinhaData = #Fevereiro 12, 1969# : MeuNulo = Null
MeuErro = CVErr(32767)
' Os dados Booleanos so gravados como #TRUE# ou #FALSE#. As literais de data so
' gravadas em formato de data universal; por exemplo, #1994-07-13#
'representa 13 de julho de 1994. Os dados nulos so gravados como #NULL#.
' Os dados Error so gravados como #ERROR errorcode#.
Write #1, MeuBool ; " um valor Booleano"
Write #1, MinhaData ; " uma data"
Write #1, MeuNulo ; " um valor nulo"
Write #1, MeuErro ; " um valor de erro"
Close #1 ' Fecha o arquivo.

Funes Internas

119

Instruo Close
Conclui a entrada/sada (E/S) para um arquivo aberto utilizando-se a instruo Open.
Sintaxe
Close [listadenmerodoarquivo]
O argumento opcional listadenmerodoarquivo pode ser um ou mais nmeros de arquivo que utilizam a sintaxe a seguir,
onde nmerodoarquivo qualquer nmero de arquivo vlido:
[[#]nmerodoarquivo] [, [#]nmerodoarquivo] . . .
Comentrios
Se voc omitir listadenmerodoarquivo, todos os arquivos ativos abertos pela instruo Open sero fechados.
Quando voc fecha os arquivos que foram abertos para Output ou Append, o buffer final de sada gravado no buffer do
sistema operacional referente ao arquivo. Todo o espao de buffer associado ao arquivo fechado liberado.
Quando a instruo Close executada, encerra-se a associao de um arquivo com o seu nmero de arquivo.

Funo EOF
Retorna um Integer contendo o valor Boolean True quando se chega ao final de um arquivo aberto para Input seqencial
ou Random.
Sintaxe
EOF(nmerodoarquivo)
O argumento obrigatrio nmerodoarquivo um Integer contendo qualquer nmero de arquivo vlido.
Comentrios
Utilize EOF para evitar o erro gerado pela tentativa de inserir dados depois do final de um arquivo.
A funo EOF retorna False enquanto no o final do arquivo no alcanado. Com os arquivos abertos para o acesso
Random ou Binary, EOF retorna False at que a ltima instruo Get executada no possa ler um registro inteiro.
Com os arquivos abertos para acesso Binary, uma tentativa de leitura do arquivo utilizando-se a funo Input at que EOF
retorne True gera um erro. Utilize as funes LOF e Loc em vez de EOF ao ler os arquivos binrios com Input ou utilize
Get ao utilizar a funo EOF. Com os arquivos abertos para Output, EOF sempre retorna True.

Funo FileAttr
Retorna um Long representando o modo de arquivo para arquivos abertos com a instruo Open.
Sintaxe
FileAttr(filenumber, returntype)
A sintaxe da funo FileAttr possui os argumentos nomeados a seguir:
Parte
Descrio
filenumber
Obrigatrio; Integer. Qualquer nmero de arquivo vlido.
returntype
Obrigatrio; Integer. Nmero indicando os tipos de informaes a
serem retornadas. Especifique 1 para retornar um valor indicando o
modo de arquivo. Somente em sistemas que sejam de 16 bits,
especifique 2 para recuperar um identificador de arquivo de sistema
operacional. Returntype 2 no suportado em sistemas de 32 bits e
gera um erro.
Valores de retorno
Quando o argumento returntype 1, os valores de retorno a seguir indicam o modo de acesso ao arquivo:
Modo
Valor
Input
1
Output
2
Random
4
Append
8
Binary
32

Funo FreeFile
Retorna um Integer representando o prximo nmero de arquivo disponvel para utilizao pela instruo Open.
Sintaxe
FreeFile[(nmerodointervalo)]
O argumento opcional nmerodointervalo um Variant que especifica o intervalo a partir do qual o prximo nmero de
arquivo disponvel deve ser retornado. Especifique 0 (padro) para retornar um nmero de arquivo no intervalo de 1 a 255,
inclusive. Especifique 1 para retornar um nmero de arquivo no intervalo de 256 a 511.
Comentrios
Utilize FreeFile para fornecer um nmero de arquivo que no esteja j sendo utilizado.

Instruo Get
L os dados a partir de um arquivo de disco aberto e os coloca em uma varivel.
Sintaxe
Get [#]nmerodoarquivo, [nmerodoreg], nomedavar
A sintaxe da instruo Get possui as partes a seguir:

Funes Internas

120

Parte
nmerodoarquivo
nmerodoreg
nomedavar

Descrio
Obrigatrio. Qualquer nmero de arquivo vlido.
Opcional. Variant (Long). Nmero do registro (arquivos no
modo Random) ou nmero de byte (arquivos no modo
Binary) no qual iniciada a leitura.
Obrigatrio. Nome de varivel vlido no qual os dados so
lidos.

Comentrios
A leitura de dados com Get normalmente gravada em um arquivo com Put.
O primeiro registro ou byte em um arquivo encontra-se na posio 1, o segundo registro ou byte encontra-se na posio 2 e
assim por diante. Se voc omitir nmerodoreg, o prximo registro ou byte aps a ltima instruo Get ou Put (ou apontado
pela ltima funo Seek) ser lido. Voc deve incluir as vrgulas delimitadoras, por exemplo:
Get #4,,FileBuffer
Para os arquivos abertos no modo Random, so aplicadas as regras a seguir:
Se o comprimento dos dados que esto sendo lidos for menor que o comprimento especificado na clusula Len da

instruo Open, Get l os registros subseqentes nos limites de comprimento dos registros. O espao entre o final de um
registro e o comeo do prximo preenchido com o contedo existente do buffer do arquivo. Como a quantidade dos dados
de preenchimento no pode ser determinada com segurana, aconselhvel fazer com que o tamanho do registro
corresponda ao comprimento dos dados que esto sendo lidos.
Se a varivel que est sendo lida for uma seqncia de caracteres de comprimento varivel, Get l um descritor de 2 bytes
contendo o comprimento da seqncia de caracteres e, em seguida, l os dados da varivel. Entretanto, o comprimento do
registro especificado pela clusula Len na instruo Open deve ser pelo menos 2 bytes maior do que o comprimento real
da seqncia de caracteres.
Se a varivel que est sendo lida for um Variant de tipo numrico, Get ler 2 bytes que identificam o VarType de Variant e,
em seguida, os dados da varivel. Por exemplo, ao ler um Variant de VarType 3, Get l 6 bytes: 2 bytes que identificam o
Variant como VarType 3 (Long) e 4 bytes que contm os dados Long. O comprimento do registro especificado pela
clusula Len na instruo Open deve ser pelo menos 2 bytes maior do que o nmero de bytes real necessrio para
armazenar a varivel.
Observao Voc pode utilizar a instruo Get para ler uma matriz Variant a partir do disco, mas no pode utilizar Get
para ler um Variant escalar contendo uma matriz. Voc no pode tambm utilizar Get para ler os objetos a partir do disco.
Se a varivel que est sendo lida for um Variant de VarType 8 (String), Get l 2 bytes que identificam o VarType, 2 bytes
que indicam o comprimento da seqncia de caracteres, e, em seguida, l os dados da seqncia de caracteres. O
comprimento do registro especificado pela clusula Len na instruo Open deve ser pelo menos 4 bytes maior do que o
comprimento real da seqncia de caracteres.
Se a varivel que est sendo lida for uma matriz dinmica, Get l um descritor cujo comprimento igual a 2 mais 8 vezes o
nmero de dimenses, ou seja, 2 + 8 * NmeroDeDimenses. O comprimento do registro especificado pela clusula Len na
instruo Open deve ser maior ou igual soma de todos os bytes necessrios para ler os dados da matriz e o descritor da
matriz. Por exemplo, a declarao de matriz a seguir exige 118 bytes quando a matriz gravada no disco:
Dim MinhaMatriz(1 To 5,1 To 10) As Integer
Os 118 bytes so distribudos da seguinte maneira: 18 bytes para o descritor (2 + 8 * 2) e 100 bytes para os dados (5 * 10 *
2).
Se a varivel que est sendo lida for uma matriz de tamanho fixo, o Get ler somente os dados. Nenhum descritor lido.
Se a varivel que est sendo lida for de qualquer outro tipo (no for uma seqncia de caracteres de comprimento varivel
ou uma Variant), o Get l somente os dados da varivel. O comprimento do registro especificado pela clusula Len na
instruo Open deve ser maior ou igual ao comprimento dos dados que esto sendo lidos.
Get l os elementos dos tipos definidos pelo usurio como se cada um estivesse sendo lido individualmente, com exceo
de que no h preenchimento algum entre os elementos. No disco, uma matriz dinmica em um tipo definido pelo usurio
(gravado com Put) prefixada por um descritor cujo comprimento igual a 2 mais 8 vezes o nmero de dimenses, ou
seja, 2 + 8 * NmeroDeDimenses. O comprimento do registro especificado pela clusula Len na instruo Open deve ser
maior ou igual soma de todos os bytes necessrios para ler os elementos individuais, incluindo as matrizes e seus
descritores.
Para arquivos abertos no modo Binary, todas as regras de Random so aplicadas, exceto:
A clusula Len na instruo Open no possui efeito. Get l todas as variveis a partir do disco de forma contgua; ou seja,
sem preenchimento entre os registros.
Para qualquer matriz que no tenha sido definida pelo usurio, Get l somente os dados. Nenhum descritor lido.
Get l as seqncias de caracteres de comprimento varivel que no sejam elementos de tipos definidos pelo usurio sem
esperar pelo descritor de 2 bytes de comprimento. O nmero de bytes lidos igual ao nmero de caracteres que j se
encontram na seqncia de caracteres. Por exemplo, as instrues a seguir lem 10 bytes do nmero de arquivo 1:
SeqVar = String(10," ")
Get #1,,SeqVar

Instruo Input #
L os dados de um arquivo seqencial aberto e atribui os dados s variveis.
Sintaxe
Input #nmerodoarquivo, listadevar
A sintaxe da instruo Input # possui as partes a seguir:
Parte
Descrio

Funes Internas

121

nmerodoarquivo
listadevar

Obrigatrio. Qualquer nmero de arquivo vlido.


Obrigatrio. Lista de variveis delimitada por vrgulas s quais
so atribudos os valores lidos do arquivo no pode ser uma
matriz ou varivel de objeto. Contudo, as variveis que
descrevem um elemento de uma matriz ou um tipo definido
pelo usurio podem ser utilizadas.

Comentrios
Os dados lidos com Input # so geralmente gravados em um arquivo com Write #. Utilize essa instruo somente com
arquivos abertos no modo Input ou Binary.
Quando lidos, seqncias de caracteres padro ou dados numricos so atribudos s variveis sem modificao. A tabela
a seguir ilustra como outros dados de sada so tratados:
Dados
Valor atribudo varivel
Vrgula delimitadora ou linhaEmpty
em branco
#NULL#
Null
#TRUE# ou #FALSE#
True ou False
#dd-mm-aaaa hh:mm:ss#
A data e/ou hora representada pela expresso
#ERROR nmerodoerro#
nmerodoerro (varivel um Variant marcado como
um erro)
As aspas duplas (" ") dentro dos dados de entrada so ignoradas.
Os itens dos dados em um arquivo devem aparecer na mesma ordem que as variveis em listadevar e corresponderem s
variveis do mesmo tipo de dados. Se uma varivel for numrica e os dados no forem, um valor zero atribudo
varivel.
Se o fim do arquivo atingido enquanto um item de dados estiver sendo inserido, a insero interrompida e um erro
gerado.
Observao Para possibilitar a leitura correta dos dados em variveis a partir de um arquivo com Input #, utilize a
instruo Write # em vez da instruo Print # para gravar os dados nos arquivos. A utilizao de Write # assegura que
cada campo de dados separado seja delimitado de forma apropriada.

Funes Internas

122

Funo Input
Retorna String contendo os caracteres de um arquivo aberto no modo Input ou Binary.
Sintaxe
Input(nmero, [#]nmerodoarquivo)
A sintaxe da funo Input possui as partes a seguir:
Parte
Descrio
nmero
Obrigatrio.
Qualquer
expresso
numrica
vlida
especificando o nmero de caracteres a serem retornados.
nmerodoarquivo
Obrigatrio. Qualquer nmero de arquivo vlido.
Comentrios
Os dados lidos com a funo Input so normalmente gravados em um arquivo com Print # ou Put. Utilize essa funo
apenas com arquivos abertos no modo Input ou Binary.
Ao contrrio da instruo Input #, a funo Input retorna todos os caracteres que l, incluindo vrgulas, retornos de carro,
alimentaes de linha, aspas e espaos esquerda.
Com arquivos abertos para acesso Binary, uma tentativa de se ler o arquivo utilizando a funo Input at que EOF retorne
True gera um erro. Utilize as funes LOF e Loc em vez de EOF quando estiver lendo arquivos binrios com Input ou
utilize Get quando utilizar a funo EOF.
Observao Utilize a funo InputB para dados de bytes contidos em arquivos de texto. Com InputB, nmero especifica
o nmero de bytes a serem retornados em vez do nmero de caracteres a serem retornados.

Instruo Line Input #


L uma nica linha a partir de um arquivo seqencial aberto e a atribui a uma varivel String.
Sintaxe
Line Input #nmerodoarquivo, nomedavar
A sintaxe da instruo Line Input # possui as seguintes partes:
Parte
Descrio
nmerodoarquivo
Obrigatrio. Qualquer nmero de arquivo vlido.
nomedavar
Obrigatrio. Nome da varivel Variant ou String vlido.
Comentrios
Os dados lidos com Line Input # so geralmente gravados a partir de um arquivo com Print #.
A instruo Line Input # l um caractere do arquivo de cada vez, at encontrar um retorno de carro ( Chr(13)) ou uma
seqncia de retorno de carro alimentao de linha (Chr(13) + Chr(10)). As seqncias de retorno de carro alimentao
de linha so ignoradas em vez de serem anexadas seqncia de caracteres.

Funes Internas

123

Funo Loc
Retorna um Long especificando a posio de leitura/gravao atual dentro de um arquivo aberto.
Sintaxe
Loc(nmerodoarquivo)
O argumento obrigatrio nmerodoarquivo pode ser qualquer nmero de arquivo Integer vlido.
Comentrios
A tabela abaixo descreve o valor de retorno para cada modo de acesso a arquivo:
Modo
Valor de retorno
Random
Nmero do ltimo registro lido de ou gravado no arquivo.
Sequential
Posio atual do byte no arquivo dividido por 128. Entretanto, as
informaes retornadas por Loc para os arquivos seqenciais no so
utilizadas nem exigidas.
Binary
Posio do ltimo byte lido ou gravado.

Instrues Lock e Unlock


Controla o acesso atravs de outros processos para todo ou parte de um arquivo aberto com a instruo Open.
Sintaxe
Lock
[#]nmerodoarquivo[,
intervalodoregistro]
...
Unlock [#]nmerodoarquivo[, intervalodoregistro]
A sintaxe das instrues Lock e Unlock possui as partes a seguir:
Parte
Descrio
nmerodoarquivo
Obrigatrio. Qualquer nmero de arquivo vlido.
intervalodoregistro
Opcional. O intervalo de registros a serem bloqueados ou
desbloqueados.
Definies
As definies do argumento intervalodoregistro so:
nmerodoreg | [incio] To fim
Definio
nmerodoreg
incio
fim

Descrio
Nmero do registro (arquivos no modo Random) ou nmero
byte (arquivos no modo Binary) no qual o bloqueio
desbloqueio iniciado.
Nmero do primeiro registro ou byte a ser bloqueado
desbloqueado.
Nmero do ltimo registro ou byte a ser bloqueado
desbloqueado.

de
ou
ou
ou

Comentrios
As instrues Lock e Unlock so utilizadas em ambientes onde vrios processos podem precisar ter acesso ao mesmo
arquivo.
As instrues Lock e Unlock so sempre utilizadas aos pares. Os argumentos para Lock e Unlock devem ter
correspondncia exata.
O primeiro registro ou byte em um arquivo encontra-se na posio 1, o segundo registro ou byte na posio 2 e assim por
diante. Se voc especificar apenas um registro, somente esse registro ser bloqueado ou desbloqueado. Se voc
especificar um intervalo de registros e omitir um registro inicial (incio), todos os registros do primeiro at o ltimo (fim) do
intervalo sero bloqueados ou desbloqueados. A utilizao de Lock sem nmerodoreg bloqueia todo o arquivo; a utilizao
de Unlock sem nmerodoreg desbloqueia todo o arquivo.
Se o arquivo tiver sido aberto para entrada ou sada seqencial, Lock e Unlock afetaro todo o arquivo, independente do
intervalo especificado por incio e fim.
Ateno Certifique-se de remover todos os bloqueios com uma instruo Unlock antes de fechar um arquivo ou sair de
seu programa. Caso contrrio, resultados imprevisveis podero ser provocados.

Funo LOF
Retorna um Long representando o tamanho, em bytes, de um arquivo aberto com a instruo Open.
Sintaxe
LOF(nmerodoarquivo)
O argumento obrigatrio nmerodoarquivo um Integer que contm um nmero de arquivo vlido.
Observao Utilize a funo FileLen para obter o comprimento de um arquivo que no est aberto.

Instruo Open
Possibilita a entrada/sada (E/S) para um arquivo.
Sintaxe
Open nomedocaminho For modo [Access acesso] [bloqueio] As [#]nmerodoarquivo [Len=comprimentodoreg]
Funes Internas

124

A sintaxe da instruo Open possui as partes a seguir:


Parte
Descrio
nomedocaminho
Obrigatrio. Expresso de seqncia que especifica um nome
de arquivopode incluir um diretrio ou pasta e unidade de
disco.
modo
Obrigatrio. Palavra-chave especificando o modo de arquivo:
Append, Binary, Input, Output ou Random. Se no for
especificado, o arquivo aberto para acesso Random.
acesso
Opcional. Palavra-chave especificando as operaes
permitidas no arquivo aberto: Read, Write ou Read Write.
bloqueio
Opcional. Palavra-chave especificando as operaes
permitidas no arquivo aberto por outros processos: Shared,
Lock Read, Lock Write e Lock Read Write.
nmerodoarquivo
Obrigatrio. Um nmero de arquivo vlido no intervalo de 1 a
511, inclusive. Utilize a funo FreeFile para obter o prximo
nmero de arquivo disponvel.
comprimentodoreg
Opcional. Nmero menor ou igual a 32.767 (bytes). Para
arquivos abertos para acesso aleatrio, esse valor o
comprimento do registro. Para arquivos seqenciais, esse
valor o nmero de caracteres presentes no buffer.
Comentrios
Voc deve abrir um arquivo antes que nele seja realizada qualquer operao de E/S. Open aloca um buffer para E/S para o
arquivo e determina o modo de acesso a ser utilizado com o buffer.
Se o arquivo especificado por nomedocaminho no existir, ele ser criado quando um arquivo for aberto para os modos
Append, Binary, Output ou Random.
Se o arquivo j se encontra aberto por um outro processo e o tipo de acesso especificado no for permitido, a operao
Open falhar e um erro ser gerado.
A clusula Len ignorada se modo for Binary.
Importante Nos modos Binary, Input e Random, voc pode abrir um arquivo utilizando um nmero de arquivo diferente
sem ter que antes fechar o arquivo. Nos modos Append e Output, voc deve fechar um arquivo antes de abri-lo com um
nmero de arquivo diferente.

Instruo Print #
Grava os dados formatados para tela em um arquivo seqencial.
Sintaxe
Print #nmerodoarquivo, [listadesada]
A sintaxe da instruo Print # possui as partes a seguir:
Parte
Descrio
nmerodoarquivo
Obrigatrio. Qualquer nmero de arquivo vlido.
listadesada
Opcional. Expresso ou lista de expresses a ser impressa.
Definies
As definies do argumento listadesada so:
[{Spc(n) | Tab[(n)]}] [expresso] [posdocarac]
Definio
Spc(n)
Tab(n)

expresso
posdocarac

Descrio
Utilizado para inserir caracteres de espao na sada, onde n o
nmero de caracteres de espao a serem inseridos.
Utilizado para posicionar o ponto de insero em um nmero
absoluto de coluna, onde n o nmero da coluna. Utilize Tab sem
argumento para posicionar o ponto de insero no comeo da
prxima zona de impresso.
Expresses numricas ou expresses de seqncia de caracteres
a serem impressas.
Especifica o ponto de insero para o prximo caractere. Utilize
um ponto-e-vrgula para posicionar o ponto de insero
imediatamente aps o ltimo caractere exibido. Utilize Tab(n) para
posicionar o ponto de insero em um nmero absoluto de
coluna. Utilize Tab sem argumento para posicionar o ponto de
insero no incio da prxima zona de impresso. Se posdocarac
for omitido, o prximo caractere ser impresso na prxima linha.

Comentrios
Os dados gravados com Print # so geralmente lidos a partir de um arquivo com Line Input # ou Input.
Se voc omitir listadesada e incluir apenas um separador de lista aps nmerodoarquivo, uma linha em branco ser
impressa no arquivo. Vrias expresses podem ser separadas com um espao ou um ponto-e-vrgula. Um espao possui o
mesmo efeito de um ponto-e-vrgula.
Para dados Boolean, True ou False so impressos. As palavras-chave True e False no so traduzidas, independente da
localidade.

Funes Internas

125

Os dados Date so gravados no arquivo utilizando o formato padro curto de datas reconhecido pelo seu sistema. Quando
o componente data ou hora no estiver presente ou for zero, somente a parte fornecida gravada no arquivo.
Se os dados de listadesada forem Empty., nada ser gravado no arquivo. Contudo, se listadesada for Null, Null
gravado no arquivo.
Para os dados de Error, a sada aparece como Error cdigodoerro. A palavra-chave Error no traduzida independente da
localidade.
Todos os dados gravados no arquivo com Print # so reconhecidos internacionalmente; ou seja, os dados so formatados
de forma correta com o separador decimal apropriado.
Como Print # grava uma imagem dos dados ao arquivo, voc deve delimitar os dados para que eles sejam impressos
corretamente. Se voc utilizar Tab sem argumentos para mover a posio da impresso para a prxima zona de impresso,
Print # tambm gravar os espaos entre os campos de impresso no arquivo.
Observao Se, no futuro, voc desejar ler os dados de um arquivo utilizando a instruo Input #, utilize a instruo
Write # ao invs da instruo Print # para gravar os dados no arquivo. A utilizao de Write # garante a integridade de
cada campo de dados em particular, delimitando-os do modo adequado, para que possam ser lidos de volta utilizando
Input #. A utilizao de Write # tambm assegura que os dados possam ser lidos corretamente em qualquer localidade.

Instruo Put
Grava os dados a partir de uma varivel para um arquivo em disco.
Sintaxe
Put [#]nmerodoarquivo, [nmerodoreg], nomedavar
A sintaxe da instruo Put possui as partes a seguir:
Parte
Descrio
nmerodoarquivo Obrigatrio. Qualquer nmero de arquivo vlido.
nmerodoreg
Opcional. Variant (Long). Nmero do registro (arquivos no modo
Random) ou nmero do byte (arquivos no modo Binary) no qual a
gravao iniciada.
nomedavar
Obrigatrio. Nome da varivel contendo os dados a serem gravados
no disco.
Comentrios
Os dados gravados com Put so geralmente lidos de um arquivo com Get.
O primeiro registro ou byte em um arquivo encontra-se na posio 1, o segundo registro ou byte na posio 2 e assim por
diante. Se nmerodoreg for omitido, o prximo registro ou byte aps a ltima instruo Get ou Put ou aquele apontado pela
ltima funo Seek ser gravado. Voc deve incluir as vrgulas de delimitao, por exemplo:
Put #4,,FileBuffer
Para os arquivos abertos no modo Random, so aplicadas as regras a seguir:
Se o comprimento dos dados que esto sendo gravados for menor do que o comprimento especificado na clusula Len da

instruo Open, Put grava os registros subseqentes nos limites do comprimento do registro. O espao entre o final de um
registro e o incio do prximo registro preenchido com o contedo existente do buffer do arquivo. Como a quantidade dos
dados de preenchimento no pode ser determinada com segurana, convm fazer com que o comprimento do registro
corresponda ao dos dados que esto sendo gravados. Se o comprimento dos dados que esto sendo gravados for maior
do que o comprimento especificado na clusula Len da instruo Open, um erro ser gerado.
Se a varivel que est sendo gravada for uma seqncia de caracteres de comprimento varivel, Put grava um descritor de
2 bytes contendo o comprimento da seqncia e, em seguida, a varivel. O comprimento do registro sendo especificado
pela clusula Len na instruo Open deve ser pelo menos 2 bytes maior do que o comprimento real da seqncia de
caracteres.
Se a varivel que est sendo gravada for um Variant de um tipo numrico, Put grava 2 bytes identificando o VarType do
Variant e, em seguida, grava a varivel. Por exemplo, ao gravar um Variant de VarType 3, Put grava 6 bytes: 2 bytes
identificando o Variant como VarType 3 (Long) e 4 bytes contendo os dados Long. O comprimento do registro
especificado pela clusula Len na instruo Open deve ser pelo menos 2 bytes maior do que o nmero real de bytes
necessrios para armazenar a varivel.
Observao Voc pode utilizar a instruo Put para gravar uma matriz Variant em disco, mas no pode utilizar Put para
gravar em disco um Variant escalar contendo uma matriz. Put tambm no pode ser utilizado para gravar objetos em disco.
Se a varivel que est sendo gravada for um Variant de VarType 8 (String), Put grava 2 bytes identificando VarType, 2

bytes indicando o comprimento da seqncia de caracteres e, em seguida, grava os dados da seqncia. O comprimento
do registro especificado pela clusula Len na instruo Open deve ser pelo menos 4 bytes maior do que o comprimento
real da seqncia de caracteres.
Se a varivel que est sendo gravada for uma matriz dinmica, Put grava um descritor cujo comprimento igual a 2 mais 8
vezes o nmero de dimenses, ou seja, 2 + 8 * NmeroDeDimenses. O comprimento do registro especificado pela
clusula Len na instruo Open deve ser maior ou igual soma de todos os bytes necessrios para gravar os dados da
matriz e o descritor da matriz. Por exemplo, a declarao da matriz a seguir exige 118 bytes quando a matriz gravada em
disco.
Dim MinhaMatriz (1 To 5,1 To 10) As Integer
Os 118 bytes so distribudos da seguinte forma: 18 bytes para o descritor (2 + 8 * 2) e 100 bytes para os dados (5 * 10 * 2).
Se a varivel que est sendo gravada for uma matriz de tamanho fixo, Put grava somente os dados. Nenhum descritor
gravado no disco.

Funes Internas

126

Se a varivel que est sendo gravada for qualquer outro tipo de varivel (no uma seqncia de caracteres de

comprimento varivel ou um Variant), Put grava somente os dados da varivel. O comprimento do registro especificado
pela clusula Len na instruo Open deve ser maior ou igual ao comprimento dos dados que esto sendo gravados.
Put grava os elementos dos tipos definidos pelo usurio como se cada um fosse gravado individualmente, com exceo de
que no h preenchimento entre os elementos. No disco, uma matriz dinmica de um tipo definido pelo usurio gravada
com Put prefixada por um descritor cujo comprimento igual a 2 mais 8 vezes o nmero de dimenses, ou seja, 2 + 8 *
NmeroDeDimenses. O comprimento do registro especificado pela clusula Len na instruo Open pode ser maior ou
igual soma de todos os bytes necessrios para gravar os elementos individuais, incluindo as matrizes e seus descritores.
Para os arquivos abertos no modo Binary, so aplicadas todas as regras de Random, exceto:
A clusula Len na instruo Open no possui efeito. Put grava todas as variveis no disco de forma contgua; ou seja, sem
preenchimento entre os registros.
Para qualquer outra matriz diferente daquela de tipo definido pelo usurio, Put grava somente os dados. Nenhum descritor
gravado.
Put grava as seqncias de caracteres de comprimento varivel que no sejam elementos dos tipos definidos pelo usurio
sem o descritor de comprimento de 2 bytes. O nmero de bytes gravados igual ao nmero de caracteres da seqncia.
Por exemplo, as instrues a seguir gravam 10 bytes em um arquivo de nmero 1:
VarString$ = String$(10," ")
Put #1,,VarString$

Instruo Reset
Fecha todos os arquivos em disco abertos com a instruo Open.
Sintaxe
Reset
Comentrios
A instruo Reset fecha todos os arquivos ativos abertos pela instruo Open e grava em disco o contedo de todos os
buffers de arquivo.

Funo Seek
Retorna um Long especificando a posio atual de leitura/gravao dentro de um arquivo aberto utilizando-se a instruo
Open.
Sintaxe
Seek(nmerodoarquivo)
O argumento obrigatrio nmerodoarquivo um Integer contendo um nmero de arquivo vlido.
Comentrios
Seek retorna um valor entre 1 e 2.147.483.647 (equivalente a 2^31 1), inclusive.
A tabela a seguir descreve os valores de retorno para cada modo de acesso a arquivos.
Modo
Valor de retorno
Random
Nmero do prximo registro lido ou gravado
Binary
Posio do byte na qual ocorre a prxima operao. O primeiro byte em
Output,
um arquivo encontra-se na posio 1, o segundo byte na posio 2 e
Append
eassim por diante.
Input

Instruo Seek
Define a posio da prxima operao de leitura/gravao dentro de um arquivo aberto com a instruo Open.
Sintaxe
Seek [#]nmerodoarquivo, posio
A sintaxe da instruo Seek possui as partes a seguir:
Parte
Descrio
nmerodoarquivo
Obrigatrio. Qualquer nmero de arquivo vlido.
posio
Obrigatrio. Nmero no intervalo de 1 2.147.483.647,
inclusive, que indica onde a prxima operao de
leitura/gravao deve ocorrer.
Comentrios
Os nmeros de registro especificados nas instrues Get e Put sobrepem-se posio de arquivo efetuada por Seek.
Realizar uma operao de gravao de arquivo aps uma operao Seek alm do final de um arquivo faz com que o
mesmo aumente de tamanho. Se voc tentar uma operao Seek em uma posio negativa ou zero, um erro ser gerado.

Funo Spc
Utilizada com a instruo Print # ou o mtodo Print para posicionar a sada.
Sintaxe
Spc(n)

Funes Internas

127

O argumento obrigatrio n o nmero de espaos a serem inseridos antes da exibio ou impresso da prxima expresso
em uma lista.
Comentrios
Se n for menor que a largura da linha de sada, a prxima posio de impresso seguir imediatamente o nmero de
espaos impressos. Se n for maior que a largura da linha de sada, Spc calcular a prxima posio de impresso
utilizando a frmula:
posioatualdaimpresso + (n Mod largura)
Por exemplo, se a posio atual da impresso for 24, a largura da linha de sada for 80 e voc especificar Spc(90), a
prxima impresso comear na posio 34 (a posio atual de impresso + o resto de 90/80). Se a diferena entre a
posio atual da impresso e a largura da linha de sada for menor do que n (ou n Mod largura), a funo Spc passar para
o incio da prxima linha e gerar espaos iguais a n (largura posioatualdaimpresso).
Observao Certifique-se de que suas colunas tabulares sejam largas o suficiente para acomodarem letras largas.
Quando voc utiliza o mtodo Print com uma fonte proporcionalmente espaada, a largura dos caracteres de espao
impressos com a funo Spc sempre uma mdia da largura de todos os caracteres em tamanho de pontos para a fonte
escolhida. Contudo, no h correlao entre o nmero de caracteres impressos e o nmero de colunas de largura fixa que
esses caracteres ocupam. Por exemplo, a letra maiscula W ocupa mais do que uma coluna de largura fixa e a letra
minscula i ocupa menos.

Funo Tab
Utilizada com a instruo Print # ou o mtodo Print para posicionar a sada.
Sintaxe
Tab[(n)]
O argumento opcional n representa o nmero da coluna que movido antes da exibio ou impresso da prxima
expresso em uma lista. Se for omitido, Tab move o ponto de insero para o incio da prxima zona de impresso. Isso
permite que Tab seja utilizado em vez de uma vrgula nas localidades onde a vrgula utilizada como um separador
decimal.
Comentrios
Se a posio atual de impresso na linha atual for maior do que n, Tab pula para a coluna de nmero n da prxima linha de
sada. Se n for menor do que 1, Tab move a posio de impresso para a coluna 1. Se n for maior do que a largura da linha
de sada, Tab calcula a prxima posio de impresso utilizando a frmula:
n Mod largura
Por exemplo, se a largura for 80 e voc especificar Tab(90), a prxima impresso comear na coluna 10 (o resto de
90/80). Se n for menor do que a posio atual de impresso, a impresso comear na prxima linha na posio de
impresso calculada. Se a posio de impresso calculada for maior do que a posio atual de impresso, a impresso
comear na posio de impresso calculada na mesma linha.
A posio de impresso mais esquerda em uma linha de sada sempre 1. Quando voc utiliza a instruo Print # para
imprimir em arquivos, a posio de impresso mais direita a largura atual da linha de sada, que pode ser definida
utilizando-se a instruo Width #.
Observao Certifique-se de que suas colunas tabulares sejam largas o suficiente para acomodarem letras largas.
Quando voc utiliza a funo Tab com o mtodo Print, a superfcie de impresso dividida em colunas de largura fixa e
uniformes. A largura de cada coluna uma mdia da largura de todos os caracteres em tamanho de pontos para a fonte
escolhida. Contudo, no h correlao entre o nmero de caracteres impressos e o nmero de colunas de largura fixa que
esses caracteres ocupam. Por exemplo, a letra maiscula W ocupa mais do que uma coluna de largura fixa e a letra
minscula i ocupa menos.

Instruo Width #
Atribui uma largura de linha de sada a um arquivo aberto com a instruo Open.
Sintaxe
Width #nmerodoarquivo, largura
A sintaxe da instruo Width # possui as partes a seguir:
Parte
Descrio
nmerodoarquivo
Obrigatrio. Qualquer nmero de arquivo vlido.
largura
Obrigatrio. Expresso numrica na faixa de 0 a 255,
inclusive, que indica a quantidade de caracteres que aparece
em uma linha antes que uma nova linha seja iniciada. Se a
largura for igual a 0, no haver limite para o comprimento de
uma linha. O valor padro para a largura 0.

Instruo Write #
Grava os dados em um arquivo seqencial.
Sintaxe
Write #nmerodoarquivo, [listadesada]
A sintaxe da instruo Write # possui as partes a seguir:
Parte
Descrio
nmerodoarquivo
Obrigatrio. Qualquer nmero de arquivo vlido.
Funes Internas

128

listadesada

Opcional. Uma ou mais expresses numricas delimitadas por


vrgula ou expresses de seqncia de caracteres a serem
gravadas em um arquivo.

Comentrios
Os dados gravados com Write # so geralmente lidos a partir de um arquivo com Input #.
Se voc omitir listadesada e incluir uma vrgula aps nmerodoarquivo, uma linha em branco impressa no arquivo. Vrias
expresses podem ser separadas com um espao, um ponto-e-vrgula ou uma vrgula. Um espao possui o mesmo efeito
que um ponto-e-vrgula.
Quando Write # for utilizado para gravar dados em um arquivo, vrias hipteses universais so seguidas para que os
dados possam sempre ser lidos e interpretados corretamente utilizando Input #, independente da localidade:
Os dados numricos so sempre gravados utilizando o ponto como separador decimal.
Para dados Boolean, #TRUE# ou #FALSE# impresso. As palavras-chave True e False no so traduzidas, independente
da localidade.
Os dados Date so gravados no arquivo utilizando o formato de data universal. Quando o componente de data ou hora
estiver faltando, ou for igual a zero, somente a parte fornecida gravada no arquivo.
Se os dados de listadesada forem Empty, nada ser gravado no arquivo. Contudo, para dados Null, #NULL# gravado.
Se os dados de listadesada forem Null, #NULL# gravado no arquivo.
Para os dados de Error, a sada aparece como #ERROR cdigodoerro#. A palavra-chave Error no traduzida,
independente da localidade.
Ao contrrio da instruo Print #, a instruo Write # insere vrgulas entre itens e aspas ao redor de seqncias de
caracteres assim que so gravadas no arquivo. Voc no precisa colocar delimitadores explcitos na lista. Write # insere
um caractere de linha nova, ou seja, um retorno de carroalimentao de linha (Chr(13) + Chr(10)), aps ter gravado o
ltimo caractere de listadesada no arquivo.
Exemplo da funo DDB
Este exemplo utiliza a funo DDB para retornar a depreciao de um bem por um perodo especificado dado o custo inicial
(CustoInicial), o valor do salvamento ao final da vida til do bem (ValorDoSalvamento), a vida total do bem em anos
(Vidatil) e o perodo em anos para o qual a depreciao calculada (Depr).
Dim Fmt, CustoInicial, ValorDoSalvamento, VidaMensal, Vidatil, AnoDep, Depr
Const YRMOS = 12
' Nmero de meses em um ano.
Fmt = "###,##0.00"
CustoInicial = InputBox("Qual o custo inicial do bem?")
ValorDoSalvamento = InputBox("Insira o valor do bem ao fim da sua vida".)
VidaMensal = InputBox("Qual a vida til do bem em meses?")
Do While VidaMensal < YRMOS ' Certifique-se de que o perodo >= 1 ano.
MsgBox "A vida do bem deve ser de um ano ou mais".
VidaMensal = InputBox("Qual a vida til do bem em meses?")
Loop
Vidatil = VidaMensal / YRMOS ' Converte meses em anos.
If Vidatil <> Int(VidaMensal / YRMOS) Then
Vidatil = Int(Vidatil + 1) ' Arredonda para o ano mais prximo.
End If
AnoDep = CInt(InputBox("Insira o ano para o clculo da depreciao".))
Do While AnoDep < 1 Or AnoDep > Vidatil
MsgBox "Voc deve inserir no mnimo 1 mas no mais de " & Vidatil
AnoDep = InputBox("Insira o ano para o clculo da depreciao".)
Loop
Depr = DDB(CustoInicial, ValorDoSalvamento, Vidatil, AnoDep)
MsgBox "A depreciao do ano " & AnoDep & " " & _
Format(Depr, Fmt) & "."
Exemplo da funo FV
Este exemplo utiliza a funo FV para retornar o valor futuro de um investimento dada a taxa percentual que se acumula
por perodo (APR / 12), o nmero total de pagamentos (TotPgtos), o pagamento (Pagamento), o valor atual do investimento
(ValP) e um nmero que indica se o pagamento feito no incio ou no fim do perodo de pagamento (TipoPag). Observe
que, como Pagamento representa dinheiro pago, um nmero negativo.
Dim Fmt, Pagamento, TPA, TotPgtos, TipoPag, ValP, ValF
Const PERODOFINAL = 0, PERODOINICIAL = 1 ' Quando os pagamentos so feitos.
Fmt = "###,###,##0.00" ' Define o formato monetrio.
Pagamento = InputBox("Quanto voc pretende economizar por ms?")
TPA = InputBox("Insira a taxa de percentagem anual de juros esperados.")
If TPA > 1 Then TPA = TPA / 100 ' Certifica-se de que se trata do devido formulrio.
TotPgtos = InputBox("Durante quantos meses espera fazer economia?")
TipoPag = MsgBox("Voc faz os pagamentos no fim do ms?", vbYesNo)
If TipoPag = vbNo Then TipoPag = PERODOINICIAL Else TipoPag = PERODOFINAL
ValP = InputBox("Quanto h na conta de economias agora?")
ValF = FV(TPA / 12, TotPgtos, -Pagamento, -ValP, TipoPag)
MsgBox "Suas economias sero valiosos " & Format(ValF, Fmt) & "."

Funes Internas

129

Exemplo da funo IPmt


Este exemplo utiliza a funo IPmt para calcular quanto de um pagamento juro quando todos os pagamentos so de igual
valor. Fornecidos a taxa percentual dos juros por perodo (TPA / 12), o perodo de pagamento para o qual se deseja a parte
dos juros (Perodo), o nmero total de pagamentos (TotPgtos), o valor presente ou principal do emprstimo (ValP), o valor
futuro do emprstimo (ValF) e um nmero que indica se o pagamento vence no incio ou no final do perodo de pagamento
(TipoPag).
Dim ValF, Fmt, ValP, TPA, TotPgtos, TipoPag, Perodo, PgtoJuros, TotJuros, Msg
Const PERODOFINAL = 0, PERODOINICIAL = 1 ' Quando os pagamentos so feitos.
ValF = 0 ' Normalmente 0 para um emprstimo.
Fmt = "###,###,##0.00" ' Define o formato monetrio.
ValP = InputBox("Quanto voc quer pegar emprestado?")
TPA = InputBox("Qual a taxa de percentagem anual do seu emprstimo?")
If TPA > 1 Then TPA = TPA / 100 ' Certifica-se de que se trata do formulrio apropriado.
TotPgtos = InputBox("Quantos pagamentos mensais?")
TipoPag = MsgBox("Voc faz os pagamentos no fim do ms?", vbYesNo)
If TipoPag = vbNo Then TipoPag = PERODOINICIAL Else TipoPag = PERODOFINAL
For Perodo = 1 To TotPgtos ' Totaliza os juros.
PgtoJuros = IPmt(TPA / 12, Perodo, TotPgtos, -ValP, ValF, TipoPag)
TotJuros = TotJuros + PgtoJuros
Next Perodo
Msg = "Voc vai pagar um total de " & Format(TotJuros, Fmt)
Msg = Msg & " em juros por este emprstimo."
MsgBox Msg ' Exibe os resultados.

Funes Internas

130

Exemplo da funo IRR


Neste exemplo, a funo IRR retorna a taxa interna de retorno para uma srie de 5 fluxos de caixa contidos na matriz
Valores(). O primeiro elemento da matriz um fluxo de caixa negativo que representa os custos iniciais do negcio. Os 4
fluxos de caixa restantes representam fluxos de caixas positivos para os quatro anos subseqentes. Estimativa a taxa
interna de retorno estimada.
Dim Estimativa, Fmt, TaxaRet, Msg
Static Valores(5) As Double ' Configura a matriz.
Estimativa = .1 ' Inicia a estimativa em 10 por cento.
Fmt = "#0.00" ' Define o formato da percentagem.
Valores(0) = -70000
' Custos iniciais do negcio.
' Fluxo de caixa positivo refletindo a receita por quatro anos sucessivos.
Valores(1) = 22000: Valores(2) = 25000
Valores(3) = 28000: Valores(4) = 31000
TaxaRet = IRR(Valores(), Estimativa) * 100 ' Calcula a taxa interna.
Msg = "A taxa interna de retorno para estes cinco fluxos de caixa "
Msg = Msg & Format(TaxaRet, Fmt) & " por cento."
MsgBox Msg ' Exibe a taxa interna de retorno.
Exemplo da funo MIRR
Este exemplo utiliza a funo MIRR para retornar a taxa interna de retorno modificada de uma srie de fluxos de caixa
contidos na matriz Valores(). TPAEmprstimo representa os juros financeiros e TPAInv representa a taxa de juros recebida
no reinvestimento.
Dim TPAEmprstimo, TPAInv, Fmt, TaxaRet, Msg
Static Valores(5) As Double ' Configura a matriz.
TPAEmprstimo = .1
' Taxa de emprstimo.
TPAInv = .12 ' Taxa de reinvestimento.
Fmt = "#0.00" ' Define o formato monetrio.
Valores(0) = -70000
' Custo inicial do negcio.
' Fluxo de caixa positivo refletindo a receita por quatro anos sucessivos.
Valores(1) = 22000: Valores(2) = 25000
Valores(3) = 28000: Valores(4) = 31000
TaxaRet = MIRR(Valores(), TPAEmprstimo, TPAInv) ' Calcula a taxa interna.
Msg = "A taxa interna de retorno modificada para estes cinco fluxos de caixa "
Msg = Msg & Format(Abs(TaxaRet) * 100, Fmt) & "%."
MsgBox Msg ' Exibe a taxa de retorno
' interna.
Exemplo da funo NPer
Este exemplo utiliza a funo NPer para retornar o nmero de perodos durante os quais os pagamentos devem ser feitos
para liquidar um emprstimo cujo valor est contido em ValP. Tambm so fornecidos a taxa percentual de juros por perodo
(TPA / 12), o pagamento (Pagamento), o valor futuro do emprstimo (ValF) e o nmero que indica se o pagamento vence no
incio ou no final do perodo de pagamento (TipoPag).
Dim ValF, ValP, TPA, Pagamento, TipoPag, TotPgtos
Const PERODOFINAL = 0, PERODOINICIAL = 1 ' Quando os pagamentos so feitos.
ValF = 0 ' Normalmente 0 para um emprstimo.
ValP = InputBox("Quanto voc quer pegar emprestado?")
TPA = InputBox("Qual a taxa de percentagem anual do seu emprstimo?")
If TPA > 1 Then TPA = TPA / 100 ' Certifica-se de que se trata do formulrio apropriado.
Pagamento = InputBox("Quanto voc deseja pagar por ms?")
TipoPag = MsgBox("Voc faz os pagamentos no fim do ms?", vbYesNo)
If TipoPag = vbNo Then TipoPag = PERODOINICIAL Else TipoPag = PERODOFINAL
TotPgtos = NPer(TPA / 12, -Pagamento, ValP, ValF, TipoPag)
If Int(TotPgtos) <> TotPgtos Then TotPgtos = Int(TotPgtos) + 1
MsgBox "Voc levar " & TotPgtos & " meses para liquidar o seu emprstimo."
Exemplo da funo NPV
Este exemplo utiliza a funo NPV para retornar o valor presente lquido de uma srie de fluxos de caixa contidos na matriz
Valores(). TaxaRet representa a taxa interna fixa de retorno.
Dim Fmt, Estimativa, TaxaRet, ValPLquido, Msg
Static Valores(5) As Double ' Configura a matriz.
Fmt = "###,##0.00" ' Define o formato monetrio.
Estimativa = .1 ' Inicia a estimativa em 10 por cento.
TaxaRet = .0625 ' Define a taxa interna fixa.
Valores(0) = -70000
' Custo inicial do negcio.
' Fluxos de caixa positivos refletindo a receita por quatro anos sucessivos.
Valores(1) = 22000: Valores(2) = 25000
Valores(3) = 28000: Valores(4) = 31000
ValPLquido = NPV(TaxaRet, Valores()) ' Calcula o valor presente lquido.
Funes Internas

131

Msg = "O valor presente lquido destes fluxos de caixa "


Msg = Msg & Format(ValPLquido, Fmt) & "."
MsgBox Msg ' Exibe o valor presente lquido.
Exemplo da funo Pmt
Este exemplo utiliza a funo Pmt para retornar o pagamento mensalmente de um emprstimo durante um perodo fixo.
Fornecida a taxa percentual de juros por perodo (TPA / 12), o nmero total de pagamentos (TotPgtos), o valor presente ou
principal do emprstimo (ValP), o valor futuro do emprstimo (ValF) e um nmero que indica se o pagamento vence no
incio ou final do perodo de pagamento (TipoPag).
Dim Fmt, ValF, ValP, TPA, TotPgtos, TipoPag, Pagamento
Const PERODOFINAL = 0, PERODOINICIAL = 1 ' Quando os pagamentos so feitos.
Fmt = "###,###,##0.00" ' Define o formato monetrio.
ValF = 0 ' Normalmente 0 para um emprstimo.
ValP = InputBox("Quanto voc quer pegar emprestado?")
TPA = InputBox("Qual a taxa percentual anual do seu emprstimo?")
If TPA > 1 Then TPA = TPA / 100 ' Certifica-se de que se trata do formulrio apropriado.
TotPgtos = InputBox("Quantos pagamentos mensais voc vai fazer?")
TipoPag = MsgBox("Voc faz os pagamentos no fim do ms?", vbYesNo)
If TipoPag = vbNo Then TipoPag = PERODOINICIAL Else TipoPag = PERODOFINAL
Pagamento = Pmt(TPA / 12, TotPgtos, -ValP, ValF, TipoPag)
MsgBox "O seu pagamento ser " & Format(Pagamento, Fmt) & " por ms."

Funes Internas

132

Exemplo da funo PPmt


Este exemplo utiliza a funo PPmt para calcular quanto de um pagamento por um perodo especfico principal quando
todos os pagamentos so de igual valor. Fornecidos a taxa percentual de juros por perodo (TPA / 12), o perodo de
pagamento para o qual se deseja a parte principal (Perodo), o nmero total de pagamentos (TotPgtos), o valor presente ou
principal do emprstimo (ValP), o valor futuro do emprstimo (ValF) e um nmero que indica se o pagamento vence no
incio ou no final do perodo de pagamento (TipoPag).
Dim NL, TB, Fmt, ValF, ValP, TPA, TotPgtos, TipoPag, Pagamento, Msg, CriaGrfico, Perodo, P, I
Const PERODOFINAL = 0, PERODOINICIAL = 1 ' Quando os pagamentos so feitos.
NL = Chr(13) & Chr(10) ' Define a nova linha.
TB = Chr(9) ' Define a tabulao.
Fmt = "###,###,##0.00" ' Define o formato monetrio.
ValF = 0 ' Normalmente 0 para um emprstimo.
ValP = InputBox("Quanto voc quer pegar emprestado??")
TPA = InputBox("Qual a taxa de percentagem anual do seu emprstimo?")
If TPA > 1 Then TPA = TPA / 100 ' Certifica-se de que se trata do formulrio apropriado.
TotPgtos = InputBox("Quantos pagamentos mensais voc precisa fazer?")
TipoPag = MsgBox("Voc faz os pagamentos no fim do ms?", vbYesNo)
If TipoPag = vbNo Then TipoPag = PERODOINICIAL Else TipoPag = PERODOFINAL
Pagamento = Abs(-Pmt(TPA / 12, TotPgtos, ValP, ValF, TipoPag))
Msg = "O seu pagamento mensal " & Format(Pagamento, Fmt) & ". "
Msg = Msg & "Voc gostaria de desdobrar o seu principal e
Msg = Msg & "os juros por perodo?"
CriaGrfico = MsgBox(Msg, vbYesNo)
' Veja se deseja um grfico.
If CriaGrfico <> vbNo Then
If TotPgtos > 12 Then MsgBox "Somente o primeiro ano ser mostrado."
Msg = "Ms Pagamento Principal Juros" & NL
For Perodo = 1 To TotPgtos
If Perodo > 12 Then Exit For ' Mostra somente os primeiros 12.
P = PPmt(TPA / 12, Perodo, TotPgtos, -ValP, ValF, TipoPag)
P = (Int((P + .005) * 100) / 100) ' Arredonda o principal.
I = Pagamento - P
I = (Int((I + .005) * 100) / 100) ' Arredonda os juros
Msg = Msg & Perodo & TB & Format(Pagamento, Fmt)
Msg = Msg & TB & Format(P, Fmt) & TB & Format(I, Fmt) & NL
Next Perodo
MsgBox Msg ' Exibe a tabela de amortizao.
End If
Exemplo da funo PV
Neste exemplo, a funo PV retorna o valor presente de uma anuidade de $1.000.000 que fornecer $50.000 por ano nos
prximos 20 anos. So fornecidos a taxa de percentagem anual esperada (TPA), o nmero total de pagamentos (TotPgtos),
o valor de cada pagamento (SuaReceita), o valor total do investimento (ValF) e o nmero que indica se cada pagamento
feito no incio ou no final do perodo de pagamento (TipoPag). Observe que SuaReceita um nmero negativo porque
representa o dinheiro pago da anuidade a cada ano.
Dim Fmt, TPA, TotPgtos, SuaReceita, ValF, TipoPag, ValP
Const PERODOFINAL = 0, PERODOINICIAL = 1 ' Quando os pagamentos so feitos.
Fmt = "###,##0.00" ' Define o formato monetrio.
TPA = .0825 ' Taxa de percentagem anual.
TotPgtos = 20 ' Nmero total de pagamentos.
SuaReceita = 50000
' Receita anual.
ValF = 1000000
' Valor futuro.
TipoPag = PERODOINICIAL
' Pagamento no incio do ms.
ValP = PV(TPA, TotPgtos, -SuaReceita, ValF, TipoPag)
MsgBox "O valor presente " & Format(ValP, Fmt) & "."
Exemplo da funo Rate
Este exemplo utiliza a funo Rate para calcular a taxa de juros de um emprstimo, fornecidos o nmero total de
pagamentos (TotPgtos), o valor de pagamento do emprstimo (Pagamento), o valor presente ou principal do emprstimo
(ValP), o valor futuro do emprstimo (ValF), um nmero que indica se o pagamento vence no incio ou no final do perodo
de pagamento (TipoPag) e uma estimativa da taxa de juros esperada (Estimativa).
Dim Fmt, ValF, Estimativa, ValP, Pagamento, TotPgtos, TipoPag, TPA
Const PERODOFINAL = 0, PERODOINICIAL = 1 ' Quando os pagamentos so feitos.
Fmt = "##0.00"' Define o formato percentual.
ValF = 0 ' Normalmente 0 para um emprstimo.
Estimativa = .1 ' Estimativa de 10 por cento.
ValP = InputBox("Quanto voc pegou emprestado?")
Pagamento = InputBox("Qual o seu pagamento mensal?")
TotPgtos = InputBox("Quantos pagamentos mensais voc precisa fazer?")

Funes Internas

133

TipoPag = MsgBox("Voc faz os pagamentos no fim do ms?", _


vbYesNo)
If TipoPag = vbNo Then TipoPag = PERODOINICIAL Else TipoPag = PERODOFINAL
TPA = (Rate(TotPgtos, -Pagamento, ValP, ValF, TipoPag, Estimativa) * 12) * 100
MsgBox "A sua taxa de juros " & Format(CInt(TPA), Fmt) & " por cento."
Exemplo da funo SLN
Este exemplo utiliza a funo SLN para retornar a depreciao linear de um bem por um nico perodo, fornecido o custo
inicial do bem (CustoInicial), o valor do salvamento ao final da vida til do bem (ValorDoSalvamento) e a vida total do bem
em anos (Vidatil).
Dim Fmt, CustoInicial, ValorDoSalvamento, VidaMensal, Vidatil, DeprP
Const ANOMESES = 12
' Nmero de meses em um ano.
Fmt = "###,##0.00" ' Define o formato monetrio.
CustoInicial = InputBox("Qual o custo inicial do bem?")
ValorDoSalvamento = InputBox("Qual o valor do bem ao fim da sua vida til?")
VidaMensal = InputBox("Qual a vida til do bem em meses?")
Do While VidaMensal < ANOMESES ' Certifica-se de que o perodo >= 1 ano.
MsgBox "A vida do bem deve ser de um ano ou mais."
VidaMensal = InputBox("Qual a vida til do bem em meses?")
Loop
Vidatil = VidaMensal / ANOMESES ' Converte meses em anos.
If Vidatil <> Int(VidaMensal / ANOMESES) Then
Vidatil = Int(Vidatil + 1) ' Arredonda para o ano mais prximo.
End If
DeprP = SLN(CustoInicial, ValorDoSalvamento, Vidatil)
MsgBox "A depreciao " & Format(DeprP, Fmt) & " por ano."

Funes Internas

134

Exemplo da funo SYD


Este exemplo utiliza a funo SYD para retornar a depreciao de um bem por um perodo especificado, fornecidos o custo
inicial do bem (CustoInicial), o valor do salvamento ao fim da vida til do bem (ValorDoSalvamento) e a vida total do bem
em anos (Vidatil). O perodo em anos pelo qual a depreciao calculada DeprP.
Dim Fmt, CustoInicial, ValorDoSalvamento, VidaMensal, Vidatil, AnoDep, DeprP
Const ANOMESES = 12
' Nmero de meses em um ano.
Fmt = "###,##0.00" ' Define o formato monetrio.
CustoInicial = InputBox("Qual o custo inicial do bem?")
ValorDoSalvamento = InputBox("Qual o valor do bem no fim da sua vida?")
VidaMensal = InputBox("Qual a vida til do bem em meses?")
Do While VidaMensal < ANOMESES ' Certifica-se de que o perodo >= 1 ano.
MsgBox "A vida do bem deve ser de um ano ou mais."
VidaMensal = InputBox("Qual a vida til do bem em meses?")
Loop
Vidatil = VidaMensal / ANOMESES ' Converte os meses em anos.
If Vidatil <> Int(VidaMensal / ANOMESES) Then
Vidatil = Int(Vidatil + 1) ' Arredonda para o anos mais prximo.
End If
AnoDep = CInt(InputBox("Para qual ano voc deseja a depreciao?"))
Do While AnoDep < 1 Or AnoDep > Vidatil
MsgBox "Voc deve inserir no mnimo 1 mas no mais de " & Vidatil
AnoDep = CInt(InputBox("Para qual ano voc deseja a depreciao?"))
Loop
DeprP = SYD(CustoInicial, ValorDoSalvamento, Vidatil, AnoDep)
MsgBox "A depreciao por ano " & AnoDep & " " & Format(DeprP, Fmt) & "."

Funo DDB
Retorna um Double que especifica a depreciao de um ativo para um perodo de tempo especfico utilizando o mtodo de
balano de declinao dupla ou algum outro mtodo que voc especifique.
Sintaxe
DDB(cost, salvage, life, period[,factor])
A funo DDB possui estes argumentos nomeados:
Parte
Descrio
cost
Obrigatrio. Double que especifica o custo inicial do ativo.
salvage
Obrigatrio. Double que especifica o valor do ativo ao final de sua vida
til.
life
Obrigatrio. Double que especifica a durao da vida til do ativo.
period
Obrigatrio. Double que especifica o perodo em que a depreciao do
ativo calculada.
factor
Opcional. Variant que especifica a taxa na qual o balano declina. Se for
omitido, supe-se 2 (mtodo de declinao dupla).
Comentrios
O mtodo de balano de declinao dupla calcula a depreciao a uma taxa acelerada. A depreciao mais alta no
primeiro perodo e diminui nos perodos sucessivos.
Os argumentos life e period devem ser expressos nas mesmas unidades. Por exemplo, se life for dado em meses, period
tambm deve ser dado em meses. Todos os argumentos devem ser nmeros positivos.
A funo DDB utiliza a seguinte frmula para calcular a depreciao para um dado perodo:
Depreciao / period = ((cost salvage) * factor) / life

Funo FV
Retorna um Double que especifica o valor futuro de uma anuidade com base em pagamentos fixos peridicos e uma taxa
de juros fixa.
Sintaxe
FV(rate, nper, pmt[, pv[, type]])
A funo FV tem os seguintes argumentos nomeados:
Parte Descrio
rate
Obrigatrio. Double que especifica a taxa de juros por perodo. Por exemplo,
se voc obtiver um financiamento para um carro com uma taxa de
porcentagem anual (TPA) de 10 porcento e efetuar pagamentos mensais, a
taxa por perodo ser de 0,1/12 ou 0,0083.
nper
Obrigatrio. Integer que especifica o nmero total de perodos de pagamento
na anuidade. Por exemplo, se voc pagar prestaes mensais de um
financiamento de quatro anos para um carro, seu emprstimo ter um total de
4 * 12 (ou 48) perodos de pagamento.
pmt
Obrigatrio. Double que especifica o pagamento a ser efetuado em cada
Funes Internas

135

pv

type

perodo. Os pagamentos geralmente contm o principal e a taxa de juros que


no se altera durante a durao da anuidade.
Opcional. Variant que especifica o valor presente (ou quantia global) de uma
srie de pagamentos futuros. Por exemplo, quando voc obtm um
financiamento para comprar um carro, a quantia do emprstimo o valor
presente para o emprestador dos pagamentos mensais do carro que voc
efetuar. Se for omitido, ser assumido o valor 0.
Opcional. Variant que especifica quando vencem os pagamentos. Use 0 se
os pagamentos vencerem no final do perodo de pagamento ou 1 se os
pagamentos vencerem no incio do perodo. Se for omitido, ser assumido o
valor 0.

Comentrios
Uma anuidade uma srie de pagamentos monetrios fixos efetuados durante um perodo de tempo. A anuidade pode um
emprstimo (como um financiamento imobilirio) ou um investimento (como uma poupana mensal).
Os argumentos rate e nper devem ser calculados usando-se perodos de pagamento expressos nas mesmas unidades.
Por exemplo, se a rate for calculada usando meses, nper tambm deve ser calculado usando meses.
Para todos os argumentos, a quantia paga (como depsitos em poupana) representada por valores negativos; a quantia
recebida (como cheques de dividendos) representada por nmeros positivos.

Funes Internas

136

Funo IPmt
Retorna um Double que especifica o pagamento de juros em um dado perodo de uma anuidade com base em
pagamentos fixos, peridicos e uma taxa de juros fixa.
Sintaxe
IPmt(rate, per, nper, pv[, fv[, type]])
A funo IPmt tem os seguintes argumentos nomeados:
Parte Descrio
rate
Obrigatrio. Double que especifica a taxa de juros por perodo. Por exemplo,
se voc obtiver um financiamento para um carro a uma taxa de porcentagem
anual (TPA) de 10 porcento e fizer pagamentos mensais, a taxa por perodo
ser de 0,1/12 ou 0,0083.
per
Obrigatrio. Double que especifica o perodo de pagamento no intervalo de 1
at nper.
nper
Obrigatrio. Double que especifica o nmero total de perodos de pagamento
na anuidade. Por exemplo, se voc fizer pagamentos mensais por um
financiamento de carro de quatro anos, seu emprstimo ter um total de 4 *
12 (ou 48) perodos de pagamento.
pv
Obrigatrio. Double que especifica o valor presente, ou valor de hoje, de uma
srie de pagamentos ou recebimentos futuros. Por exemplo, quando voc
obtm uma quantia emprestada para comprar um carro, essa quantia o
valor presente para o emprestador dos pagamentos mensais do carro que
voc efetuar.
fv
Opcional. Variant que especifica o valor futuro ou o saldo desejado aps ter
efetuado o pagamento final. Por exemplo, o valor futuro de um emprstimo
de R$ 0,00 porque esse o valor aps o pagamento final. Contudo, se voc
quiser poupar R$ 50.000 em um perodo de 18 anos para garantir a educao
de seu filho, ento o valor futuro R$ 50.000. Se for omitido, ser assumido
0.
type
Opcional. Variant que especifica quando vencero os pagamentos. Use 0 se
os pagamentos vencerem no final do perodo, ou 1 se vencerem no incio do
perodo. Se for omitido, ser assumido 0.
Comentrios
Uma anuidade uma srie de pagamentos monetrios fixos efetuados em um perodo. A anuidade pode ser um
emprstimo (como um financiamento imobilirio) ou um investimento (como uma poupana mensal).
Os argumentos rate e nper devem ser calculados usando-se perodos de pagamento expressos na mesma unidade. Por
exemplo, se rate for calculada usando meses, nper tambm deve ser calculado usando meses.
Para todos os argumentos, o valor monetrio pago (como depsitos em poupana) representado por nmeros negativos;
o valor monetrio recebido (como cheques de dividendos) representado por nmeros positivos.

Funo IRR
Retorna um Double que especifica uma taxa interna de retorno para uma srie de fluxos de caixa peridicos (pagamentos
e recebimentos).
Sintaxe
IRR(values()[, guess])
A funo IRR tem os seguintes argumentos nomeados:
Parte
Descrio
values()
Obrigatrio. Matriz de Double que especifica valores de fluxo de caixa. A
matriz deve conter pelo menos um valor negativo (um pagamento) e um
valor positivo (um recebimento).
guess
Opcional. Variant que especifica o valor por voc estimado que IRR
retornar. Se for omitido, guess ser 0.1 (10 porcento).
Comentrios
A taxa de retorno interna a taxa de juros recebida para um investimento consistindo em pagamentos e recebimentos que
ocorrem a intervalos regulares.
A funo IRR utiliza a ordem dos valores dentro da matriz para interpretar a ordem de pagamentos e recebimentos.
Certifique-se de inserir os valores dos seus pagamentos e recebimentos na seqncia correta. O fluxo de caixa de cada
perodo no precisa ser fixo, como com a anuidade.
IRR calculado por iterao. Comeando com o valor de guess, IRR calcula vrias vezes at que o resultado seja exato
dentro de 0,00001 porcento. Se IRR no puder encontrar um resultado aps 20 tentativas, ele falhar.

Funo MIRR
Retorna um Double que especifica a taxa interna de retorno modificada de uma srie de fluxos de caixa peridicos
(pagamentos e recebimentos).
Sintaxe
MIRR(values(), finance_rate, reinvest_rate)
A funo MIRR tem os seguintes argumentos nomeados:
Funes Internas

137

Parte
values()
finance_rate
reinvest_rate

Descrio
Obrigatrio. Matriz de Double que especifica os valores de fluxo de
caixa. A matriz deve conter pelo menos um valor negativo (um
pagamento) e um valor positivo (um recebimento).
Obrigatrio. Double que especifica a taxa de juros paga como custo
do financiamento.
Obrigatrio. Double que especifica a taxa de juros recebida em
ganhos do reinvestimento monetrio.

Comentrios
A taxa interna de retorno modificada a taxa interna de retorno quando os pagamentos e recebimentos so financiados
com taxas diferentes. A funo MIRR leva em conta o custo do investimento (finance_rate) e a taxa de juros recebida no
reinvestimento do dinheiro (reinvest_rate).
Os argumentos finance_rate e reinvest_rate so porcentagens expressas em valores decimais. Por exemplo, 12 porcento
expresso como 0,12.
A funo MIRR usa a ordem dos valores dentro da matriz para interpretar a ordem dos pagamentos e recebimentos.
Certifique-se de inserir os valores dos seus pagamentos e recebimentos na seqncia correta.

Funes Internas

138

Funo NPer
Retorna um Double que especifica o nmero de perodos para uma anuidade com base em pagamentos fixos e peridicos
e uma taxa de juros fixa.
Sintaxe
NPer(rate, pmt, pv [, fv [, type]])
A funo NPer tem os seguintes argumentos nomeados:
Parte Descrio
rate
Obrigatrio. Double que especifica a taxa de juros por perodo. Por exemplo,
se voc obtiver um financiamento para um carro a uma taxa de porcentagem
anual (TPA) de 10 porcento e efetuar pagamentos mensais, a taxa por
perodo ser de 0,1/12 ou 0,0083.
pmt
Obrigatrio. Double que especifica o pagamento a ser efetuado a cada
perodo. Os pagamentos geralmente contm o principal e os juros que no se
alteram durante a durao da anuidade.
pv
Obrigatrio. Double que especifica o valor presente, ou valor de hoje, de uma
srie de pagamentos ou recebimentos futuros. Por exemplo, quando voc
obtm um financiamento para comprar um carro, a quantia do emprstimo o
valor presente para o emprestador dos pagamentos mensais do carro que
voc efetuar.
fv
Opcional. Variant que especifica o valor futuro ou o saldo que voc deseja
aps ter efetuado o pagamento final. Por exemplo, o valor futuro de um
emprstimo de R$ 0,00 porque esse o valor aps o pagamento final.
Contudo, se voc quiser poupar R$ 50.000 em 18 anos para garantir a
educao de seu filho, ento R$ 50.000 ser o valor futuro. Se for omitido,
ser assumido o valor 0.
type
Opcional. Variant que especifica o vencimento dos pagamentos. Use 0 se os
pagamentos vencerem ao final do perodo de pagamento, ou 1 se vencerem
no incio desse perodo. Se for omitido, ser assumido o valor 0.
Comentrios
Uma anuidade uma srie de pagamentos monetrios fixos efetuados em um perodo de tempo. A anuidade pode ser um
emprstimo (como um financiamento imobilirio) ou um investimento (como uma poupana mensal).
Para todos os argumentos, o valor pago (como depsitos em poupana) representado por nmeros negativos; o valor
recebido (como cheques de dividendos) representado por nmeros positivos.

Funo NPV
Retorna um Double que especifica o valor presente lquido de um investimento com base em uma srie de fluxos de caixa
peridicos (pagamentos e recebimentos) e a taxa de desconto.
Sintaxe
NPV(rate, values())
A funo NPV tem os seguintes argumentos nomeados:
Parte
Descrio
rate
Obrigatrio. Double que especifica a taxa de desconto em um perodo,
expresso na forma de valor decimal.
values()
Obrigatrio. Matriz de Double que especifica os valores de fluxo de
caixa. A matriz deve conter pelo menos um valor negativo (um
pagamento) e um valor positivo (um recebimento).
Comentrios
O valor presente lquido de um investimento o valor atual de uma futura srie de pagamentos ou recebimentos.
A funo NPV usa a ordem dos valores dentro da matriz para interpretar a ordem dos pagamentos ou recebimentos.
Certifique-se de fornecer os valores de seu pagamento e recebimento na seqncia correta.
O investimento NPV comea um perodo antes da data do primeiro valor de fluxo de caixa e termina com o ltimo valor de
fluxo de caixa da matriz.
O clculo do valor presente lquido baseado nos fluxos de caixa futuros. Se o seu primeiro fluxo de caixa ocorrer no incio
do primeiro perodo, o primeiro valor dever ser adicionado ao valor retornado por NPV e no deve ser includo nos valores
de fluxo de caixa values().
A funo NPV semelhante funo PV (valor presente) exceto que a funo PV permite que os fluxos de caixa comecem
no final ou no incio do perodo. Ao contrrio dos valores varveis de fluxo de caixa NPV, os fluxos de caixa PV devem ser
fixos durante o investimento.

Funo Pmt
Retorna um Double que especifica o pagamento de uma anuidade com base em pagamentos fixos, peridicos e uma taxa
de juros fixa.
Sintaxe
Pmt(rate, nper, pv [, fv [, type]])
A funo Pmt tem os seguintes argumentos nomeados:
Parte Descrio

Funes Internas

139

rate

nper

pv

fv

type

Obrigatrio. Double que especifica a taxa de juros por perodo. Por exemplo,
se voc obtiver um financiamento para um carro a uma taxa percentual anual
(TPA) de 10 porcento e efetuar pagamentos mensais, a taxa do perodo ser
de 0,1/12, ou 0,0083.
Obrigatrio. Integer que especifica o nmero total de perodos de pagamento
na anuidade. Por exemplo, se voc efetuar pagamentos mensais sobre um
financiamento de quatro anos para um carro, seu financiamento ter um total
de 4 * 12 (ou 48) perodos de pagamento.
Obrigatrio. Double que especifica o valor presente (ou a quantia global) que
uma srie de pagamentos a serem feitos no futuro valem agora. Por exemplo,
quando voc obtm um financiamento para comprar um carro, a quantia do
financiamento o valor presente para o emprestador dos pagamentos
mensais do carro que voc efetuar.
Opcional. Variant que especifica o valor futuro ou o saldo desejado aps ter
efetuado o pagamento final. Por exemplo, o valor futuro de um emprstimo
de R$ 0,00 porque esse seu valor aps o pagamento final. Contudo, se
voc quiser poupar R$ 50.000 em um perodo de 18 anos para garantir a
educao de seu filho, ento R$ 50.000 ser o valor futuro. Se for omitido,
ser assumido o valor 0.
Opcional. Variant que especifica o vencimento dos pagamentos. Use 0 se os
pagamentos vencerem ao final do perodo de pagamento, ou 1 se vencerem
no incio do perodo. Se for omitido, ser assumido o valor 0.

Comentrios
Uma anuidade uma srie de pagamentos fixos a serem efetuados em um perodo. A anuidade pode ser um emprstimo
(como um financiamento imobilirio) ou um investimento (como uma poupana mensal).
Os argumentos rate e nper devem ser calculados usado-se perodos de pagamento expressos nas mesmas unidades. Por
exemplo, se rate for calculada usando meses, nper tambm deve ser calculado usando meses.
Para todos os argumentos, o valor pago (como depsitos em uma poupana) representado por nmeros negativos; o
valor recebido (como cheques de dividendos) representado por nmeros positivos.

Funo PPmt
Retorna um Double que especifica o pagamento principal por um dado perodo de uma anuidade com base em
pagamentos fixos e uma taxa de juros fixa.
Sintaxe
PPmt(rate, per, nper, pv [, fv [, type]])
A funo PPmt tem os seguintes argumentos nomeados:
Parte Descrio
rate
Obrigatrio. Double que especifica a taxa de juros por perodo. Por exemplo,
se voc obtiver um financiamento para um carro a uma taxa de porcentagem
anual (TPA) de 10 porcento e efetuar pagamentos mensais, a taxa por
perodo ser de 0,1/12, ou 0,0083.
per
Obrigatrio. Integer que especifica o perodo de pagamento no intervalo de 1
at nper.
nper
Obrigatrio. Integer que especifica o nmero total de perodos de pagamento
na anuidade. Por exemplo, se voc efetuar pagamentos mensais sobre um
financiamento de quatro anos para um carro, seu emprstimo ter um total de
4 * 12 (ou 48) perodos de pagamento.
pv
Obrigatrio. Double que especifica o valor presente, ou valor de hoje, de uma
srie de pagamentos ou recebimentos futuros. Por exemplo, quando voc
obtm um financiamento para comprar um carro, a quantia do financiamento
o valor presente para o emprestador dos pagamentos mensais do carro que
voc efetuar.
fv
Opcional. Variant que especifica o valor futuro ou o saldo do valor monetrio
desejado aps ter efetuado o pagamento final. Por exemplo, o valor futuro de
um emprstimo de R$ 0,00 porque esse o valor aps o pagamento final.
Contudo, se voc quiser poupar R$ 50.000 em 18 anos para garantir a
educao de seu filho, ento R$ 50.000 ser o valor futuro. Se for omitido,
ser assumido o valor 0.
type
Opcional. Variant que especifica o vencimento dos pagamentos. Use 0 se os
pagamentos vencerem no final do perodo de pagamento, ou 1 se vencerem
no incio desse perodo. Se for omitido, ser assumido o valor 0.
Comentrios
Uma anuidade uma srie de pagamentos fixos efetuados em um perodo. Ela pode ser um emprstimo (como um
financiamento imobilirio) ou um investimento (como uma poupana mensal).
Os argumentos rate e nper devem ser calculados usando-se perodos de pagamento expressos nas mesmas unidades.
Por exemplo, se a rate for calculada usando meses, nper deve tambm ser calculado usando meses.
Para todos os argumentos, o valor pago (como depsitos em poupana) representado por nmeros negativos; o valor
recebido (como cheque de dividendo) representado por nmeros positivos.
Funes Internas

140

Funo PV
Retorna um Double que especifica o valor presente de uma anuidade com base em pagamentos fixos peridicos a serem
pagos no futuro e taxas de juros fixas.
Sintaxe
PV(rate, nper, pmt[, fv[, type]])
A funo PV tem os seguintes argumentos nomeados:
Parte Descrio
rate
Obrigatrio. Double que especifica a taxa de juros por perodo. Por exemplo,
se voc obtiver um financiamento para um carro a uma taxa de porcentagem
anual (TPA) de 10 porcento e efetuar pagamentos anuais, a taxa por perodo
de 0,1/12 ou 0,0083.
nper
Obrigatrio. Integer que especifica o nmero total de perodos de pagamento
da anuidade. Por exemplo, se voc efetuar pagamentos mensais sobre um
financiamento de quatro anos para um carro, seu emprstimo ter um total de
4 * 12 (ou 48) perodos de pagamento.
pmt
Obrigatrio. Double que especifica o pagamento a ser efetuado a cada
perodo. Os pagamentos normalmente contm o principal e os juros que no
se alteram durante o perodo de durao da anuidade.
fv
Opcional. Variant que especifica o valor futuro ou o saldo do valor monetrio
desejado aps ter efetuado o pagamento final. Por exemplo, o valor futuro de
um emprstimo de R$ 0,00 porque esse o valor aps o pagamento final.
Contudo, se voc quiser poupar R$ 50.000 em 18 anos para garantir a
educao de seu filho, ento R$ 50.000 ser o valor futuro. Se for omitido,
ser assumido o valor 0.
type
Opcional. Variant que especifica o vencimento dos pagamentos. Use 0 se os
pagamentos vencerem ao final do perodo de pagamento, ou 1 se vencerem
no incio desse perodo. Se for omitido, ser assumido o valor 0.
Comentrios
Uma anuidade uma srie de pagamentos monetrios fixos efetuados em um perodo de tempo. A anuidade pode ser um
emprstimo (como um financiamento imobilirio) ou um investimento (como uma poupana mensal).
Os argumentos rate e nper devem ser calculados usando-se perodos de pagamento expressos nas mesmas unidades.
Por exemplo, se a rate for calculada usando meses, nper tambm deve ser calculado usando meses.
Para todos os argumentos, o valor pago (como depsitos em poupana) representado por nmeros negativos; o valor
recebido (como cheques de dividendos) representado por nmeros positivos.

Funes Internas

141

Funo Rate
Retorna um Double que especifica a taxa de juros por perodo da anuidade.
Sintaxe
Rate(nper, pmt, pv [, fv[, type[, guess]]])
A funo Rate tem os seguintes argumentos nomeados:
Parte
Descrio
nper
Obrigatrio. Double que especifica o nmero total de perodos de
pagamento da anuidade. Por exemplo, se voc efetuar pagamentos
mensais sobre um financiamento de quatro anos para um carro, seu
financiamento possuir um total de 4 * 12 (ou 48) perodos de pagamento.
pmt
Obrigatrio. Double que especifica o pagamento a ser efetuado a cada
perodo. Os pagamentos geralmente contm o principal e os juros que no
se alteram durante a durao da anuidade.
pv
Obrigatrio. Double que especifica o valor presente, ou o valor de hoje, de
uma srie de pagamentos ou recebimentos futuros. Por exemplo, quando
voc obtiver um financiamento para comprar um carro, a quantia do
financiamento o valor presente para o emprestador dos pagamentos
mensais do carro que voc efetuar.
fv
Opcional. Variant que especifica o valor futuro ou o saldo desejado aps ter
efetuado o pagamento final. Por exemplo, o valor futuro de um emprstimo
de R$ 0,00 porque esse o valor aps o pagamento final. Contudo, se
voc quiser poupar R$ 50.000 em 18 anos para garantir a educao de seu
filho, ento R$ 50.000 ser o valor futuro. Se for omitido, ser assumido o
valor 0.
type
Opcional. Variant que especifica um nmero indicando o vencimento dos
pagamentos. Use 0 se os pagamentos vencerem ao final do perodo de
pagamento, ou 1 se vencerem no incio desse perodo. Se for omitido, ser
assumido o valor 0.
guess
Opcional. Variant que especifica o valor por voc estimado que ser
retornado por Rate. Se for omitido, guess ter o valor de 0,1 (10 porcento).
Comentrios
Uma anuidade uma srie de pagamentos monetrios fixos efetuados em um perodo de tempo. A anuidade pode ser um
emprstimo (como um financiamento imobilirio) ou um investimento (como uma poupana mensal).
Para todos os argumentos, o valor pago (como depsitos em poupana) representado por nmeros negativos; o valor
recebido (como cheques de dividendos) representado por nmeros positivos.
Rate calculado por iterao. Comeando com o valor guess, Rate calcula vrias vezes at que o resultado seja exato
dentro de 0,00001 porcento. Se Rate no puder encontrar um resultado aps 20 tentativas, ele falhar. Se sua estimativa
for de 10 porcento e Rate falhar, tente um valor diferente para guess.

Funes Internas

142

Funo SLN
Retorna um Double que especifica uma depreciao em linha reta de um ativo para um perodo nico.
Sintaxe
SLN(cost, salvage, life)
A funo SLN tem os seguintes argumentos nomeados:
Parte
Descrio
cost
Obrigatrio. Double que especifica o custo inicial do ativo.
salvage
Obrigatrio. Double que especifica o valor do ativo ao final de sua vida
til.
life
Obrigatrio. Double que especifica a durao da vida til do ativo.
Comentrios
O perodo de depreciao deve ser expresso na mesma unidade que o argumento life. Todos os argumentos devem ser
nmeros positivos.

Funo SYD
Retorna um Double que especifica a depreciao dos dgitos da soma dos anos de um ativo para um perodo especificado.
Sintaxe
SYD(cost, salvage, life, period)
A funo SYD tem os seguintes argumentos nomeados:
Parte
Descrio
cost
Obrigatrio. Double que especifica o custo inicial do ativo.
salvage
Obrigatrio. Double que especifica o valor do ativo ao final de sua vida
til.
life
Obrigatrio. Double que especifica a durao da vida til do ativo.
period
Obrigatrio. Double que especifica o perodo no qual a depreciao do
ativo calculada.
Comentrios
Os argumentos life e period devem ser expressos nas mesmas unidades. Por exemplo, se life for dado em meses, period
tambm deve ser dado em meses. Todos os argumentos devem ser nmeros positivos.

Funes Internas

143

Exemplo da funo IsArray


Este exemplo utiliza a funo IsArray para verificar se uma varivel uma matriz.
Dim MinhaMatriz(1 To 5) As Integer, SuaMatriz, MeuControle ' Declara as variveis de matriz.
SuaMatriz = Array(1, 2, 3) ' Utiliza a funo Array.
MeuControle = IsArray(MinhaMatriz) ' Retorna True.
MeuControle = IsArray(SuaMatriz) ' Retorna True.
Exemplo da funo IsDate
Este exemplo utiliza a funo IsDate para determinar se uma expresso pode ser convertida em uma data.
Dim MinhaData, SuaData, SemData, MeuControle
MinhaData = "12 de Fevereiro de 1969": SuaData = #2/12/69#: SemData = "Al"
MeuControle = IsDate(MinhaData) ' Retorna True.
MeuControle = IsDate(SuaData) ' Retorna True.
MeuControle = IsDate(SemData) ' Retorna False.
Exemplo da funo IsEmpty
Este exemplo utiliza a funo IsEmpty para determinar se uma varivel foi inicializada.
Dim MinhaVar, MeuControle
MeuControle = IsEmpty(MinhaVar) ' Retorna True.
MinhaVar = Null
' Atribui Null.
MeuControle = IsEmpty(MinhaVar)

' Retorna False.

MinhaVar = Empty ' Atribui Empty.


MeuControle = IsEmpty(MinhaVar)

' Retorna True.

Exemplo da funo IsError


Este exemplo utiliza a funo IsError para verificar se uma expresso numrica um valor de erro. A funo CVErr
utilizada para retornar uma Error Variant de uma funo definida pelo usurio. Suponha que FunoDoUsurio um
procedimento de funo definido pelo usurio que retorna um valor de erro; por exemplo, um valor de retorno atribudo com
a instruo FunoDoUsurio = CVErr(32767), onde 32767 um nmero definido pelo usurio.
Dim ValorDeRetorno, MeuControle
ValorDeRetorno = FunoDoUsurio()
MeuControle = IsError(ValorDeRetorno) ' Retorna True.

Funes Internas

144

Exemplo da funo IsMissing


Este exemplo utiliza a funo IsMissing para verificar se um argumento opcional foi passado a um procedimento definido
pelo usurio. Observe que os argumentos Optional agora podem ter valores e tipos padro diferentes de Variant.
Dim ValorDeRetorno
' As instrues a seguir chamam o procedimento de funo definido pelo usurio.
ValorDeRetorno = RetornaDobrado() ' Retorna Null.
ValorDeRetorno = RetornaDobrado(2)
' Retorna 4.
' Definio do procedimento de funo.
Function RetornaDobrado(Optional A)
If IsMissing(A) Then
' Se o argumento estiver ausente, retorna um Null.
RetornaDobrado = Null
Else
' Se o argumento estiver presente, retorna duas vezes o valor.
RetornaDobrado = A * 2
End If
End Function
Exemplo da funo IsNull
Este exemplo utiliza a funo IsNull para determinar se uma varivel contm um Null.
Dim MinhaVar, MeuControle
MeuControle = IsNull(MinhaVar) ' Retorna False.
MinhaVar = ""
MeuControle = IsNull(MinhaVar) ' Retorna False.
MinhaVar = Null
MeuControle = IsNull(MinhaVar) ' Retorna True.
Exemplo da funo IsNumeric
Este exemplo utiliza a funo IsNumeric para determinar se uma varivel pode ser avaliada como um nmero.
Dim MinhaVar, MeuControle
MinhaVar = "53"
' Atribui o valor.
MeuControle = IsNumeric(MinhaVar) ' Retorna True.
MinhaVar = "459,95"
' Atribui o valor.
MeuControle = IsNumeric(MinhaVar) ' Retorna True.
MinhaVar = "Ajuda 45" ' Atribui o valor.
MeuControle = IsNumeric(MinhaVar) ' Retorna False.

Funes Internas

145

Exemplo da funo IsObject


Este exemplo utiliza a funo IsObject para determinar se um identificador representa uma varivel de objeto. MeuObjeto
and SeuObjeto so variveis de objeto do mesmo tipo. So nomes genricos utilizados somente com fins ilustrativos.
Dim MeuInt As Integer, SeuObjeto, MeuControle
' Declara as variveis.
Dim MeuObjeto As Object
Set SeuObjeto = MeuObjeto ' Atribui uma referncia a objeto.
MeuControle = IsObject(SeuObjeto) ' Retorna True.
MeuControle = IsObject(MeuInt) ' Retorna False.
Exemplo da funo TypeName
Este exemplo utiliza a funo TypeName para retornar informaes sobre uma varivel.
' Declara as variveis.
Dim VarNula, MeuTipo, VarSeq As String, VarInt As Integer, VarAtual As Currency
Dim VarMatriz (1 To 5) As Integer
VarNula = Null ' Atribui o valor Null.
MeuTipo = TypeName(VarSeq) ' Retorna "String".
MeuTipo = TypeName(VarInt)
' Retorna "Integer".
MeuTipo = TypeName(VarAtual) ' Retorna "Currency".
MeuTipo = TypeName(VarNula) ' Retorna "Null".
MeuTipo = TypeName(VarMatriz)
' Retorna "Integer()".
Exemplo da funo VarType
Este exemplo utiliza a funo VarType para determinar o subtipo de uma varivel.
Dim VarInt, VarSeq, VarData, MeuControle
' Inicializa as variveis.
VarInt = 459: VarSeq = "Al Mundo": VarData = #2/12/69#
MeuControle = VarType(VarInt) ' Retorna 2.
MeuControle = VarType(VarData)
' Retorna 7.
MeuControle = VarType(VarSeq) ' Retorna 8.

Funo IsArray
Retorna um valor Boolean que indica se uma varivel uma matriz.
Sintaxe
IsArray(nomedavar)
O argumento obrigatrio nomedavar um identificador que especifica uma varivel.
Comentrios
IsArray retornar True se a varivel for uma matriz; caso contrrio, retornar False. IsArray especialmente til com
variantes que contm matrizes.

Funes Internas

146

Funo IsDate
Retorna um valor Boolean que indica se uma expresso pode ser convertida em uma data.
Sintaxe
IsDate(expresso)
O argumento obrigatrio expresso um Variant que contm uma expresso de data ou expresso de seqncia que pode
ser reconhecida como uma data ou hora.
Comentrios
IsDate retornar True se a expresso for uma data ou puder ser convertida em uma data vlida; caso contrrio, retornar
False. No Microsoft Windows, o intervalo de datas vlidas 1 de janeiro de 100 A.D. a 31 de dezembro de 9999 A.D. Os
intervalos podem variar de um sistema operacional para outro.

Funo IsEmpty
Retorna um valor Boolean que indica se uma varivel foi inicializada.
Sintaxe
IsEmpty(expresso)
O argumento obrigatrio expresso um Variant que contm uma expresso numrica ou expresso de seqncia.
Entretanto, por ser IsEmpty utilizado para determinar se variveis individuais so inicializadas, o argumento expresso
geralmente um nome de varivel nica.
Comentrios
IsEmpty retornar True se a varivel no tiver sido inicializada ou se tiver sido explicitamente definida como Empty; caso
contrrio, retornar False. Se expresso contiver mais de uma varivel, False sempre ser retornado. IsEmpty retorna
somente informaes significativas para variantes.

Funo IsError
Retorna um valor Boolean que indica se uma expresso um valor de erro.
Sintaxe
IsError(expresso)
O argumento obrigatrio expresso deve ser uma Variant do tipo VarType vbError.
Comentrios
Os valores de erro so criados pela converso de nmeros reais em valores de erro utilizando a funo CVErr. A funo
IsError utilizada para determinar se uma expresso numrica representa um erro. IsError retornar True se o argumento
expresso indicar um erro. Caso contrrio, retornar False. IsError retorna somente informaes significativas para
variantes de VarType vbError.

Funes Internas

147

Funo IsMissing
Retorna um valor Boolean que indica se um argumento Variant opcional foi passado para um procedimento.
Sintaxe
IsMissing(nomedoarg)
O argumento obrigatrio nomedoarg contm o nome de um argumento de procedimento Variant opcional.
Comentrios
Utilize a funo IsMissing para detectar se argumentos Variant opcionais foram fornecidos ou no na chamada de um
procedimento. IsMissing retornar True se nenhum valor tiver sido passado para o argumento especificado. Caso
contrrio, retornar False. Se IsMissing retornar True para um argumento, a utilizao do argumento ausente em outro
cdigo pode gerar um erro definido pelo usurio. Se IsMissing for utilizado em um argumento ParamArray, ele sempre
retornar False. Para detectar um ParamArray vazio, faa um teste para ver se o limite superior da matriz menor que seu
limite inferior.

Funo IsNull
Retorna um valor Boolean que indica se uma expresso contm dados que no so vlidos (Null).
Sintaxe
IsNull(expresso)
O argumento obrigatrio expresso um Variant que contm uma expresso numrica ou expresso de seqncia.
Comentrios
IsNull retornar True se expresso for Null; caso contrrio, IsNull retornar False. Se expresso consistir em mais de uma
varivel, Null em qualquer varivel constituinte far com que True seja retornado para a expresso inteira.
O valor Null indica que Variant contm dados que no so vlidos. Null no igual a Empty, o que indica que uma
varivel ainda no foi inicializada. Ele tambm no igual a uma seqncia de comprimento zero (""), que, algumas vezes,
referida como seqncia nula.
Importante Utilize a funo IsNull para determinar se uma expresso contm um valor Null. Expresses que voc
esperaria serem avaliadas como True em algumas circunstncias, como If Var = Null and If Var <> Null, so sempre False.
Isto acontece porque qualquer expresso que contenha um Null por si mesma Null e, portanto, False.

Funo IsNumeric
Retorna um valor Boolean que indica se uma expresso pode ser avaliada como um nmero.
Sintaxe
IsNumeric(expresso)
O argumento obrigatrio expresso um Variant que contm uma expresso numrica ou expresso de seqncia.
Comentrios
IsNumeric retornar True se a expresso inteira for reconhecida como um nmero; caso contrrio, retornar False.
IsNumeric retornar False se expresso for uma expresso de data.

Funo IsObject
Retorna um valor Boolean que indica se um identificador representa uma varivel de objeto.
Sintaxe
IsObject(identificador)
O argumento obrigatrio identificador um nome de varivel.
Comentrios
IsObject til somente para determinar se um Variant do VarType vbObject. Isto poderia ocorrer se Variant realmente
se referisse (ou se j se referiu) a um objeto ou se contiver Nothing.
IsObject retornar True se identificador for uma varivel declarada com o tipo Object ou qualquer tipo de classe vlido, ou
se identificador for um Variant de VarType vbObject, ou um objeto definido pelo usurio; caso contrrio, retornar False.
IsObject retornar True mesmo que a varivel tenha sido definida como Nothing.
Utilize a interceptao de erro para se certificar de que a referncia a um objeto vlida.

Funo TypeName
Retorna uma String que fornece informaes sobre uma varivel.
Sintaxe
TypeName(nomedavar)
O argumento obrigatrio nomedavar uma Variant que contm qualquer varivel, exceto a de tipo definido pelo usurio.
Comentrios
A seqncia de caracteres retornada por TypeName pode ser qualquer uma das seguintes:
Seqncia
deVarivel
caracteres retornada
tipo de objeto
Um objeto cujo tipo tipodeobjeto
Byte
Valor em bytes
Integer
Nmero inteiro
Long
Inteiro longo
Single
Nmero de vrgula flutuante de preciso simples
Funes Internas

148

Double
Currency
Decimal
Date
String
Boolean
Error
Empty
Null
Object
Desconhecido
Nothing

Nmero de vrgula flutuante de preciso dupla


Valor de moeda
Valor decimal
Valor de data
Seqncia de caracteres
Valor booleano
Um valor de erro
No-inicializada
Dados no-vlidos
Um objeto
Um objeto cujo tipo desconhecido
Varivel de objeto que no se refere a um objeto

Se nomedavar for uma matriz, a seqncia de caracteres retornada pode ser qualquer uma das seqncias retornadas
possveis (ou Variant) com parnteses vazios anexados. Por exemplo, se nomedavar for uma matriz de nmeros inteiros,
TypeName retornar "Integer()".

Funo VarType
Retorna um Integer que indica o subtipo de uma varivel.
Sintaxe
VarType(nomedavar)
O argumento obrigatrio nomedavar um Variant que contm qualquer varivel, exceto uma do tipo definido pelo usurio.
Valores de retorno
Constante
Valor
Descrio
vbEmpty
0
Empty (no-inicializada)
vbNull
1
Null (dados no-vlidos)
vbInteger
2
Nmero inteiro
vbLong
3
Inteiro longo
vbSingle
4
Nmero de vrgula flutuante de preciso
simples
vbDouble
5
Nmero de vrgula flutuante de preciso
dupla
vbCurrency
6
Valor de moeda
vbDate
7
Valor da data
vbString
8
Seqncia de caracteres
vbObject
9
Objeto
vbError
10
Valor do erro
vbBoolean
11
Valor booleano
vbVariant
12
Variant (utilizada somente com matrizes de
variantes)
vbDataObject
13
Um objeto de acesso de dados
vbDecimal
14
Valor decimal
vbByte
17
Valor em bytes
vbArray
8192
Matriz
Observao Estas constantes so especificadas pelo Visual Basic para Aplicativos. Os nomes podem ser utilizados em
qualquer parte do seu cdigo no lugar dos valores reais.
Comentrios
A funo VarType nunca retorna o valor de vbArray por si mesma. Ele sempre adicionado a algum outro valor para
indicar uma matriz de um tipo especfico. A constante vbVariant somente retornada em conjunto com vbArray para
indicar que o argumento para a funo VarType uma matriz do tipo Variant. Por exemplo, o valor retornado para uma
matriz de nmeros inteiros calculado como vbInteger + vbArray ou 8194. Se um objeto possui uma propriedade padro,
VarType (objeto) retorna o tipo da propriedade padro do objeto.

Funes Internas

149

Empty
A palavra-chave Empty utilizada como um subtipo de Variant. Ela indica um valor de varivel no inicializada.

False
A palavra-chave False tem valor igual a 0.

Me
A palavra-chave Me comporta-se como uma varivel declarada implicitamente. Ela automaticamente disponvel para cada
procedimento em um mdulo de classe. Quando uma classe pode ter mais de uma instncia, Me proporciona uma forma de
referir a instncia especfica da classe onde o cdigo est sendo executado. O uso de Me particularmente til para passar
informaes sobre a instncia de uma classe que est sendo atualmente executada para um procedimento em um outro
mdulo. Por exemplo, suponha que voc possua o seguinte procedimento em um mdulo:
Sub AlterarCorForm(NomeForm As Form)
NomeForm.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
End Sub
Voc pode chamar esse procedimento e passar a instncia atual da classe do Formulrio como um argumento utilizando a
seguinte instruo:
AlterarCorForm Me

Nothing
A palavra-chave Nothing utilizada para desassociar uma varivel de objeto de um objeto real. Use a instruo Set para
atribuir Nothing a uma varivel de objeto. Por exemplo:
Set MeuObjeto = Nothing
Diversas variveis de objeto podem se referir ao mesmo objeto real. Quando Nothing atribudo a uma varivel de objeto,
essa varivel no far mais referncia ao objeto real. Quando vrias variveis de objeto se referirem ao mesmo objeto, os
recursos de memria e sistema associados ao objeto ao qual as variveis se referem so liberados somente aps todos
eles terem sido definidos como Nothing, usando Set de forma explcita ou implcita aps a ltima varivel de objeto
definida como Nothing sair do escopo.

Null
A palavra-chave Null utilizada como um subtipo de Variant. Ela indica que uma varivel no contm dados vlidos.

True
A palavra-chave True tem valor igual a -1.
Exemplo da funo Abs
Este exemplo utiliza a funo Abs para computar o valor absoluto de um nmero.
Dim MeuNmero
MeuNmero = Abs(50.3)
' Retorna 50.3.
MeuNmero = Abs(-50.3) ' Retorna 50.3.

Funes Internas

150

Exemplo da funo Atn


Este exemplo utiliza a funo Atn para calcular o valor de pi.
Dim pi
pi = 4 * Atn(1) ' Calcula o valor de pi.
Exemplo da funo Cos
Este exemplo utiliza a funo Cos para retornar o co-seno de um ngulo.
Dim Meungulo, MinhaSecante
Meungulo = 1.3 ' Define o ngulo em radianos.
MinhaSecante = 1 / Cos(Meungulo) ' Calcula a secante.
Exemplo da funo Exp
Este exemplo utiliza a funo Exp para retornar e elevado a uma potncia.
Dim Meungulo, MeuSenoH
' Define o ngulo em radianos.
Meungulo = 1.3
' Calcula o seno hiperblico.
MeuSenoH = (Exp(Meungulo) - Exp(-1 * Meungulo)) / 2
Exemplo da funo Int e da funo Fix
Este exemplo ilustra como as funes Int e Fix retornam pores inteiras de nmeros. No caso de um argumento de
nmero negativo, a funo Int retorna o primeiro inteiro negativo menor que ou igual ao nmero; a funo Fix retorna o
primeiro inteiro negativo maior que ou igual ao nmero.
Dim MeuNmero
MeuNmero = Int(99.8) ' Retorna 99.
MeuNmero = Fix(99.2) ' Retorna 99.
MeuNmero = Int(-99.8)
MeuNmero = Fix(-99.8)

' Retorna -100.


' Retorna -99.

MeuNmero = Int(-99.2)
MeuNmero = Fix(-99.2)

' Retorna -100.


' Retorna -99.

Exemplo da funo Log


Este exemplo utiliza a funo Log para retornar o logaritmo natural de um nmero.
Dim Meungulo, MeuLog
' Define o ngulo em radianos.
Meungulo = 1.3
' Calcula o seno hiperblico inverso.
MeuLog = Log(Meungulo + Sqr(Meungulo * Meungulo + 1))

Funes Internas

151

Exemplo da instruo Randomize


Este exemplo utiliza a instruo Randomize para inicializar o gerador de nmeros aleatrios. Como o argumento de
nmero foi omitido, Randomize utiliza o valor de retorno da funo Timer como o novo valor semente.
Dim MeuValor
Randomize
' Inicializa o gerador de nmeros aleatrios.
MeuValor = Int((6 * Rnd) + 1)

' Gera um valor aleatrio entre 1 e 6.

Exemplo da funo Rnd


Este exemplo utiliza a funo Rnd para gerar um valor inteiro aleatrio de 1 a 6.
Dim MeuValor
MeuValor = Int((6 * Rnd) + 1)
' Gera um valor aleatrio entre 1 e 6.
Exemplo da funo Sgn
Este exemplo utiliza a funo Sgn para determinar o sinal de um nmero.
Dim MinhaVar1, MinhaVar2, MinhaVar3, MeuSinal
MinhaVar1 = 12: MinhaVar2 = -2.4: MinhaVar3 = 0
MeuSinal = Sgn(MinhaVar1) ' Retorna 1.
MeuSinal = Sgn(MinhaVar2) ' Retorna -1.
MeuSinal = Sgn(MinhaVar3) ' Retorna 0.
Exemplo da funo Sin
Este exemplo utiliza a funo Sin para retornar o seno de um ngulo.
Dim Meungulo, MinhaCossecante
Meungulo = 1.3 ' Define o ngulo em radianos.
MinhaCossecante = 1 / Sin(Meungulo) ' Calcula a cossecante.
Exemplo da funo Sqr
Este exemplo utiliza a funo Sqr para calcular a raiz quadrada de um nmero.
Dim MinhaRaizQuad
MinhaRaizQuad = Sqr(4)
' Retorna 2.
MinhaRaizQuad = Sqr(23) ' Retorna 4.79583152331272.
MinhaRaizQuad = Sqr(0)
' Retorna 0.
MinhaRaizQuad = Sqr(-4) ' Gera um erro em tempo de execuo.
Exemplo da funo Tan
Este exemplo utiliza a funo Tan para retornar a tangente de um ngulo.
Dim Meungulo, MinhaCotangente
Meungulo = 1.3 ' Define o ngulo em radianos.
MinhaCotangente = 1 / Tan(Meungulo) ' Calcula a cotangente.

Funes Internas

152

Funes matemticas
Funo Abs
Retorna um valor do mesmo tipo que passado para ele especificando o valor absoluto de um nmero.
Sintaxe
Abs(nmero)
O argumento obrigatrio nmero pode ser qualquer expresso numrica vlida. Se nmero contiver Null, ser retornado
Null; se for uma varivel no inicializada, ser retornado zero.
Comentrios
O valor absoluto de um nmero sua magnitude sem sinal. Por exemplo, tanto ABS(-1) como ABS(1) retornam 1.

Funo Atn
Retorna um Double que especifica o arco tangente de um nmero.
Sintaxe
Atn(nmero)
O argumento obrigatrio nmero um Double ou qualquer expresso numrica vlida.
Comentrios
A funo Atn toma a razo entre dois lados de um tringulo retngulo (nmero) e retorna o ngulo correspondente em
radianos. A razo o comprimento do lado oposto ao ngulo dividido pelo comprimento do lado adjacente a ele.
O intervalo do resultado -pi/2 a pi/2 radianos.
Para converter graus em radianos, multiplique graus por pi/180. Para converter radianos em graus, multiplique radianos por
180/pi.
Observao Atn a funo trigonomtrica inversa de Tan, que toma um ngulo como seu argumento e retorna a razo
entre dois lados de um tringulo retngulo. No confunda Atn com a co-tangente, que o inverso simples da tangente
(1/tangente).

Funo Cos
Retorna um Double que especifica o co-seno de um ngulo.
Sintaxe
Cos(nmero)
O argumento obrigatrio nmero um Double ou qualquer expresso numrica vlida que expressa um ngulo em
radianos.
Comentrios
A funo Cos toma um ngulo e retorna a razo entre dois lados de um tringulo retngulo. A razo o comprimento do
lado adjacente ao ngulo dividido pelo comprimento da hipotenusa.
O resultado situa-se no intervalo -1 a 1.
Para converter graus em radianos, multiplique graus por pi/180. Para converter radianos em graus, multiplique radianos por
180/pi.

Funes Internas

153

Funo Exp
Retorna um Double que especifica e (a base dos logaritmos naturais) elevada a uma potncia.
Sintaxe
Exp(nmero)
O argumento obrigatrio nmero um Double ou qualquer expresso numrica vlida.
Comentrios
Se o valor de nmero exceder 709,782712893, ocorrer um erro. A constante e vale aproximadamente 2,718282.
Observao A funo Exp complementa a ao da funo Log e s vezes chamada de antilogaritmo.

Funes Int, Fix


Retornam um valor do tipo passado para ele contendo a parte inteira de um nmero.
Sintaxe
Int(nmero)
Fix(nmero)
argumento obrigatrio nmero um Double ou qualquer expresso numrica vlida. Se nmero contiver Null, retornado
Null.
Comentrios
Tanto Int como Fix removem a parte fracionria de nmero e retornam o valor inteiro resultante.
A diferena entre Int e Fix que, se nmero for negativo, Int retorna o primeiro inteiro negativo que seja menor ou igual a
nmero, enquanto Fix retorna o primeiro inteiro negativo maior ou igual a nmero. Por exemplo, Int converte -8.4 para -9, e
Fix converte -8.4 para -8.
Fix(nmero) equivalente a:
Sgn(nmero) * Int(Abs(nmero))

Funo Log
Retorna um Double que especifica o logaritmo natural de um nmero.
Sintaxe
Log(nmero)
O argumento obrigatrio nmero um Double ou qualquer expresso numrica vlida maior que zero.
Comentrios
O logaritmo natural o logaritmo com base e. A constante e vale aproximadamente 2,718282.
Voc pode calcular logaritmos de base n para qualquer nmero x dividindo o logaritmo natural de x pelo logaritmo natural
de n, como a seguir:
Logn(x) = Log(x) / Log(n)
O exemplo seguinte ilustra um Function personalizada que calcula logaritmos de base 10:
Static Function Log10(X)
Log10 = Log(X) / Log(10#)
End Function

Instruo Randomize
Inicializa o gerador de nmeros aleatrios.
Sintaxe
Randomize [nmero]
O argumento opcional nmero um Variant ou qualquer expresso numrica vlida.
Comentrios
Randomize utiliza nmero para inicializar o gerador de nmeros aleatrios da funo Rnd, dando-lhe um novo valor de
semente. Se voc omitir nmero, o valor retornado pelo cronmetro do sistema ser utilizado como o novo valor de
semente.
Se Randomize no for utilizado, a funo Rnd (sem argumentos) utilizar o mesmo nmero como uma semente a primeira
vez chamada, e da em diante utilizar o ltimo nmero gerado como valor semente.
Observao Para repetir seqncias de nmeros aleatrios, chame Rnd com um argumento negativo imediatamente
antes de utilizar Randomize com um argumento numrico. Utilizar Randomize com o mesmo valor de nmero no repete a
seqncia anterior.

Funo Rnd
Retorna um Single que contm um nmero aleatrio.
Sintaxe
Rnd[(nmero)]
O argumento opcional nmero um Single ou qualquer expresso numrica vlida.
Valores de Retorno
Se nmero for
Rnd gera
Menor que zero
O mesmo nmero todas as vezes, utilizando nmero como

Funes Internas

154

Maior que zero


Igual a zero
No fornecido

semente.
O prximo nmero aleatrio na seqncia.
O nmero gerado mais recentemente.
O prximo nmero aleatrio na seqncia.

Comentrios
A funo Rnd retorna um valor menor que 1, mas maior ou igual a zero.
O valor de nmero determina como Rnd gera um nmero aleatrio:
Para qualquer semente inicial dada, a mesma seqncia de nmeros gerada porque cada chamada que sucede a funo
Rnd utiliza o nmero anterior como semente para o prximo nmero da seqncia.
Antes de chamar Rnd, utilize a instruo Randomize sem argumento para inicializar o gerador de nmeros aleatrios com
uma semente baseada no cronmetro do sistema.
Para produzir nmeros inteiros aleatrios, utilize esta frmula:
Int((limitesuperior - limiteinferior + 1) * Rnd + limiteinferior)
Aqui, limitesuperior o nmero mais alto do intervalo e limiteinferior o nmero mais baixo.
Observao Para repetir seqncias de nmeros aleatrios, chame Rnd com um argumento negativo imediatamente
antes de utilizar Randomize com um argumento numrico. A utilizao de Randomize com o mesmo valor de nmero no
repete a seqncia anterior.

Funo Sgn
Retorna um Variant (Integer) que indica o sinal de um nmero.
Sintaxe
Sgn(nmero)
O argumento obrigatrio nmero pode ser qualquer expresso numrica vlida.
Valores de retorno
Se nmero for
Sgn retorna
Maior que zero
1
Igual a zero
0
Menor que zero
-1
Comentrios
O sinal do argumento nmero determina o valor de retorno da funo Sgn.

Funo Sin
Retorna um Double que especifica o seno de um ngulo.
Sintaxe
Sin(nmero)
O argumento obrigatrio nmero um Double ou qualquer expresso numrica vlida que exprima um ngulo em
radianos.
Comentrios
A funo Sin toma um ngulo e retorna a razo entre dois lados de um tringulo retngulo. A razo o comprimento do
lado oposto ao ngulo dividido pelo comprimento da hipotenusa.
O resultado situa-se no intervalo -1 a 1.
Para converter graus em radianos, multiplique graus por pi/180. Para converter radianos em graus, multiplique radianos por
180/pi.

Funo Sqr
Retorna um Double que especifica a raiz quadrada de um nmero.
Sintaxe
Sqr(nmero)
O argumento obrigatrio nmero um Double ou qualquer expresso numrica vlida maior ou igual a zero.

Funes Internas

155

Funo Tan
Retorna um Double que especifica a tangente de um ngulo.
Sintaxe
Tan(nmero)
O argumento obrigatrio nmero um Double ou qualquer expresso numrica vlida que exprima um ngulo em
radianos.
Comentrios
Tan toma um ngulo e retorna a razo entre dois lados de um tringulo retngulo. A razo o comprimento do lado oposto
ao ngulo dividido pelo comprimento do lado adjacente.
Para converter graus em radianos, multiplique graus por pi/180. Para converter radianos em graus, multiplique radianos por
180/pi.

Funes matemticas derivadas


A lista abaixo uma lista de funes matemticas no intrnsecas que podem ser derivadas a partir das funes
matemticas intrnsecas:
Funo
Equivalentes derivadas
Secante
Co-secante
Co-tangente
Seno inverso
Co-seno inverso
Secante inversa
Co-secante inversa
Co-tangente inversa
Seno hiperblico
Co-seno hiperblico
Tangente hiperblica
Secante hiperblica
Co-secante hiperblica
Co-tangente hiperblica
Seno hiperblico inverso
Co-seno hiperblico inverso
Tangente hiperblica inversa
Secante hiperblica inversa
Co-secante hiperblica inversa
Co-tangente hiperblica inversa
Logaritmo de base N

Sec(X) = 1 / Cos(X)
Cosec(X) = 1 / Sin(X)
Cotan(X) = 1 / Tan(X)
Arcsin(X) = Atn(X / Sqr(-X * X + 1))
Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
Arcsec(X) = Atn(X / Sqr(X * X 1)) + Sgn((X) 1) * (2 * Atn(1))
Arccosec(X) = Atn(X / Sqr(X * X 1)) + (Sgn(X) 1) * (2 * Atn(1))
Arccotan(X) = Atn(X) + 2 * Atn(1)
Sinh(X) = (Exp(X) Exp(-X)) / 2
Cosh(X) = (Exp(X) + Exp(-X)) / 2
Tanh(X) = (Exp(X) Exp(-X)) / (Exp(X) + Exp(-X))
Sech(X) = 2 / (Exp(X) + Exp(-X))
Cosech(X) = 2 / (Exp(X) Exp(-X))
Cotanh(X) = (Exp(X) + Exp(-X)) / (Exp(X) Exp(-X))
Arcsinh(X) = Log(X + Sqr(X * X + 1))
Arccosh(X) = Log(X + Sqr(X * X 1))
Arctanh(X) = Log((1 + X) / (1 X)) / 2
Arcsech(X) = Log((Sqr(-X * X + 1) + 1) / X)
Arccosech(X) = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X)
Arccotanh(X) = Log((X + 1) / (X 1)) / 2
Logn(X) = Log(X) / Log(N)

Funes Internas

156

Exemplo do mtodo Add


Este exemplo utiliza o mtodo Add para adicionar objetos Inst (instncias de uma classe denominada Class1 que contm
uma varivel Public NomeDaInstncia) a uma coleo denominada MinhasClasses. Para ver como isto funciona, insira um
mdulo de classe e declare uma varivel pblica denominada NomeDaInstncia em nvel de mdulo da Class1 (digite
Public NomeDaInstncia) para conter os nomes de cada instncia. Deixe o nome padro como Class1. Copie e cole o
cdigo a seguir no procedimento de evento Form_Load de um mdulo de formulrio.
Dim MinhasClasses As New Collection
' Cria um objeto Collection.
Dim Num As Integer
' Contador para individualizar chaves.
Dim Msg
Dim ONome ' Contm os nomes que o usurio insere.
Do
Dim Inst As New Class1 ' Cria uma nova instncia da Class1.
Num = Num + 1 ' Incrementa Num e, em seguida, obtm um nome.
Msg = "Insira um nome para este objeto". & Chr(13) _
& "Pressione Cancelar para ver os nomes na coleo".
ONome = InputBox(Msg, "Nomeie a coleo de Items")
Inst.NomeDaInstncia = ONome
' Coloca o nome na instncia de objeto.
' Se o usurio inseriu o nome, adiciona-o coleo.
If Inst.NomeDaInstncia <> "" Then
' Adiciona o objeto nomeado coleo.
MinhasClasses.Add item := Inst, key := CStr(Num)
End If
' Limpa a referncia atual em preparao para a seguinte.
Set Inst = Nothing
Loop Until ONome = ""
For Each x In MinhasClasses
MsgBox x.NomeDaInstncia, , "Nome da instncia"
Next
Exemplo do mtodo Clear
Este exemplo utiliza o mtodo Clear do objeto Err para redefinir as propriedades numricas do objeto Err como zero e as
suas propriedades de seqncia de caracteres como seqncias de caracteres de comprimento zero. Se Clear fosse
omitido do cdigo a seguir, a caixa de dilogo de mensagem de erro seria exibida a cada iterao do loop (depois que
ocorresse um erro), independentemente de um clculo sucessivo gerar ou no um erro. Voc pode simplesmente passar
pelo cdigo para ver o resultado.
Dim Resultado(10) As Integer
' Declara a matriz cujos elementos
' sero facilmente sobrecarregados.
Dim ind
On Error Resume Next ' Adia a interceptao do erro.
Do Until ind = 10
' Gera um erro ocasional ou armazena o resultado se no houver erro.
Resultado(ind) = Rnd * ind * 20000
If Err.Number <> 0 Then
MsgBox Err, , "Erro gerado: ", Err.HelpFile, Err.HelpContext
Err.Clear' Limpa as propriedades do objeto Err.
End If
ind = ind + 1
Loop

Funes Internas

157

Exemplo do mtodo Item


Este exemplo utiliza o mtodo Item para recuperar uma referncia a um objeto em uma coleo. Supondo que Aniversrios
um objeto Collection, o cdigo a seguir recupera referncias aos objetos da coleo que representam a data do
aniversrio de Bill Smith e do aniversrio de Adam Smith, utilizando as chaves "SmithBill" e "SmithAdam" como argumentos
de ndice. Observe que a primeira chamada especifica explicitamente o mtodo Item, mas a segunda no. Ambas as
chamadas funcionam porque o mtodo Item o padro de um objeto Collection. As referncias, atribudas a SmithBillBD e
SmithAdamBD utilizando Set, podem ser utilizadas para acessar as propriedades e mtodos dos objetos especificados.
Para executar este cdigo, crie a coleo e preencha-a com pelo menos dois membros referenciados.
Dim SmithBillBD As Object
Dim SmithAdamBD As Object
Dim Aniversrios
Set SmithBillBD = Aniversrios.Item("SmithBill")
Set SmithAdamBD = Aniversrios("SmithAdam")
Exemplo do mtodo Print
Utilizando o mtodo Print, este exemplo exibe o valor da varivel MinhaVar no painel Imediato da janela Depurar. Observe
que o mtodo Print se aplica somente a objetos que podem exibir texto.
Dim MinhaVar
MinhaVar = "Venha me ver no painel Imediato"
Debug.Print MinhaVar
Exemplo do mtodo Raise
Este exemplo utiliza o mtodo Raise do objeto Err para gerar um erro com um objeto de Automao gravado no Visual
Basic. Ele tem o cdigo programtico MeuProj.MeuObjeto.
Const MeuCdigoDeContexto = 1010407 ' Define uma constante para o cdigo do contexto.
Function TestName(NomeAtual, NovoNome)
If Instr(NovoNome, "bob") Then' Testa a validade de NovoNome.
' Provoca a exceo.
Err.Raise vbObjectError + 27, "MeuProj.MeuObjeto", _
"Nenhum ""bob"" permitido no seu nome", "c:\MeuProj\MinhAjuda.Hlp", _
MeuCdigoDeContexto
End If
End Function
Exemplo do mtodo Remove
Este exemplo ilustra o uso do mtodo Remove para remover objetos de um objeto Collection, MinhasClasses. Este cdigo
remove o objeto cujo ndice 1 em cada iterao do loop.
Dim Num, MinhasClasses
For Num = 1 To MinhasClasses.Count
MinhasClasses.Remove 1 ' Remove o primeiro objeto cada vez
' atravs do loop at que no haja mais
' objetos na coleo.
Next Num

Mtodo Add
Adiciona um membro a um objeto Collection.
Sintaxe
objeto.Add item, key, before, after
A sintaxe do mtodo Add tem o qualificador de objeto e os argumentos nomeados a seguir:
Parte
Descrio
objeto
Obrigatrio. Uma expresso de objeto que avaliado como um objeto da
lista Relativo a.
item
Obrigatrio. Uma expresso de qualquer tipo que especifica o membro a
ser adicionado coleo.
key
Opcional. Uma expresso de seqncia de caracteres exclusiva que
especifica uma seqncia-chave que pode ser utilizada, em vez de um
ndice posicional, para acessar um membro da coleo.
before
Opcional. Uma expresso que especifica uma posio relativa na coleo.
O membro a ser adicionado colocado na coleo antes do membro
identificado pelo argumento before. Se for uma expresso numrica,
before deve ser um nmero de 1 ao valor da propriedade Count da
coleo. Se for uma expresso de seqncia de caracteres, before deve
corresponder key especificada quando o membro sendo referido foi
adicionado coleo. Voc pode especificar uma posio before ou uma
posio after, mas no ambas.
after
Opcional. Uma expresso que especifica uma posio relativa na coleo.
O membro a ser adicionado colocado na coleo depois do membro

Funes Internas

158

identificado pelo argumento after. Se for numrico, after deve ser um


nmero de 1 ao valor da propriedade Count da coleo. Se for uma
seqncia de caracteres, after deve corresponder key especificada
quando o membro referido foi adicionado coleo. Voc pode especificar
uma posio before ou uma posio after, mas no ambas.
Comentrios
Se o argumento before ou after for uma expresso de seqncia de caracteres ou uma expresso numrica, ele deve
fazer referncia a um membro existente da coleo, ou ocorrer um erro.
Tambm ocorrer um erro se uma key especificada duplicar a key de um membro existente da coleo.

Mtodo Clear
Limpa todas as configuraes de propriedade do objeto Err.
Sintaxe
objeto.Clear
O objeto sempre o objeto Err.
Comentrios
Utilize Clear para limpar explicitamente o objeto Err aps um erro ter sido tratado, por exemplo, quando voc utiliza a
manipulao de erro diferida com On Error Resume Next. O mtodo Clear chamado automaticamente sempre que
qualquer uma das instrues a seguir for executada:
Qualquer tipo de instruo Resume
Exit Sub, Exit Function, Exit Property
Qualquer instruo On Error
Observao A construo On Error Resume Next pode ser prefervel a On Error GoTo ao tratar erros gerados durante o
acesso a outros objetos. Verificar Err aps cada interao com um objeto remove a ambigidade sobre qual objeto foi
acessado pelo cdigo. Voc pode ter certeza de qual objeto colocou o cdigo de erro em Err.Number, assim como de qual
objeto gerou originalmente o erro (o objeto especificado em Err.Source).

Mtodo Item
Retorna um membro especfico de um objeto Collection, seja por posio ou por chave.
Sintaxe
objeto.Item(ndice)
A sintaxe do mtodo Item tem o qualificador e parte do objeto a seguir:
Parte
Descrio
objeto
Obrigatrio. Uma expresso de objeto que avaliada como um objeto na
lista Relativo a.
ndice

Obrigatrio. Uma expresso que especifica a posio de um membro da


coleo. Se for uma expresso numrica, ndice deve ser um nmero de
1 ao valor da propriedade Count da coleo. Se for uma expresso de
seqncia de caracteres, ndice deve corresponder ao argumento key
especificado quando o membro referido tiver sido adicionado coleo.

Comentrios
Se o valor fornecido como ndice no corresponder a nenhum membro existente da coleo, ocorrer um erro.
O mtodo Item o mtodo padro de uma coleo. Por essa razo, as linhas de cdigo a seguir so equivalentes:
Print MinhaColeo(1)
Print MinhaColeo.Item(1)

Mtodo Print
Imprime o texto no painel Imediato da janela Depurar.
Sintaxe
objeto.Print [listadesada]
A sintaxe do mtodo Print tem o seguinte qualificador e parte do objeto:
Parte
Descrio
objeto
Opcional. Uma expresso de objeto que avaliada como um objeto da
lista Relativo a.
listadesada
Opcional. Expresso ou lista de expresses a ser impressa. Se for
omitida, ser impressa uma linha em branco.
O argumento listadesada tem as seguintes sintaxe e partes:
{Spc(n) | Tab(n)} expresso poscarac
Parte
Spc(n)
Tab(n)

Descrio
Opcional. Utilizado para inserir caracteres espao na sada, onde n o
nmero de caracteres espao a ser inseridos.
Opcional. Utilizado para posicionar o ponto de insero em um nmero

Funes Internas

159

expresso
poscarac

de coluna absoluto onde n o nmero de coluna. Use Tab sem


argumento para posicionar o ponto de insero no incio da prxima
rea de impresso.
Opcional. Expresso numrica ou expresso de seqncia de
caracteres a ser impressa.
Opcional. Especifica o ponto de insero para o prximo caractere.
Use ponto-e-vrgula (;) para posicionar o ponto de insero
imediatamente aps o ltimo caractere exibido. Use Tab(n) para
posicionar o ponto de insero em um nmero de coluna absoluto. Use
Tab sem argumento para posicionar o ponto de insero no incio da
rea de impresso. Se poscarac for omitido, o prximo caractere ser
impresso na prxima linha.

Comentrios
Vrias expresses podem ser separadas com um espao ou um ponto-e-vrgula.
Todos os dados impressos na janela Imediato so formatados de forma apropriada usando o separador decimal para as
configuraes de localidade especificadas para seu sistema. As palavras-chave so colocadas no idioma apropriado do
aplicativo host.
Para os dados Boolean, impresso True ou False. As palavras-chave True e False so convertidas de acordo com a
definio de localidade para o aplicativo host.
Os dados Date so gravados usando o formato de data padro reconhecido pelo seu sistema. Quando faltam os
componentes de data ou hora ou eles equivalem a zero, somente os dados fornecidos so gravados.
Nada gravado se os dados de listadesada estiverem Empty. Contudo, se esses dados forem Null, a sada ser Null. A
palavra-chave Null convertida de forma apropriada na sada.
Para os dados com erro, a sada gravada como Error cdigoerro. A palavra-chave Error convertida de forma apropriada
na sada.
O objeto ser requerido se o mtodo for utilizado fora de um mdulo contendo um espao de exibio padro. Por exemplo,
ocorrer um erro se o mtodo for chamado em um mdulo padro sem especificar um objeto, mas, se for chamado em um
mdulo de formulrio, listadesada ser exibida no formulrio.
Observao Como o mtodo Print tipicamente imprime com caracteres com espao proporcional, no h correlao
entre o nmero de caracteres impressos e o nmero de colunas de largura fixa que esses caracteres ocupam. Por exemplo,
uma letra larga, como o "W", ocupa mais do que uma coluna de largura fixa, e uma letra estreita, como o "i", ocupa menos
do que essa coluna. Para permitir os casos em que os caracteres maiores do que a mdia sejam usados, suas colunas
tabulares devem ser posicionadas longe o suficiente umas das outras. De forma alternativa, voc pode imprimir usando
uma fonte de espaamento fixo (como Courier) para assegurar que cada caractere ocupe somente uma coluna.

Mtodo Raise
Gera um erro de tempo de execuo.
Sintaxe
objeto.Raise number, source, description, helpfile, helpcontext
O mtodo Raise tem o qualificador de objeto e os argumentos nomeados a seguir:
Argumento
Descrio
objeto
Obrigatrio. sempre o objeto Err.
number
Obrigatrio. Inteiro Long que identifica a natureza do erro. Os erros
do Visual Basic (erros definidos pelo Visual Basic ou definidos pelo
usurio) encontram-se no intervalo de 0 a 65535. Ao definir a
propriedade Nmero para seu prprio cdigo de erro em um mdulo
de classe, voc adiciona seu nmero de cdigo de erro constante.
vbObjectError. Por exemplo, para gerar o nmero de erro 1050,
atribua vbObjectError + 1050 para a propriedade Number.
source
Opcional. Expresso de seqncia de caracteres que d nome ao
objeto ou aplicativo que gerou o erro. Ao definir essa propriedade
para um objeto, use a forma projeto.classe. Se source no for
especificada, utilizada a identificao programtica do projeto atual
do Visual Basic.
description
Opcional. A expresso de seqncia de caracteres que descreve o
erro. Se no for especificada, o valor em Number ser examinado.
Se ele puder ser mapeado para um cdigo de erro de tempo de
execuo do Visual Basic, a seqncia de caracteres que iria ser
retornada pela funo Error ser utilizada como Description. Se
no houver erro no Visual Basic que corresponda a Number, ser
usada a mensagem "Erro de definio de aplicativo ou de definio
de objeto".
helpfile
Opcional. O caminho completo para o arquivo de Ajuda do Microsoft
Windows no qual pode ser encontrada ajuda sobre esse erro. Se no
for especificado, o Visual Basic utilizar a unidade, o caminho e o
nome do arquivo completo do arquivo de Ajuda do Visual Basic.
helpcontext
Opcional. A identificao de contexto que identifica um tpico dentro
do helpfile que fornece ajuda para o erro. Se for omitido, ser usada

Funes Internas

160

a identificao de contexto do arquivo de Ajuda do Visual Basic


referente ao erro correspondente propriedade Number, caso ele
exista.
Comentrios
Todos os argumentos so opcionais com exceo de number. Se voc usar Raise sem especificar alguns argumentos, e
as configuraes de propriedade do objeto Err contiverem valores que tenham sido removidos, esses valores serviro
como os valores para o seu erro.
Raise utilizado para gerar erros de tempo de execuo e pode ser usado no lugar da instruo Error. Raise til para
gerar erros ao gravar mdulos de classe, pois o objeto Err fornece informaes mais completas do que seria possvel se
voc gerasse erros com a instruo Error. Por exemplo, com o mtodo Raise, a fonte que gerou o erro pode ser
especificada na propriedade Source, a Ajuda on-line para o erro pode ser referida e assim por diante.

Mtodo Remove
Remove um membro de um objeto Collection.
Sintaxe
objeto.Remove ndice
A sintaxe do mtodo Remove tem o qualificador e parte do objeto a seguir:
Parte
Descrio
objeto
Obrigatrio. Uma expresso de objeto que avaliada como um objeto da
lista Relativo a.
ndice
Obrigatrio. Uma expresso que especifica a posio de um membro da
coleo. Se for uma expresso numrica, ndice deve ser um nmero de 1
ao valor da propriedade Count da coleo. Se for uma expresso de
seqncia de caracteres, ndice deve corresponder ao argumento key
especificado quando o membro referido tiver sido adicionado coleo.
Comentrios
Se o valor fornecido como ndice no corresponder a um membro existente da coleo, ocorrer um erro.
Exemplo da instruo AppActivate
Este exemplo ilustra vrios usos da instruo AppActivate para ativar uma janela de aplicativo. As instrues Shell
supem que os aplicativos esto nos caminhos especificados.
Dim MeuCdigoDoAplicativo, ValorDeRetorno
' No Microsoft Windows:
AppActivate "Microsoft Word"
' Ativa o Microsoft
' Word.
' AppActivate tambm pode utilizar o valor de retorno da funo Shell.
MeuCdigoDoAplicativo = Shell("C:\WORD\WINWORD.EXE", 1)
' Executa o Microsoft Word.
AppActivate MeuCdigoDoAplicativo ' Ativa o Microsoft
' Word.

' Voc pode tambm utilizar o valor de retorno da funo Shell.


ValorDeRetorno = Shell("c:\EXCEL\EXCEL.EXE",1) ' Executa o Microsoft Excel.
AppActivate ValorDeRetorno
' Ativa o Microsoft
' Excel.
Exemplo da instruo Beep
Este exemplo utiliza a instruo Beep para emitir trs avisos sonoros consecutivos atravs do alto-falante do computador.
Dim I
For I = 1 To 3 ' Faz o loop 3 vezes.
Beep
' Emite um aviso sonoro.
Next I
Exemplo da funo Command
Este exemplo utiliza a funo Command para obter os argumentos da linha de comando em uma funo que os retorna em
uma Variant que contm uma matriz.
Function GetCommandLine(Optional ArgsMax)
'Declara as variveis.
Dim C, LinhaDeComando, CompLinhaDeComando, ArgIn, I, ArgsNum
'V se ArgsMax foi fornecido.
If IsMissing(ArgsMax) Then ArgsMax = 10
'Torna a matriz do tamanho correto.
ReDim MatrizArg(ArgsMax)
ArgsNum = 0: ArgIn = False
'Obtm argumentos da linha de comando.
Funes Internas

161

LinhaDeComando = Command()
CompLinhaDeComando = Len(LinhaDeComando)
'Percorre a linha de comando um caractere
'de cada vez.
For I = 1 To CompLinhaDeComando
C = Mid(LinhaDeComando, I, 1)
'Testa quanto a espao ou tabulao.
If (C <> " " And C <> vbTab) Then
'Nem espao nem tabulao.
'Testa se j existe no argumento.
If Not ArgIn Then
'O novo argumento iniciado.
'Testa quanto ao nmero excessivo de argumentos.
If ArgsNum = ArgsMax Then Exit For
ArgsNum = ArgsNum + 1
ArgIn = True
End If
'Adiciona caractere ao argumento atual.
MatrizArg(ArgsNum) = MatrizArg(ArgsNum) + C
Else
'Encontrado um espao ou tabulao.
'Define o sinalizador ArgIn como False.
ArgIn = False
End If
Next I
'Redimensiona a matriz o suficiente para conter argumentos.
ReDim Preserve MatrizArg(ArgsNum)
'Retorna a Matriz no nome da funo.
GetCommandLine = MatrizArg()
End Function
Exemplo da funo InputBox
Este exemplo mostra vrias maneiras de utilizar a funo InputBox para solicitar ao usurio que insira um valor. Se as
posies x e y forem omitidas, a caixa de dilogo ser automaticamente centralizada em relao aos respectivos eixos. A
varivel MeuValor contm o valor inserido pelo usurio se o usurio clicar em OK ou pressionar a tecla ENTER. Se o usurio
clicar em Cancelar, ser retornada uma seqncia de comprimento zero.
Dim Mensagem, Ttulo, Padro, MeuValor
Mensagem = "Insira um valor entre 1 e 3" ' Define o aviso.
Ttulo = "Demonstrao da CaixaDeEntrada"
' Define o ttulo.
Padro = "1" ' Define o padro.
' Exibe a mensagem, o ttulo e o valor padro.
MeuValor = InputBox(Mensagem, Ttulo, Padro)
' Utiliza o arquivo de Ajuda e o contexto. O boto Ajuda adicionado automaticamente.
MeuValor = InputBox(Mensagem, Ttulo, , , , "DEMO.HLP", 10)
' Exibe a caixa de dilogo na posio 100, 100.
MeuValor = InputBox(Mensagem, Ttulo, Padro, 100, 100)

Funes Internas

162

Exemplo da funo MsgBox


Este exemplo utiliza a funo MsgBox para exibir uma mensagem de erro crtico em uma caixa de dilogo com os botes
Sim e No. O boto No especificado como a resposta padro. O valor retornado pela funo MsgBox depende do
boto escolhido pelo usurio. Este exemplo supe que DEMO.HLP um arquivo de Ajuda que contm um tpico com um
nmero de contexto da Ajuda igual a 1000.
Dim Msg, Estilo, Ttulo, Ajuda, Ctxt, Resposta, MinhaSeqncia
Msg = "Deseja continuar?" ' Define a mensagem.
Estilo = vbYesNo + vbCritical + vbDefaultButton2
' Define os botes.
Ttulo = "Demonstrao de MsgBox" ' Define o ttulo.
Ajuda = "DEMO.HLP" ' Define o arquivo de Ajuda.
Ctxt = 1000
' Define o contexto do
' tpico.
' Exibe a mensagem.
Resposta = MsgBox(Msg, Estilo, Ttulo, Ajuda, Ctxt)
If Resposta = vbYes Then ' O usurio escolheu Sim.
MinhaSeqncia = "Sim" ' Executa alguma ao.
Else ' O usurio escolheu No.
MinhaSeqncia = "No" ' Executa alguma ao.
End If
Exemplo da instruo SendKeys
Este exemplo utiliza a funo Shell para executar o aplicativo Calculadora includo no Microsoft Windows. Utiliza a
instruo SendKeys para enviar pressionamentos de teclas para adicionar alguns nmeros e, ento, sair da Calculadora.
(Para ver o exemplo, cole-o em um procedimento e, em seguida, execute o procedimento. Como AppActivate altera o foco
para o aplicativo Calculadora, no possvel simplesmente percorrer o cdigo.)
Dim ValorDeRetorno, I
ValorDeRetorno = Shell("CALC.EXE", 1) ' Executa a Calculadora.
AppActivate ValorDeRetorno
' Ativa a Calculadora.
For I = 1 To 100
' Configura o loop de contagem.
SendKeys I & "{+}", True ' Envia pressionamentos de teclas para Calculadora
Next I' para adicionar cada valor de I.
SendKeys "=", True' Obtm o total geral.
SendKeys "%{F4}", True
' Envia ALT+F4 para fechar a Calculadora.

Instruo AppActivate
Ativa uma janela do aplicativo.
Sintaxe
AppActivate title[, wait]
A sintaxe da instruo AppActivate possui os argumentos nomeados a seguir:
Parte
Descrio
title
Obrigatrio. Expresso de seqncia de caracteres que especifica o ttulo
na barra de ttulo da janela do aplicativo que voc deseja ativar. O cdigo
de tarefa retornado pela funo Shell pode ser utilizado em vez de title
para ativar um aplicativo.
wait
Opcional. Valor Boolean que especifica se o aplicativo de chamada possui
o foco antes de ativar outro. Se for False (padro), o aplicativo
especificado ativado imediatamente, mesmo se o aplicativo de chamada
no possuir o foco. Se for True, o aplicativo de chamada aguarda at
possuir o foco e depois ativa o aplicativo especificado.
Comentrios
A instruo AppActivate muda o foco para o aplicativo ou a janela especificados, mas sem afetar seu estado maximizado
ou minimizado. O foco se move da janela de aplicativo ativada quando o usurio realiza alguma ao para mudar o foco ou
fechar a janela. Utilize a funo Shell para iniciar um aplicativo e definir o estilo de janela.
Na determinao de qual aplicativo deve ser ativado, title comparado seqncia de caracteres de ttulo de cada
aplicativo que est em execuo. Se no houver correspondncia exata, todo aplicativo cuja seqncia de caracteres de
ttulo comece com title ser ativado. Se houver mais de uma ocorrncia do aplicativo especificado por title, uma ocorrncia
ser arbitrariamente ativada.

Instruo Beep
Emite um som pelo alto-falante do computador.
Sintaxe
Beep
Comentrios
A freqncia e a durao do som dependem do hardware e do software do sistema e variam de um computador para outro.

Funes Internas

163

Funo Command
Retorna a parte argumento da linha de comando utilizada para executar o Microsoft Visual Basic ou um programa
executvel desenvolvido com o Visual Basic.
Sintaxe
Command
Comentrios
Quando o Visual Basic executado a partir da linha de comando, qualquer parte da linha de comando que esteja aps
/cmd passada ao programa como o argumento de linha de comando. No exemplo a seguir, cmdlineargs representa as
informaes de argumento retornadas pela funo Command.
VB /Cmd cmdlineargs
Para aplicativos desenvolvidos com o Visual Basic e compilados para um arquivo .exe, Command retorna qualquer
argumento que aparea depois do nome do aplicativo na linha de comando. Por exemplo:
MyApp cmdlineargs
Para descobrir de que forma os argumentos de linha de comando podem ser alterados na interface do usurio do aplicativo
que voc est utilizando, procure Argumentos de linha de comando na Ajuda.

Funes Internas

164

Funo InputBox
Exibe um aviso em uma caixa de dilogo, aguarda at que o usurio insira texto ou clique em um boto e retorna um String
com o contedo da caixa de texto.
Sintaxe
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
A sintaxe da funo InputBox possui os argumentos nomeados a seguir:
Parte
Descrio
prompt
Obrigatrio. Expresso de seqncia de caracteres exibida como
mensagem na caixa de dilogo. O comprimento mximo de prompt
de aproximadamente 1024 caracteres, dependendo da largura dos
caracteres utilizados. Se prompt consistir em mais de uma linha, voc
poder separar as linhas utilizando 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.
title
Opcional. Expresso de seqncia de caracteres exibida na barra de
ttulo da caixa de dilogo. Se voc omitir title, o nome do aplicativo ser
inserido na barra de ttulo.
default
Opcional. Expresso de seqncia de caracteres exibida na caixa de
texto como resposta padro se nenhuma entrada for fornecida. Se voc
omitir default, a caixa de texto ser exibida vazia.
xpos
Opcional. Expresso numrica que especifica, em twips, a distncia
horizontal da extremidade esquerda da caixa de dilogo em relao
extremidade esquerda da tela. Se xpos for omitido, a caixa de dilogo
ser centralizada horizontalmente.
ypos
Opcional. Expresso numrica que especifica, em twips, a distncia
vertical da extremidade superior da caixa de dilogo em relao ao topo
da tela. Se ypos for omitido, a caixa de dilogo ser posicionada na
vertical a aproximadamente um tero da extremidade inferior da tela.
helpfile
Opcional. Expresso de seqncia de caracteres que identifica o
arquivo de Ajuda a ser utilizado para fornecer ajuda sensvel ao
contexto relativa caixa de dilogo. Se helpfile for fornecido, context
tambm dever ser fornecido.
context
Opcional. Expresso numrica que o nmero de contexto da Ajuda
atribudo ao tpico da Ajuda apropriado pelo autor da Ajuda. Se
context for fornecido, helpfile tambm dever ser fornecido.
Comentrios
Quando helpfile e context so fornecidos, o usurio pode pressionar F1 para exibir o tpico de Ajuda que corresponde ao
context. Alguns aplicativos host, por exemplo, o Microsoft Excel, tambm adicionam automaticamente um boto Ajuda
caixa de dilogo. Se o usurio clicar em OK ou pressionar ENTER, a funo InputBox retornar o que houver na caixa de
texto. Se o usurio clicar em Cancelar, a funo retornar uma seqncia de caracteres de comprimento zero ("").
Observao Para especificar mais que o primeiro argumento nomeado, voc deve utilizar InputBox em uma expresso.
Para omitir alguns argumentos posicionais, voc deve incluir o delimitador de vrgula correspondente.

Funes Internas

165

Funo MsgBox
Exibe uma mensagem em uma caixa de dilogo, aguarda que o usurio clique em um boto e retorna um Integer que
indica qual boto o usurio clicou.
Sintaxe
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
A sintaxe da funo MsgBox possui os argumentos nomeados a seguir:
Parte
Descrio
prompt
Obrigatrio. Expresso de seqncia de caracteres exibida como
mensagem na caixa de dilogo. O comprimento mximo de prompt de
aproximadamente 1024 caracteres, dependendo da largura dos
caracteres utilizados. Se prompt consistir em mais de uma linha, voc
poder separar as linhas utilizando 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.
buttons
Opcional. Expresso numrica que a soma de valores que especifica o
nmero e o tipo de botes a exibir, o estilo de cone a utilizar, a
identidade do boto padro e a modalidade da caixa de mensagem. Se
omitido, o valor padro para buttons 0.
title
Opcional. Expresso de seqncia de caracteres exibida na barra de
ttulo da caixa de dilogo. Se voc omitir title, o nome do aplicativo ser
inserido na barra de ttulo.
helpfile
Opcional. Expresso de seqncia de caracteres que identifica o arquivo
de Ajuda a ser utilizado para fornecer a ajuda sensvel ao contexto
relativa caixa de dilogo. Se helpfile for fornecido, context tambm
dever ser fornecido.
context
Opcional. Expresso numrica que o nmero de contexto da Ajuda
atribudo ao tpico de Ajuda apropriado pelo autor da Ajuda. Se context
for fornecido, helpfile tambm dever ser fornecido.
Definies
As definies do argumento buttons so:
Constante
vbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3
VbDefaultButton4
VbApplicationModal
VbSystemModal

Valor
0
1
2
3
4
5
16
32
48
64
0
256
512
768
0
4096

Descrio
Exibe somente o boto OK.
Exibe os botes OK e Cancelar.
Exibe os botes Abortar, Repetir e Ignorar.
Exibe os botes Sim, No e Cancelar.
Exibe os botes Sim e No.
Exibe os botes Repetir e Cancelar.
Exibe o cone Mensagem crtica.
Exibe o cone Consulta de aviso.
Exibe o cone Mensagem de aviso.
Exibe o cone Mensagem de informao.
O primeiro boto o padro.
O segundo boto o padro.
O terceiro boto o padro.
O quarto boto o padro.
Janela restrita do aplicativo; o usurio deve
responder caixa de mensagem antes de
continuar o trabalho no aplicativo atual.
Janela restrita do sistema; todos os aplicativos
so suspensos at que o usurio responda
caixa de mensagem.

O primeiro grupo de valores (05) descreve o nmero e o 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 a modalidade da caixa de mensagem. Quando estiver somando nmeros para criar um valor final para o
argumento buttons, utilize somente um nmero de cada grupo.
Observao Estas constantes so especificadas pelo Visual Basic para Aplicativos. Como resultado, os nomes podem ser
utilizados em qualquer lugar do seu cdigo em vez dos valores reais.
Valores de retorno
Constante
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo

Valor
1
2
3
4
5
6
7

Descrio
OK
Cancelar
Abortar
Repetir
Ignorar
Sim
No

Funes Internas

166

Comentrios
Quando helpfile e context so fornecidos, o usurio pode pressionar F1 para exibir o tpico da Ajuda correspondente ao
context. Alguns aplicativos host, por exemplo, o Microsoft Excel, tambm adicionam automaticamente um boto Ajuda
caixa de dilogo.
Se a caixa de dilogo exibir um boto Cancelar, pressionar a tecla ESC ter o mesmo efeito que clicar em Cancelar. Se a
caixa de dilogo contiver um boto Ajuda, ser fornecida a ajuda sensvel ao contexto relativa caixa de dilogo.
Entretanto, nenhum valor ser retornado at que um dos outros botes seja clicado.
Observao
Para especificar mais do que o primeiro argumento nomeado, voc deve utilizar MsgBox em uma
expresso. Para omitir algum argumento posicional, voc deve incluir o delimitador de vrgula correspondente.

Instruo SendKeys
Envia um ou mais pressionamentos de teclas para a janela ativa como se tivessem sido digitados no teclado.
Sintaxe
SendKeys string[, wait]
A sintaxe da instruo SendKeys possui os argumentos nomeados a seguir:
Parte
Descrio
string
Obrigatrio. Expresso de seqncia de caracteres que especifica os
pressionamentos de teclas a enviar.
wait
Opcional. Valor Boolean que especifica o modo de espera. Se for
False (padro), o controle ser retornado ao procedimento
imediatamente aps as teclas serem enviadas. Se for True, os
pressionamentos de teclas devem ser processados antes que o
controle seja retornado ao procedimento.
Comentrios
Cada tecla representada por um ou mais caracteres. Para especificar um nico caractere de teclado, utilize o prprio
caractere. Por exemplo, para representar a letra A, utilize "A" para string. Para representar mais de um caractere, anexe
cada caractere adicional ao que o antecede. Para representar as letras A, B e C, utilize "ABC" para string.
O sinal de adio (+), circunflexo (^), sinal de porcentagem (%), til (~) e parnteses ( ) possuem significados especiais para
SendKeys. Para especificar um desses caracteres, coloque-os entre chaves ({}). Por exemplo, para especificar o sinal de
adio, utilize {+}. Os colchetes ([ ]) no tm significado especial para SendKeys, mas voc deve coloc-los entre chaves.
Em outros aplicativos, os colchetes tm um significado especial que pode ser importante quando ocorrer intercmbio
dinmico de dados (DDE, Dynamic Data Exchange). Para especificar caracteres de chaves, utilize {{} e {}}.
Para especificar caracteres que no so exibidos quando voc pressiona uma tecla, como ENTER ou TAB, e teclas que
representam aes em vez de caracteres, utilize os cdigos a seguir.
Tecla
Cdigo
BACKSPACE
{BACKSPACE}, {BS} ou {BKSP}
BREAK
{BREAK}
CAPS LOCK
{CAPSLOCK}
DEL ou DELETE
{DELETE} ou {DEL}
SETA ABAIXO
{DOWN}
END
{END}
ENTER
{ENTER}ou ~
ESC
{ESC}
HELP
{HELP}
HOME
{HOME}
INS ou INSERT
{INSERT} ou {INS}
SETA ESQUERDA
{LEFT}
NUM LOCK
{NUMLOCK}
PAGE DOWN
{PGDN}
PAGE UP
{PGUP}
PRINT SCREEN
{PRTSC}
SETA DIREITA
{RIGHT}
SCROLL LOCK
{SCROLLLOCK}
TAB
{TAB}
SETA ACIMA
{UP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
F13
{F13}
F14
{F14}

Funes Internas

167

F15
F16

{F15}
{F16}

Para especificar teclas combinadas com qualquer combinao das teclas


um ou mais dos cdigos a seguir:
Tecla
Cdigo
SHIFT
+
CTRL
^
ALT
%

SHIFT, CTRL e ALT,

preceda o cdigo de teclas de

Para especificar que qualquer combinao de SHIFT, CTRL e ALT deve ser mantida pressionada enquanto vrias outras teclas
so pressionadas, coloque o cdigo dessas teclas entre parnteses. Por exemplo, para especificar manter pressionada
SHIFT enquanto E e C so pressionadas, utilize "+(EC)". Para especificar manter pressionada SHIFT enquanto E
pressionada, seguida de C sem SHIFT, utilize "+EC".
Para especificar a repetio de teclas, utilize a forma{tecla nmero}. Voc deve colocar um espao entre tecla e nmero.
Por exemplo, {ESQUERDA 42} significa pressionar a tecla SETA ESQUERDA 42 vezes; {h 10} significa pressionar H 10 vezes.
Observao Voc no pode utilizar SendKeys para enviar pressionamentos de teclas para um aplicativo que no tenha
sido projetado para ser executado no Microsoft Windows. Sendkeys tambm no pode enviar a tecla PRINT SCREEN {PRTSC}
a nenhum aplicativo.

Funes Internas

168

Conjunto de caracteres (0127)


0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

**
**
**

**

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

[espao]
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~

Esses caracteres no so suportados pelo Microsoft Windows.


* * Os valores 8, 9, 10 e 13 so convertidos para os caracteres backspace, tab, alimentao de linha e retorno de carro, respectivamente. Eles no tm
representao grfica mas, dependendo do aplicativo, podem afetar a exibio visual do texto.

Funes Internas

169

Funo IMEStatus
Retorna um Integer especificando o modo Editor de Mtodo de Entrada (IME, Input Method Editor) atual do Microsoft
Windows; disponvel somente nas verses para o Extremo Oriente.
Sintaxe
IMEStatus
Valores de retorno
Os valores de retorno referentes localidade Japo so os seguintes:
Constante
Valor
Descrio
vbIMENoOP
0
Nenhum IME instalado
vbIMEOn
1
IME ligado
vbIMEOff
2
IME desligado
vbIMEDisable
3
IME desativado
vbIMEHiragana
4
Caracteres de byte duplo Hiragana (DBC)
vbIMEKatakanaDbl
5
Katakana DBC
vbIMEKatakanaSng
6
Caracteres de byte simples Katakana (SBC)
vbIMEAlphaDbl
7
DBC Alfanumrico
vbIMEAlphaSng
8
SBC Alfanumrico
Os valores de retorno referentes localidade China (chins tradicional e simplificado) so os seguintes:
Constante
Valor
Descrio
vbIMENoOP
0
Nenhum IME instalado
vbIMEOn
1
IME ligado
vbIMEOff
2
IME desligado
Para a localidade coreana, os primeiros cinco bits de retorno so definidos da seguinte forma:
Bit
Valor
Descrio
Valor
Descrio
0
0
Nenhum IME instalado
1
IME instalado
1
0
IME desativado
1
IME ativado
2
0
Modo Ingls IME
1
Modo Hangeul
3
0
Modo Banja (SB)
1
Modo Junja (DB)
4
0
Modo Normal
1
Modo de Converso Hanja

Funes Internas

170

Collection (Pesquisador de objeto)


O mdulo Collection contm procedimentos utilizados para realizar operaes no objeto Collection. Estas constantes
podem ser utilizadas em qualquer parte do seu cdigo.

ColorConstants (Pesquisador de objeto)


O mdulo Color Constants contm constantes de cores predefinidas. Estas constantes podem ser utilizadas em qualquer
parte do seu cdigo.

Constants (Pesquisador de objeto)


O mdulo Constants contm vrias constantes. Estas constantes podem ser utilizadas em qualquer parte do seu cdigo.

Conversion (Pesquisador de objeto)


O mdulo Conversion contm os procedimentos utilizados para executar vrias operaes de converso. Estas constantes
podem ser utilizadas em qualquer parte do seu cdigo.
Observao Quando voc utiliza as variveis Variant, as converses de tipo de dados explcitas no desnecessrias.

DateTime (Pesquisador de objeto)


O mdulo DateTime contm os procedimentos e propriedades utilizados em operaes de data e hora. Estas constantes
podem ser utilizadas em qualquer parte do seu cdigo.

ErrObject (Pesquisador de objeto)


O mdulo ErrObject contm propriedades e procedimentos utilizados para identificar e manipular erros de tempo de
execuo utilizando o objeto Err. Estas constantes podem ser utilizadas em qualquer parte do seu cdigo.

FileSystem (Pesquisador de objeto)


O mdulo FileSystem contm os procedimentos utilizados para realizar operaes de arquivo, diretrio ou pasta e sistema.
Estas constantes podem ser utilizadas em qualquer parte do seu cdigo.

Financial (Pesquisador de objeto)


O mdulo Financial contm procedimentos utilizados para realizar operaes financeiras. Estas constantes podem ser
utilizadas em qualquer parte do seu cdigo.

Funes Internas

171

Global (Pesquisador de objeto)


O mdulo Global contm procedimentos e propriedades utilizadas para realizar operaes no objeto UserForm. Estas
constantes podem ser utilizadas em qualquer parte do seu cdigo.

Information (Pesquisador de objeto)


O mdulo Information contm os procedimentos utilizados para retornar, testar ou verificar informaes. Estas constantes
podem ser utilizadas em qualquer parte do seu cdigo.

Interaction (Pesquisador de objeto)


O mdulo Interaction contm procedimentos utilizados para interagir com objetos, aplicativos e sistemas. Estas constantes
podem ser utilizadas em qualquer parte do seu cdigo.

eycodeConstants (Pesquisador de objeto)


O mdulo KeyCodeConstants contm constantes de cdigo-chave predefinidas que podem ser utilizadas em qualquer
parte do seu cdigo.

Math (Pesquisador de objeto)


O mdulo Math contm procedimentos utilizados para realizar operaes matemticas. Estas constantes podem ser
utilizadas em qualquer parte do seu cdigo.

String (Pesquisador de objeto)


O mdulo String contm procedimentos utilizados para realizar operaes de seqncias de caracteres. Estas constantes
podem ser utilizadas em qualquer parte do seu cdigo.

SystemColorConstants (Pesquisador de objeto)


O mdulo System ColorConstants contm constantes que identificam vrias partes da interface de usurio grfica. Estas
constantes podem ser utilizadas em qualquer parte do seu cdigo.

VbAppWinStyle (Pesquisador de objeto)


A enumerao VbAppWinStyle contm constantes utilizadas pela funo Shell para controlar o estilo de uma janela de
aplicativo. Estas constantes podem ser utilizadas em qualquer parte do seu cdigo.

VbCalendar (Pesquisador de objeto)


A enumerao VbCalendar contm constantes utilizadas para determinar o tipo de calendrio utilizado pelo Visual Basic.
Estas constantes podem ser utilizadas em qualquer parte do seu cdigo.

VbCompareMethod (Pesquisador de objeto)


A enumerao VbCompareMethod contm constantes utilizadas para determinar a forma como as seqncias de
caracteres so comparadas ao utilizar as funes Instr e StrComp. Estas constantes podem ser utilizadas em qualquer
parte do seu cdigo.

VbDayOfWeek (Pesquisador de objeto)


A enumerao VbDayOfWeek contm constantes utilizadas para identificar dias da semana especficos ao utilizar as
funes DateDiff, DatePart e Weekday. Estas constantes podem ser utilizadas em qualquer parte do seu cdigo.

Funes Internas

172

VbFileAttribute (Pesquisador de objeto)


A enumerao VbFileAttribute contm constantes utilizadas para identificar atributos de arquivos utilizados nas funes
Dir, GetAttr e SetAttr. Estas constantes podem ser utilizadas em qualquer parte do seu cdigo.

VbFirstWeekOfYear (Pesquisador de objeto)


A enumerao VbFirstWeekOfYear contm constantes utilizadas para identificar como a primeira semana de um ano
determinada quando estiver utilizando as funes DateDiff e DatePart. Estas constantes podem ser utilizados em qualquer
outra parte do cdigo.

VbIMEStatus (Pesquisador de objeto)


Disponvel apenas nas verses do Oriente Mdio, a enumerao VbIMEStatus contm constantes utilizadas para
identificar o Input Method Editor (IME) quando estiver utilizando a funo IMEStatus. Estas constantes podem ser utilizadas
em qualquer parte do seu cdigo.

VbMsgBoxResult (Pesquisador de objeto)


A enumerao VbMsgBoxResult contm constantes utilizadas para identificar que boto foi pressionado em uma caixa de
mensagem exibida utilizando a funo MsgBox. Estas constantes podem ser utilizadas em qualquer parte do seu cdigo.

VbMsgBoxStyle (Pesquisador de objeto)


A enumerao VbMsgBoxStyle contm constantes utilizadas para especificar o comportamento de uma caixa de
mensagem, junto com smbolos e botes que aparecem nela, quando exibida utilizando a funo MsgBox. Estas
constantes podem ser utilizadas em qualquer parte do seu cdigo.

VbQueryClose (Pesquisador de objeto)


A enumerao VbQueryClose contm constantes utilizadas para identificar o que causou o evento QueryClose. Estas
constantes podem ser utilizadas em qualquer parte do seu cdigo.

VbStrConv (Pesquisador de objeto)


A enumerao VbStrConv contm constantes utilizadas para identificar o tipo de converso de seqncia de caracteres a
ser realizada pela funo StrConv. Estas constantes podem ser utilizadas em qualquer parte do se cdigo.

VbVarType (Pesquisador de objeto)


A enumerao VbVarType contm constantes utilizadas para identificar os vrios tipos de dados que podem estar contidos
em uma Variante. Estas constantes correspondem aos valores de retorno da funo VarType e pode ser utilizado em
qualquer parte do seu cdigo.

Funes Internas

173

Exemplo do objeto Collection


Este exemplo cria um objeto Collection (MinhasClasses) e, em seguida, cria uma caixa de dilogo na qual os usurios
podem adicionar objetos coleo. Para ver como isto funciona, escolha o comando Mdulo de classe no menu Inserir e
declare uma varivel pblica denominada NomeDaInstncia em nvel de mdulo de Class 1 (digite Public
NomeDaInstncia) para conter o nome de cada instncia. Deixe o nome padro como Class1. Copie e cole o cdigo a
seguir na seo Geral de outro mdulo e, em seguida, inicie-o com a instruo ClassNamer em outro procedimento. (Este
exemplo funciona somente com aplicativos host que suportam classes.)
Sub ClassNamer()
Dim MinhasClasses As New Collection
' Cria um objeto Collection.
Dim Num
' Contador para chaves de individualizao.
Dim Msg As String
' Varivel para conter seqncia de caracteres de aviso.
Dim ONome, MeuObjeto, ListaDeNomes
' Variants para conter informaes.
Do
Dim Inst As New Class1 ' Cria uma nova instncia de Class1.
Num = Num + 1 ' Incrementa Num e, em seguida, obtm um nome.
Msg = "Insira um nome para este objeto." & Chr(13) _
& "Pressione Cancelar para ver os nomes na coleo.
ONome = InputBox(Msg, "Nomeie a coleo de Items")
Inst.NomeDaInstncia = ONome ' Coloca o nome na instncia do objeto.
' Se o usurio inseriu um nome, adiciona-o coleo.
If Inst.NomeDaInstncia <> "" Then
' Adiciona o objeto nomeado coleo.
MinhasClasses.Add item := Inst, key := CStr(Num)
End If
' Limpa a referncia atual em preparao para a prxima.
Set Inst = Nothing
Loop Until ONome = ""
For Each MeuObjeto In MinhasClasses
' Cria a lista de nomes.
ListaDeNomes = ListaDeNomes & MeuObjeto.NomeDaInstncia & Chr(13)
Next MeuObjeto
' Exibe a lista de nomes em uma caixa de mensagem.
MsgBox ListaDeNomes, , "Nomes de instncia na coleo MinhasClasses"
For Num = 1 To MinhasClasses.Count' Remove o nome da coleo.
MinhasClasses.Remove 1 ' Como as colees so reindexadas
' automaticamente, remove o primeiro
Next
' membro de cada iterao.
End Sub
Exemplo do objeto Err
Este exemplo utiliza as propriedades do objeto Err na construo de uma caixa de dilogo de mensagem de erro. Observe
que se voc utilizar primeiro o mtodo Clear, ao gerar um erro do Visual Basic com o mtodo Raise, os valores padro do
Visual Basic se tornaro as propriedades do objeto Err.
Dim Msg
' Se ocorrer um erro, construa uma mensagem de erro
On Error Resume Next ' Adia o tratamento do erro.
Err.Clear
Err.Raise 6
' Gera um erro "Sobrecarga".
' Procura pelo erro e, em seguida, exibe a mensagem.
If Err.Number <> 0 Then
Msg = "Erro # " & Str(Err.Number) & " foi gerado por " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Erro", Err.Helpfile, Err.HelpContext
End If

Objeto Collection
Um objeto Collection um conjunto de itens ordenados que podem ser referidos como uma unidade.
Comentrios
O objeto Collection proporciona uma forma conveniente de se fazer referncia a um grupo relacionado de itens como um
objeto nico. Os itens, ou membros, de uma coleo precisam ser relacionados somente pelo fato de existirem em uma
coleo. Os membros de uma coleo no precisam compartilhar o mesmo tipo de dados.
Uma coleo pode ser criada da mesma forma que os outros objetos so criados. Por exemplo:
Dim X As Nova Collection
Depois de uma coleo ser criada, os membros podem ser adicionados usando-se o mtodo Add e removidos usando-se o
mtodo Remove. Os membros especficos podem ser retornados da coleo usando-se o mtodo Item, enquanto toda a
coleo pode ser iterada utilizando-se a instruo For Each...Next.

Objeto Debug
O objeto Debug envia a sada para a janela Imediato durante o tempo de execuo.
Funes Internas

174

Objeto Err
Contm informaes sobre erros em tempo de execuo.
Comentrios
As propriedades do objeto Err so definidas pelo gerador de um erro o Visual Basic, um objeto ou um programador de
Visual Basic.
A propriedade padro do objeto Err Number. Como a propriedade padro pode ser representada pelo nome do objeto
Err, o cdigo escrito anteriormente utilizando a funo Err ou a instruo Err no precisa ser modificado.
Quando ocorre um erro em tempo de execuo as propriedades do objeto Err so preenchidas com informaes que
identificam o erro de forma exclusiva e informaes que podem ser utilizadas para manipular esse erro. Para gerar um erro
em tempo de execuo em seu cdigo, use o mtodo Raise.
As propriedades do objeto Err so redefinidas como zero ou seqncias de comprimento zero ("") aps qualquer forma da
instruo Resume ou On Error e aps uma instruo Exit Sub, Exit Function ou Exit Property dentro de uma rotina de
manipulao de erro. O mtodo Clear pode ser usado para redefinir Err de forma explcita.
Use o mtodo Raise, em vez da instruo Error, para gerar erros de tempo de execuo para um mdulo de classe. Usar o
mtodo Raise em outro cdigo depende da riqueza das informaes que voc quer retornar. Em cdigos que utilizam
instrues Error em vez do mtodo Raise para gerar erros, as propriedades do objeto Err so atribudas aos seguintes
valores padro quando Error executado:
Propriedade
Valor
Number
Valor especificado como argumento para a instruo Error. Pode
ser qualquer nmero de erro vlido.
Source
Nome do projeto atual do Visual Basic.
Description
Uma seqncia de caracteres correspondente ao retorno da
funo Error para o Number especificado, se essa seqncia
existir. Se no existir, a Description conter "Erro de definio de
aplicativo ou de definio de objeto".
HelpFile
Unidade de disco, caminho e nome de arquivo completos do
arquivo de Ajuda do Visual Basic.
HelpContext
Identificao do contexto do arquivo de Ajuda do Visual Basic
referente ao erro correspondente propriedade Number.
LastDLLError
Somente em sistemas operacionais Microsoft Windows de 32 bits,
contm o cdigo de erro de sistema referente ltima chamada a
uma biblioteca de vnculo dinmico (DLL). A propriedade
LastDLLError somente leitura.
Voc no precisa alterar o cdigo existente que utiliza o objeto Err e a instruo Error. Contudo, utilizar o objeto Err e a
instruo Error pode resultar em conseqncias no desejadas. Por exemplo, mesmo que voc preencha as propriedades
referentes ao objeto Err, elas sero redefinidas com os valores padro indicados na tabela anterior assim que a instruo
Error for executada. Embora voc possa utilizar a instruo Error para gerar erros em tempo de execuo do Visual Basic,
ela retida principalmente para haver compatibilidade com o cdigo existente. Utilize o objeto Err, o mtodo Raise e o
mtodo Clear para os erros do sistema e em cdigo novo, especialmente para mdulos de classe.
O objeto Err um objeto intrnseco com escopo global. No h necessidade de se criar uma instncia dele em seu cdigo.
Exemplo do operador ^
Este exemplo utiliza o operador ^ para elevar um nmero potncia de um expoente.
Dim MeuValor
MeuValor = 2 ^ 2 ' Retorna 4.
MeuValor = 3 ^ 3 ^ 3
' Retorna 19683.
MeuValor = (-5) ^ 3 ' Retorna -125.
Exemplo do operador +
Este exemplo utiliza o operador + para somar nmeros. O operador + tambm pode ser utilizado para concatenar
seqncias de caracteres. Entretanto, para eliminar a ambigidade, voc deve utilizar o operador & em seu lugar. Se os
componentes de uma expresso criada com o operador + inclurem tanto seqncias de caracteres como numricas, ser
atribudo o resultado aritmtico. Se os componentes forem exclusivamente seqncias de caracteres, as seqncias de
caracteres sero concatenadas.
Dim MeuNmero, Var1, Var2
MeuNmero = 2 + 2
' Retorna 4.
MeuNmero = 4257.04 + 98112 ' Retorna 102369,04.
Var1 = "34": Var2 = 6 ' Inicializa variveis mistas.
MeuNmero = Var1 + Var2 ' Retorna 40.
Var1 = "34": Var2 = "6" ' Inicializa variveis com seqncias de caracteres.
MeuNmero = Var1 + Var2 ' Retorna "346" (concatenao de seqncias de caracteres).

Funes Internas

175

Exemplo do operador Este exemplo utiliza o operador - para calcular a diferena entre dois nmeros.
Dim MeuResultado
MeuResultado = 4 - 2 ' Retorna 2.
MeuResultado = 459.35 - 334.90' Retorna 124,45.
Exemplo do operador *
Este exemplo utiliza o operador * para multiplicar dois nmeros.
Dim MeuValor
MeuValor = 2 * 2 ' Retorna 4.
MeuValor = 459.35 * 334.90 ' Retorna 153836,315.
Exemplo do operador /
Este exemplo utiliza o operador / para executar diviso de vrgula flutuante.
Dim MeuValor
MeuValor = 10 / 4 ' Retorna 2,5.
MeuValor = 10 / 3 ' Retorna 3,333333.
Exemplo do operador \
Este exemplo utiliza o operador \ para executar a diviso de inteiros.
Dim MeuValor
MeuValor = 11 \ 4 ' Retorna 2.
MeuValor = 9 \ 3 ' Retorna 3.
MeuValor = 100 \ 3 ' Retorna 33.
Exemplo do operador Mod
Este exemplo utiliza o operador Mod para dividir dois nmeros e retornar somente o resto. Se algum dos nmeros for de
vrgula flutuante, ele ser primeiro arredondado para inteiro.
Dim MeuResultado
MeuResultado = 10 Mod 5 ' Retorna 0.
MeuResultado = 10 Mod 3 ' Retorna 1.
MeuResultado = 12 Mod 4.3 ' Retorna 0.
MeuResultado = 12.6 Mod 5 ' Retorna 3.
Exemplo do operador &
Este exemplo utiliza o operador & para forar a concatenao de seqncias de caracteres.
Dim MinhaSeq
MinhaSeq = "Al" & " Mundo"
' Retorna "Al Mundo".
MinhaSeq = "Controle " & 123 & " Controle" ' Retorna "Controle 123 Controle".

Funes Internas

176

Exemplo de operadores de comparao


Este exemplo mostra vrios usos dos operadores de comparao, que voc utiliza para comparar expresses.
Dim MeuResultado, Var1, Var2
MeuResultado = (45 < 35) ' Retorna False.
MeuResultado = (45 = 45) ' Retorna True.
MeuResultado = (4 <> 3)
' Retorna True.
MeuResultado = ("5" > "4") ' Retorna True.
Var1 = "5": Var2 = 4
' Inicializa as variveis.
MeuResultado = (Var1 > Var2) ' Retorna True.
Var1 = 5: Var2 = Empty
MeuResultado = (Var1 > Var2)

' Retorna True.

Var1 = 0: Var2 = Empty


MeuResultado = (Var1 = Var2)

' Retorna True.

Exemplo do operador And


Este exemplo utiliza o operador And para executar uma conjuno lgica em duas expresses.
Dim A, B, C, D, MeuControle
A = 10: B = 8: C = 6: D = Null
' Inicializa as variveis.
MeuControle = A > B And B > C ' Retorna True.
MeuControle = B > A And B > C ' Retorna False.
MeuControle = A > B And B > D ' Retorna Null.
MeuControle = A And B ' Retorna 8 (comparao bit a bit).
Exemplo do operador Eqv
Este exemplo utiliza o operador Eqv para executar a equivalncia lgica em duas expresses.
Dim A, B, C, D, MeuControle
A = 10: B = 8: C = 6: D = Null
' Inicializa as variveis.
MeuControle = A > B Eqv B > C ' Retorna True.
MeuControle = B > A Eqv B > C ' Retorna False.
MeuControle = A > B Eqv B > D ' Retorna Null.
MeuControle = A Eqv B ' Retorna -3 (comparao bit a bit).
Exemplo do operador Imp
Este exemplo utiliza o operador Imp para executar a implicao lgica em duas expresses.
Dim A, B, C, D, MeuControle
A = 10: B = 8: C = 6: D = Null
' Inicializa as variveis.
MeuControle = A > B Imp B > C ' Retorna True.
MeuControle = A > B Imp C > B ' Retorna False.
MeuControle = B > A Imp C > B ' Retorna True.
MeuControle = B > A Imp C > D ' Retorna True.
MeuControle = C > D Imp B > A ' Retorna Null.
MeuControle = B Imp A ' Retorna -1 (comparao bit a bit).

Funes Internas

177

Exemplo do operador Not


Este exemplo utiliza o operador Not para executar a negao lgica em uma expresso.
Dim A, B, C, D, MeuControle
A = 10: B = 8: C = 6: D = Null
' Inicializa as variveis.
MeuControle = Not(A > B) ' Retorna False.
MeuControle = Not(B > A) ' Retorna True.
MeuControle = Not(C > D) ' Retorna Null.
MeuControle = Not A ' Retorna -11 (comparao bit a bit).
Exemplo do operador Or
Este exemplo utiliza o operador Or para executar a disjuno lgica em duas expresses.
Dim A, B, C, D, MeuControle
A = 10: B = 8: C = 6: D = Null
' Inicializa as variveis
MeuControle = A > B Or B > C ' Retorna True.
MeuControle = B > A Or B > C ' Retorna True.
MeuControle = A > B Or B > D ' Retorna True.
MeuControle = B > D Or B > A ' Retorna Null.
MeuControle = A Or B ' Retorna 10 (comparao bit a bit).
Exemplo do operador Xor
Este exemplo utiliza o operador Xor para executar a excluso lgica em duas expresses.
Dim A, B, C, D, MeuControle
A = 10: B = 8: C = 6: D = Null
' Inicializa as variveis.
MeuControle = A > B Xor B > C ' Retorna False.
MeuControle = B > A Xor B > C ' Retorna True.
MeuControle = B > A Xor C > B ' Retorna False.
MeuControle = B > D Xor A > B ' Retorna Null.
MeuControle = A Xor B ' Retorna 2 (comparao bit a bit).
Exemplo do operador Like
Este exemplo utiliza o operador Like para comparar uma seqncia de caracteres com um padro.
Dim MeuControle
MeuControle = "aBBBa" Like "a*a" ' Retorna True.
MeuControle = "F" Like "[A-Z]" ' Retorna True.
MeuControle = "F" Like "[!A-Z]" ' Retorna False.
MeuControle = "a2a" Like "a#a" ' Retorna True.
MeuControle = "aM5b" Like "a[L-P]#[!c-e]"' Retorna True.
MeuControle = "BAT123khg" Like "B?T*" ' Retorna True.
MeuControle = "CAT123khg" Like "B?T*" ' Retorna False.
Exemplo do operador Is
Este exemplo utiliza o operador Is para comparar duas referncias a objeto. Os nomes de variveis de objeto so genricos
e usados somente com finalidade ilustrativa.
Dim MeuObjeto, SeuObjeto, EsteObjeto, OutroObjeto, AqueleObjeto, MeuControle
Set SeuObjeto = MeuObjeto ' Atribui referncias a objeto.
Set EsteObjeto = MeuObjeto
Set AqueleObjeto = OutroObjeto
MeuControle = SeuObjeto Is EsteObjeto ' Retorna True.
MeuControle = AqueleObjeto Is EsteObjeto ' Retorna False.
' Pressupe que MeuObjeto <> OutroObjeto
MeuControle = MeuObjeto Is AqueleObjeto ' Retorna False.

Resumo de operadores
Operadores
Operadores aritmticos
Operadores de comparao
Operadores de concatenao
Operadores lgicos

Descrio
Operadores utilizados para efetuar clculos matemticos.
Operadores utilizados para efetuar comparaes.
Operadores utilizados para combinar seqncias de caracteres.
Operadores utilizados para efetuar operaes lgicas.

Precedncia de operadores
Quando diversas operaes ocorrem em uma expresso, cada parte avaliada e resolvida em uma ordem predeterminada
chamada precedncia de operadores.
Quando as expresses contm operadores de mais de uma categoria, os operadores aritmticos so avaliados em primeiro
lugar, seguidos pelos operadores de comparao e, finalmente, pelos operadores lgicos. Os operadores de comparao
apresentam todos a mesma precedncia, ou seja, so avaliados da esquerda para a direita na ordem em que aparecem.
Os operadores lgicos e os aritmticos so avaliados na ordem de precedncia a seguir:

Funes Internas

178

Aritmticos

De comparao

Exponenciao (^)
Igualdade (=)
Negao ()
Desigualdade (<>)
Multiplicao e diviso (*, /)
Menor que (<)
Diviso de inteiros (\)
Maior que (>)
Mdulo aritmtico (Mod)
Menor que ou igual a (<=)
Adio e subtrao (+, )
Maior que ou igual a (>=)
Concatenao de seqncias deLike
caracteres (&)
Is

Lgicos
Not
And
Or
Xor
Eqv
Imp

Quando a multiplicao e a diviso ocorrem ao mesmo tempo em uma expresso, cada operao avaliada medida que
ela ocorre da esquerda para a direita. Quando a adio e a subtrao ocorrem ao mesmo tempo em uma expresso, cada
operao avaliada na ordem em que aparece da esquerda para a direita. Parnteses podem ser utilizados para ignorar a
ordem de precedncia e fazer com que algumas partes da expresso sejam avaliadas antes de outras. As operaes entre
parnteses so sempre executadas antes daquelas que se encontram fora deles. Dentro dos parnteses, contudo, a
precedncia de operadores mantida.
O operador de concatenao de seqncias de caracteres (&) no um operador aritmtico, mas segue todos os
operadores aritmticos e precede todos os operadores de comparao.
O operador Like apresenta a mesma precedncia de todos os operadores de comparao, mas , na verdade, um
operador de correspondncia de padro.
O operador Is um operador de comparao de referncia de objeto. Ele no compara objetos ou seus valores; somente
verifica e determina se duas referncias de objeto referem-se a um mesmo objeto.

Funes Internas

179

Operador ^
Utilizado para elevar um nmero potncia de um expoente.
Sintaxe
resultado = nmero^expoente
A sintaxe do operador ^ possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
nmero
Obrigatrio; qualquer expresso numrica.
expoente
Obrigatrio; qualquer expresso numrica.
Comentrios
Um nmero pode ser negativo somente se expoente for um valor inteiro. Quando mais de uma exponenciao efetuada
em uma nica expresso, o operador ^ avaliado medida que encontrado da esquerda para a direita.
Em geral, o tipo de dados de resultado um Double ou um Variant contendo um Double. No entanto, se nmero ou
expoente for uma expresso Null, resultado ser Null.

Operador +
Utilizado para somar dois nmeros.
Sintaxe
resultado = expresso1+expresso2
A sintaxe do operador + possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
expresso1
Obrigatrio; qualquer expresso.
expresso2
Obrigatrio; qualquer expresso.
Comentrios
Quando voc utiliza o operador +, pode no ser capaz de determinar se ocorrer a adio ou a concatenao de
seqncias de caracteres. Utilize o operador & para a concatenao de forma a eliminar a ambigidade e fornecer cdigo
autodocumentvel.
Se pelo menos uma expresso no for Variant, as regras a seguir se aplicam:
Se
Ento
Ambas as expresses so tipos de dados numricosAdiciona.
(Byte, Boolean, Integer, Long, Single, Double, Date,
Currency ou Decimal)
Ambas as expresses so String
Concatena.
Uma expresso for um tipo de dados numrico e a Adiciona.
outra for qualquer Variant exceto Null
Uma expresso for um String e a outra for qualquerConcatena.
Variant exceto Null
Uma expresso for um Variant Empty
Retorna a outra expresso inalterada
como resultado.
Uma expresso for um tipo de dados numrico e a Um erro Type mismatch ocorre.
outra for um String
Qualquer uma das expresses for Null
resultado Null.
Se ambas as expresses forem Variant, as regras a seguir se aplicam:
Se
Ento
Ambas as expresses Variant forem numricas
Adiciona.
Ambas as expresses Variant forem seqncias deConcatena.
caracteres
Uma expresso Variant for numrica e a outra for uma Adiciona.
seqncia de caracteres
Para uma adio aritmtica simples envolvendo somente expresses de tipos de dados numricos, o tipo de dados de
resultado geralmente o mesmo da expresso mais precisa. A ordem de preciso, da menos para a mais precisa, Byte,
Integer, Long, Single, Double, Currency e Decimal. A seguir so apresentadas excees a essa ordem:
Se
Ento resultado ser
Um Single e um Long so adicionados,
um Double.
O tipo de dados de resultado for umaconvertido a uma variante de Double.
variante de Long, Single ou Date que
ultrapasse o intervalo permitido,
O tipo de dados de resultado for umaconvertido a uma variante de Integer.
variante de Byte que ultrapasse o intervalo
permitido,
O tipo de dados de resultado for umaconvertido a uma variante de Long.
variante de Integer que ultrapasse o
intervalo permitido,
Uma Date for adicionada a qualquer tipo deum Date.
dados,

Funes Internas

180

Se uma ou ambas as expresses forem Null, resultado ser Null. Se ambas as expresses forem Empty, resultado ser
um Integer. No entanto, se somente uma expresso for Empty, a outra ser retornada inalterada como resultado.
Observao A ordem de preciso utilizada para adio e subtrao no a mesma utilizada pela multiplicao.

Operador
Utilizado para encontrar a diferena entre dois nmeros ou para indicar o valor negativo em uma expresso numrica.
Sintaxe 1
resultado = nmero1nmero2
Sintaxe 2
nmero
A sintaxe do operador possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
nmero
Obrigatrio; qualquer expresso numrica.
nmero1
Obrigatrio; qualquer expresso numrica.
nmero2
Obrigatrio; qualquer expresso numrica.
Comentrios
Em Sintaxe 1, o operador o operador aritmtico de subtrao utilizado para encontrar a diferena entre dois nmeros.
Em Sintaxe 2, o operador utilizado como operador de negao unrio para indicar o valor negativo de uma expresso.
O tipo de dados de resultado geralmente o mesmo da expresso mais precisa. A ordem de preciso, da menos para a
mais precisa, Byte, Integer, Long, Single, Double, Currency e Decimal. A seguir esto algumas excees a essa
ordem:
Se
Ento resultado ser
A subtrao envolve um Single e um Long, convertido para Double.
O tipo de dados de resultado for um varianteconvertido para um Variant que contm um
de Long, Single ou Date que ultrapasse oDouble.
intervalo permitido,
O tipo de dados de resultado for umaconvertido para uma variante de Integer.
variante de Byte que ultrapasse o intervalo
permitido,
O tipo de dados de resultado for umaconvertido para uma variante de Long.
variante de Integer que ultrapasse o
intervalo permitido,
A subtrao envolve um Date e qualquerum Date.
outro tipo de dados,
A subtrao envolve duas expresses Date, um Double.
Se uma ou ambas as expresses forem Null, resultado ser Null. Se uma expresso for Empty, ela ser tratada como 0.
Observao A ordem de preciso utilizada pela adio e subtrao no a mesma utilizada pela multiplicao.

Operador *
Utilizado para multiplicar dois nmeros.
Sintaxe
resultado = nmero1*nmero2
A sintaxe do operador * possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
nmero1
Obrigatrio; qualquer expresso numrica.
nmero2
Obrigatrio; qualquer expresso numrica.
Comentrios
O tipo de dados de resultado geralmente o mesmo da expresso mais precisa. A ordem de preciso, da menos para a
mais precisa, Byte, Integer, Long, Single, Currency, Double e Decimal. A seguir esto algumas excees a essa
ordem:
Se
Ento resultado ser
A multiplicao envolve um Single e um Long, convertido para um Double.
O tipo de dados de resultado for uma variante deconvertido para um Variant contendo
Long, Single ou Date que ultrapasse o intervaloDouble.
permitido,
O tipo de dados de resultado for uma variante deconvertido para uma variante de Integer.
Byte que ultrapasse o intervalo permitido,
O tipo de dados de resultado for uma variante deconvertido para uma variante de Long.
Integer que ultrapasse o intervalo permitido,

um

Se uma ou ambas as expresses forem Null, resultado ser Null. Se uma expresso for Empty, ela ser tratada como 0.
Observao A ordem de preciso utilizada pela multiplicao no a mesma utilizada pela adio e subtrao.

Funes Internas

181

Operador /
Utilizado para dividir dois nmeros e retornar um resultado de vrgula flutuante.
Sintaxe
resultado = nmero1/nmero2
A sintaxe do operador / possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
nmero1
Obrigatrio; qualquer expresso numrica.
nmero2
Obrigatrio; qualquer expresso numrica.
Comentrios
O tipo de dados de resultado geralmente um Double ou uma variante de Double. A seguir so apresentadas excees a
essa regra:
Se
Ento resultado ser
Ambas as expresses forem expressesSingle, a menos que ele ultrapasse o
Byte, Integer ou Single,
intervalo permitido; nesse caso, um erro
ser gerado.
Ambas as expresses forem variantes de uma variante de Single, a menos que ela
Byte, Integer ou Single,
ultrapasse o intervalo permitido; nesse caso,
resultado ser um Variant contendo um
Double.
A diviso envolver um Decimal e qualquerum tipo de dados Decimal.
outro tipo de dados,
Se uma ou ambas as expresses forem Null, resultado ser Null. Qualquer expresso que seja Empty ser tratada como
0.

Operador \
Utilizado para dividir dois nmeros e retornar um resultado inteiro.
Sintaxe
resultado = nmero1\nmero2
A sintaxe do operador \ possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
nmero1
Obrigatrio; qualquer expresso numrica.
nmero2

Obrigatrio; qualquer expresso numrica.

Comentrios
Antes de a diviso ser realizada, as expresses numricas so arredondadas para expresses Byte, Integer ou Long.
Em geral, o tipo de dados de resultado um Byte, uma variante de Byte, um Integer, uma variante de Integer, um Long
ou uma variante de Long, independente de resultado ser um nmero inteiro. Qualquer parte fracionria truncada. No
entanto, se qualquer expresso for Null, resultado ser Null. Qualquer expresso que seja Empty ser tratada como 0.

Operador Mod
Utilizado para dividir dois nmeros e retornar somente o resto.
Sintaxe
resultado = nmero1 Mod nmero2
A sintaxe do operador Mod possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
nmero1
Obrigatrio; qualquer expresso numrica.
nmero2
Obrigatrio; qualquer expresso numrica.
Comentrios
O operador de mdulo, ou resto, divide nmero1 por nmero2 (arredondando nmeros de vrgula flutuante para inteiros) e
retorna somente o resto como resultado. Por exemplo, na expresso a seguir, A (resultado) igual a 5.
A = 19 Mod 6.7
Geralmente, o tipo de dados de resultado um Byte, uma variante de Byte, um Integer, uma variante de Integer, um Long
ou uma Variant contendo um Long, independente de resultado ser um nmero inteiro ou no. Qualquer parte fracionria
truncada. No entanto, se qualquer expresso for Null, resultado ser Null. Qualquer expresso que seja Empty ser
tratada como 0.

Operador &
Utilizado para forar a concatenao de seqncias de caracteres de duas expresses.

Funes Internas

182

Sintaxe
resultado = expresso1 & expresso2
A sintaxe do operador & possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel String ou Variant.
expresso1
Obrigatrio; qualquer expresso.
expresso2
Obrigatrio; qualquer expresso.
Comentrios
Se uma expresso no for uma seqncia de caracteres, ela ser convertida para uma variante de String. O tipo de dados
de resultado String se ambas as expresses forem expresses de seqncia de caracteres; caso contrrio, resultado
ser uma variante de String. Se ambas as expresses forem Null, resultado ser Null. No entanto, se somente uma
expresso for Null, essa expresso ser tratada como uma seqncia de caracteres de comprimento zero ("") quando
concatenada com outra expresso. Qualquer expresso que seja Empty tratada tambm como uma seqncia de
caracteres de comprimento zero.

Funes Internas

183

Operadores de comparao
Utilizados para comparar expresses.
Sintaxe
resultado = expresso1 operadordecomparao expresso2
resultado = objeto1 Is objeto2
resultado = seqnciadecaracteres Like padro
Os operadores de comparao possuem as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
expresso
Obrigatrio; qualquer expresso.
operadordecomparao
Obrigatrio; qualquer operador de comparao.
objeto
Obrigatrio; qualquer nome de objeto.
seqnciadecaracteres
Obrigatrio; qualquer expresso de seqncia
caracteres.
padro
Obrigatrio; qualquer expresso de seqncia
caracteres ou intervalo de caracteres.

de
de

Comentrios
A tabela a seguir contm uma lista dos operadores de comparao e as condies que determinam se resultado True,
False ou Null:
Operador
True se
False se
Null se
< (Menor que)
expresso1
<expresso1
>=expresso1
ou
expresso2
expresso2
expresso2 = Null
<= (Menor que ouexpresso1
<=expresso1
>expresso1
ou
igual a)
expresso2
expresso2
expresso2 = Null
> (Maior que)
expresso1
>expresso1
<=expresso1
ou
expresso2
expresso2
expresso2 = Null
>= (Maior que ouexpresso1
>=expresso1
<expresso1
ou
igual a)
expresso2
expresso2
expresso2 = Null
= (Igual a)
expresso1
=expresso1
<>expresso1
ou
expresso2
expresso2
expresso2 = Null
<> (Diferente de) expresso1
<>expresso1
=expresso1
ou
expresso2
expresso2
expresso2 = Null
Observao Os operadores Is e Like apresentam uma funcionalidade de comparao especfica que os diferencia dos
operadores dessa tabela.
Ao comparar duas expresses, voc pode no ser capaz de determinar com facilidade se as expresses esto sendo
comparadas como nmeros ou como seqncias de caracteres. A tabela a seguir mostra como as expresses so
comparadas ou o resultado quando uma das expresses no um Variant:
Se
Ento
Ambas as expresses so tipos de dados Efetuam uma comparao numrica.
numricos (Byte, Boolean, Integer, Long,
Single, Double, Date, Currency ou
Decimal)
Ambas as expresses so String
Efetuam
uma
comparao
de
seqncias de caracteres.
Uma expresso um tipo de dados Efetuam uma comparao numrica.
numrico e a outra um Variant que , ou
pode ser, um nmero
Uma expresso um tipo de dados Um erro Type Mismatch ocorre.
numrico e a outra um Variant de
seqncia de caracteres que no pode ser
convertido para um nmero
Uma expresso um String e a outra Efetuam
uma
comparao
de
qualquer Variant exceto Null
seqncias de caracteres.
Uma expresso Empty e a outra um Efetuam uma comparao numrica,
tipo de dados numrico
utilizando 0 como a expresso Empty.
Uma expresso Empty e a outra um Efetuam
uma
comparao
de
String
seqncias de caracteres, utilizando
uma seqncia de caracteres de
comprimento zero ("") como a expresso
Empty.
Se tanto expresso1 quanto expresso2 so expresses Variant, seus tipos bsicos determinam como elas sero
comparadas. A tabela a seguir mostra como as expresses so comparadas ou o resultado da comparao, dependendo
do tipo bsico da Variant:
Se
Ento
Ambas as expresses Variant so Efetuam uma comparao numrica.
numricas
Ambas as expresses Variant so Efetuam
uma
comparao
de

Funes Internas

184

seqncias de caracteres
Uma expresso Variant numrica e a
outra uma seqncia de caracteres
Uma expresso Variant Empty e a outra
numrica
Uma expresso Variant Empty e a outra
uma seqncia de caracteres

Ambas as expresses Variant so Empty

seqncias de caracteres.
A expresso numrica menor que a
expresso de seqncia de caracteres.
Efetuam uma comparao numrica,
utilizando 0 como a expresso Empty.
Efetuam
uma
comparao
de
seqncia de caracteres, utilizando
uma seqncia de caracteres de
comprimento zero ("") como a
expresso Empty.
As expresses so iguais.

Quando um Single comparado a um Double, o Double arredondado preciso de Single.


Se um Currency comparado com um Single ou Double, Single ou Double convertido para um Currency. Da mesma
forma, quando um Decimal comparado com um Single ou Double, o Single ou Double convertido para um Decimal.
Para Currency, qualquer valor fracionrio menor que 0,0001 pode ser perdido; para Decimal, qualquer valor fracionrio
menor que 1E-28 pode ser perdido ou um erro de sobrecarga pode ocorrer. Essa perda de valores fracionais pode fazer
com que dois valores sejam considerados iguais quando na verdade no o so.

Operador And
Utilizado para efetuar uma conjuno lgica em duas expresses.
Sintaxe
resultado = expresso1 And expresso2
A sintaxe do operador And possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
expresso1
Obrigatrio; qualquer expresso.
expresso2
Obrigatrio; qualquer expresso.
Comentrios
Se ambas as expresses forem avaliadas como True, resultado ser True. Se uma das expresses for avaliada como
False, resultado ser False. A tabela a seguir mostra como resultado determinado:
Se expresso1 for
E expresso2 for
O resultado ser
True
True
True
True
False
False
True
Null
Null
False
True
False
False
False
False
False
Null
False
Null
True
Null
Null
False
False
Null
Null
Null
O operador And tambm efetua uma comparao bit-a-bit dos bits posicionados da mesma forma em duas expresses
numricas e define o bit correspondente em resultado de acordo com a tabela a seguir:
Se
o
bit
naE
o
bit
naO resultado ser
expresso1 for
expresso2 for
0
0
0
0
1
0
1
0
0
1
1
1

Operador Eqv
Utilizado para efetuar uma equivalncia lgica em duas expresses.
Sintaxe
resultado = expresso1 Eqv expresso2
A sintaxe do operador Eqv possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica
expresso1
Obrigatrio; qualquer expresso.
expresso2
Obrigatrio; qualquer expresso.
Comentrios
Se uma das expresses for Null, resultado tambm ser Null. Se nenhuma das expresses for Null, resultado ser
determinado de acordo com a tabela a seguir:
Se expresso1 for
E expresso2 for
O resultado ser
True
True
True
True
False
False
False
True
False

Funes Internas

185

False

False

True

O operador Eqv executa uma comparao bit-a-bit dos bits posicionados da mesma forma em duas expresses numricas
e define o bit correspondente em resultado de acordo com a tabela a seguir:
Se
o
bit
naE o bit na expresso2O resultado ser
expresso1 for
for
0
0
1
0
1
0
1
0
0
1
1
1

Operador Imp
Utilizado para efetuar uma implicao lgica em duas expresses.
Sintaxe
resultado = expresso1 Imp expresso2
A sintaxe do operador Imp possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica
expresso1
Obrigatrio; qualquer expresso.
expresso2
Obrigatrio; qualquer expresso.
Comentrios
A tabela a seguir mostra como resultado determinado:
Se expresso1 for
E expresso2 for
True
True
True
False
True
Null
False
True
False
False
False
Null
Null
True
Null
False
Null
Null

O resultado ser
True
False
Null
True
True
True
True
Null
Null

O operador Imp efetua uma comparao bit-a-bit dos bits posicionados da mesma forma em duas expresses numricas e
define o bit correspondente em resultado de acordo com a tabela a seguir:
Se o bit na expresso1 for
E o bit na expresso2 for
O resultado ser
0
0
1
0
1
1
1
0
0
1
1
1

Funes Internas

186

Operador Not
Utilizado para efetuar uma negao lgica em uma expresso.
Sintaxe
resultado = Not expresso
A sintaxe do operador Not possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
expresso1
Obrigatrio; qualquer expresso.
Comentrios
A tabela a seguir mostra como resultado determinado:
Se expresso for
Ento resultado ser
True
False
False
True
Null
Null
Alm disso, o operador Not inverte os valores de bit de qualquer varivel e define o bit correspondente em resultado de
acordo com a tabela a seguir:
Se
o
bit
naEnto
o
bit
em
resultado
expresso for
ser
0
1
1
0

Operador Or
Utilizado para efetuar uma disjuno lgica em duas expresses.
Sintaxe
resultado = expresso1 Or expresso2
A sintaxe do operador Or possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
expresso1
Obrigatrio; qualquer expresso.
expresso2
Obrigatrio; qualquer expresso.
Comentrios
Se uma ou ambas as expresses forem True, resultado ser True. A tabela a seguir mostra como resultado determinado:
Se expresso1 for
E expresso2 for
Ento resultado ser
True
True
True
True
False
True
True
Null
True
False
True
True
False
False
False
False
Null
Null
Null
True
True
Null
False
Null
Null
Null
Null
O operador Or tambm efetua uma comparao bit-a-bit dos bits posicionados da mesma forma em duas expresses
numricas e define o bit correspondente em resultado de acordo com a tabela a seguir:
Se
o
bit
naE
o
bit
naEnto resultado ser
expresso1 for
expresso2 for
0
0
0
0
1
1
1
0
1
1
1
1

Operador Xor
Utilizado para efetuar uma excluso lgica em duas expresses.
Sintaxe
[resultado =] expresso1 Xor expresso2
A sintaxe do operador Xor possui as partes a seguir:
Parte
Descrio
resultado
Opcional; qualquer varivel numrica.
expresso1
Obrigatrio; qualquer expresso.
expresso2
Obrigatrio; qualquer expresso.
Comentrios

Funes Internas

187

Se uma, e somente uma, das expresses resultar em True, resultado ser True. No entanto, se uma das expresses for
Null, resultado tambm ser Null. Quando nenhuma das expresses for Null, resultado ser determinado de acordo com a
tabela a seguir:
Se expresso1 for
E expresso2 for
Ento resultado ser
True
True
False
True
False
True
False
True
True
False
False
False
O operador Xor funciona tanto como um operador lgico quanto bit-a-bit. Uma comparao bit-a-bit de duas expresses
utilizando Xor lgico para definir o resultado, como mostrado na tabela a seguir:
Se
o
bit
naE
o
bit
naO resultado ser
expresso1 for
expresso2 for
0
0
1
1

0
1
0
1

0
1
1
0

Funes Internas

188

Operador Is
Utilizado para comparar duas variveis de referncia de objeto.
Sintaxe
resultado = objeto1 Is objeto2
A sintaxe do operador Is possui as partes a seguir:
Parte
Descrio
resultado Obrigatrio; qualquer varivel numrica.
objeto1
Obrigatrio; qualquer nome de objeto.
objeto2
Obrigatrio; qualquer nome de objeto.
Comentrios
Se tanto objeto1 quanto objeto2 referem-se ao mesmo objeto, resultado ser True; caso contrrio, resultado ser False.
Duas variveis podem se referir ao mesmo objeto de diversas formas.
No exemplo a seguir, A foi definido de forma a se referir ao mesmo objeto que B:
Set A = B
O exemplo a seguir faz com que A e B se refiram ao mesmo objeto que C:
Set A = C
Set B = C

Operador Like
Utilizado para comparar duas seqncias de caracteres.
Sintaxe
resultado = seqnciadecaracteres Like padro
A sintaxe do operador Like possui as partes a seguir:
Parte
Descrio
resultado
Obrigatrio; qualquer varivel numrica.
seqnciadecaracteres
Obrigatrio; qualquer expresso de seqncia de
caracteres.
padro
Obrigatrio; qualquer expresso de seqncia de
caracteres que esteja de acordo com as convenes de
correspondncia de padro descritas em "Comentrios".
Comentrios
Se seqnciadecaracteres corresponder a padro, resultado ser True; caso contrrio, resultado ser False. Se
seqnciadecaracteres ou padro for Null, resultado ser Null.
O comportamento do operador Like depende da instruo Option Compare. O mtodo padro de comparao de
seqncias de caracteres para cada mdulo Option Compare Binary.
Option Compare Binary resulta em comparaes de seqncias de caracteres baseadas em uma ordem de classificao
derivada das representaes binrias internas dos caracteres. No Microsoft Windows, a ordem de classificao
determinada pela pgina de cdigo. No exemplo a seguir, uma ordem de classificao binria tpica apresentada:
A<B<E<Z<a<b<e<z<<<<<<
Option Compare Text resulta em comparaes de seqncias de caracteres baseadas em uma ordem de classificao
textual, sem coincidir maisculas ou minsculas, determinada pela localidade de seu sistema. Quando voc classifica os
mesmos caracteres utilizando Option Compare Text, o seguinte texto de ordem de classificao produzido:
(A=a) < (=) < (B=b) < (E=e) < (=) < (Z=z) < (=)
A correspondncia de padro interna representa uma ferramenta verstil para comparaes de seqncias de caracteres.
Os recursos de correspondncia de padro permitem que voc utilize caracteres curinga, listas de caracteres ou intervalos
de caracteres, em qualquer combinao, para fazer a correspondncia de seqncias de caracteres. A tabela a seguir
mostra os caracteres permitidos em padro e a o que eles correspondem:
Caracteres
emCorrespondem na seqnciadecaracteres a
padro
?
Qualquer caractere nico.
*
Zero ou mais caracteres.
#
Qualquer dgito nico (09).
[listadecarac]
Qualquer caractere nico em listadecarac.
[!listadecarac]
Qualquer caractere nico que no esteja em listadecarac.
Um grupo de um ou mais caracteres (listadecarac) entre colchetes ([ ]) pode ser utilizado para corresponder a qualquer
caractere nico em seqnciadecaracteres e pode incluir quase qualquer cdigo de caractere, incluindo dgitos.
Observao
Para fazer a correspondncia dos caracteres especiais colchete esquerdo ([), ponto de interrogao
(?),nmero (#) e asterisco (*), coloque-os entre colchetes. O colchete direito (]) no pode ser utilizado dentro de um grupo
para corresponder a si prprio, mas pode ser utilizado fora de um grupo como um caractere individual.
Ao utilizar um hfen () para separar os limites superior e inferior do intervalo, listadecarac pode especificar um intervalo de
caracteres. Por exemplo, [A-Z] resulta em uma correspondncia se a posio do caractere correspondente em
seqnciadecaracteres contiver qualquer letra em caixa alta no intervalo de AZ. Intervalos mltiplos so includos entre os
colchetes sem delimitadores.

Funes Internas

189

O significado de um intervalo especificado depende da ordem dos caracteres vlida em tempo de execuo (como
determinado por Option Compare e pela definio da localidade do sistema no qual o cdigo est sendo executado).
Utilizando o exemplo de Option Compare Binary, o intervalo de [AE] corresponde a A, B e E. Com Option Compare
Text, [AE] corresponde a A, a, , , B, b, E, e. O intervalo no corresponde a ou porque caracteres acentuados
situam-se aps caracteres no acentuados na ordem de classificao.
Outras regras importantes para a correspondncia de padro incluem:
Um ponto de exclamao (!) no incio de listadecarac significa que uma correspondncia realizada se qualquer caractere,
com exceo daqueles em listadecarac, for encontrado em seqnciadecaracteres. Quando utilizado fora de colchetes, o
ponto de exclamao corresponde a si mesmo.
Um hfen () pode aparecer tanto no incio (aps um ponto de exclamao, se um for utilizado) quanto no final de
listadecarac para corresponder a si mesmo. Em qualquer outra localizao, o hfen utilizado para identificar um intervalo
de caracteres.
Quando um intervalo de caracteres especificado, estes devem aparecer em uma ordem de classificao crescente (do
menor para o maior). [A-Z] um padro vlido, mas [Z-A] no o .
A seqncia de caracteres [] considerada uma seqncia de caracteres de comprimento zero ("").
Em alguns idiomas, existem caracteres especiais no alfabeto que representam dois caracteres diferentes. Por exemplo,
diversos idiomas utilizam o caractere "" para representar os caracteres "a" e "e" quando eles aparecem juntos. O
operador Like reconhece a equivalncia entre o caractere especial nico e os dois caracteres individuais.
Quando um idioma que utiliza um caractere especial especificado nas definies de localidade do sistema, uma
ocorrncia do caractere especial nico em padro ou seqnciadecaracteres corresponde seqncia de dois caracteres
equivalente na outra seqncia de caracteres. Da mesma forma, um caractere especial nico em padro entre colchetes
(sozinho, em uma lista ou em um intervalo) corresponde seqncia de dois caracteres equivalente em
seqnciadecaracteres.
Exemplo da propriedade Count
Este exemplo utiliza a propriedade Count do objeto Collection para especificar quantas iteraes so requeridas para
remover todos os elementos da coleo MinhasClasses. Quando as colees so indexadas numericamente, a base 1
como padro. Como as colees so reindexadas automaticamente quando feita uma remoo, o cdigo a seguir remove
o primeiro membro em cada iterao.
Dim Num, MinhasClasses
For Num = 1 To MinhasClasses.Count
' Remove o nome da coleo.
MinhasClasses.Remove 1 ' Os ndices numricos da coleo padro
Next ' comeam em 1.
Exemplo da propriedade Description
Este exemplo atribui uma mensagem definida pelo usurio propriedade Description do objeto Err.
Err.Description = "No foi possvel acessar um objeto necessrio " _
& "para esta operao".
Exemplo da propriedade HelpContext
Este exemplo utiliza a propriedade HelpContext do objeto Err para mostrar o tpico da Ajuda do Visual Basic relativo ao
erro Sobrecarga.
Dim Msg
Err.Clear
On Error Resume Next
Err.Raise 6 ' Gera o erro "Sobrecarga".
If Err.Number <> 0 Then
Msg = "Pressione F1 ou Ajuda para ver " & Err.HelpFile & " o tpico relativo ao" & _
" seguinte ContextoDaAjuda: " & Err.HelpContext
MsgBox Msg, , "Erro: " & Err.Description, Err.HelpFile, _
Err.HelpContext
End If
Exemplo da propriedade HelpFile
Este exemplo utiliza a propriedade HelpFile do objeto Err para iniciar o sistema de Ajuda do Microsoft Windows. Como
padro, a propriedade HelpFile contm o nome do arquivo de Ajuda do Visual Basic.
Dim Msg
Err.Clear
On Error Resume Next ' Suprime os erros por finalidade demonstrativa.
Err.Raise 6
' Gera o erro "Sobrecarga".
Msg = "Pressione F1 ou Ajuda para ver " & Err.HelpFile & _
" o tpico relativo a este erro"
MsgBox Msg, , "Erro: " & Err.Description,Err.HelpFile, Err.HelpContext

Funes Internas

190

Exemplo da propriedade LastDLLError


Quando colado em um mdulo UserForm, o cdigo a seguir ocasiona a tentativa de chamar uma funo DLL. A chamada
falha porque o argumento que passado (um ponteiro nulo) gera um erro e, em qualquer evento, a SQL no pode ser
cancelada se no estiver sendo executada. O cdigo seguinte chamada verifica o retorno da chamada e, em seguida,
impresso na propriedade LastDLLError do objeto Err para revelar o cdigo do erro.
Private Declare Function SQLCancel Lib "ODBC32.dll" _
(ByVal hstmt As Long) As Integer
Private Sub UserForm_Click()
Dim ValRet
' Chama com argumento invlido.
ValRet = SQLCancel(myhandle&)
' Procura pelo cdigo de erro SQL.
If ValRet = -2 Then
'Exibe o cdigo de informaes.
MsgBox "O cdigo do erro :" & Err.LastDllError
End If
End Sub
Exemplo da propriedade Number
O primeiro exemplo ilustra um uso tpico da propriedade Number em uma rotina de tratamento de erros. O segundo
exemplo examina a propriedade Number do objeto Err para determinar se um erro retornado por um objeto de Automao
foi definido pelo objeto ou se foi mapeado para um erro definido pelo Visual Basic. Observe que a constante vbObjectError
um nmero negativo muito grande que um objeto adiciona ao seu prprio cdigo de erro para indicar que o erro definido
pelo servidor. Portanto, subtra-lo de Err.Number o exclui do resultado. Se o erro for definido pelo objeto, o nmero base
ser deixado em MeuErro, que exibido em uma caixa de mensagem junto com a fonte original do erro. Se Err.Number
representa um erro do Visual Basic, ento o nmero do erro do Visual Basic exibido na caixa de mensagem.
' Uso tpico da propriedade Number
Sub test()
On Error GoTo out
Dim x, y
x = 1 / y ' Cria o erro de diviso por zero
Exit Sub
out:
MsgBox Err.Number
MsgBox Err.Description
' Procura pelo erro de diviso por zero
If Err.Number = 11 Then
y=y+1
End If
Resume
End Sub

' Utilizando a propriedade Number com um erro de um


' objeto de Automao
Dim MeuErro, Msg
' Primeiro exclua a constante adicionada pelo objeto para indicar um dos
' seus prprios erros.
MeuErro = Err.Number - vbObjectError
' Se voc subtrair a constante vbObjectError e o nmero continuar
' no intervalo 0-65,535, trata-se de um cdigo de erro definido pelo objeto.
If MeuErro > 0 And MeuErro < 65535 Then
Msg = "O objeto que voc acessou atribuiu este nmero ao erro: " _
& MeuErro & ". Quem deu origem ao erro foi: " _
& Err.Source & ". Pressione F1 para ver o tpico da Ajuda que deu origem".
' Caso contrrio, o nmero de erro do Visual Basic.
Else
Msg = "Este erro (# " & Err.Number & ") um nmero de erro do Visual Basic" & _
" Pressione o boto Ajuda ou F1 para obter o" _
& " tpico da Ajuda do Visual Basic sobre este erro.
End If
MsgBox Msg, , "Erro de objeto", Err.HelpFile, Err.HelpContext
Exemplo da propriedade Source

Funes Internas

191

Este exemplo atribui a identificao Programtica de um objeto de Automao criado no Visual Basic varivel
MeuCdigoDeObjeto e, em seguida, o atribui propriedade Source do objeto Err quando gera um erro com o mtodo
Raise. Quando estiver tratando de erros, voc no deve usar a propriedade Source (nem nenhuma propriedade Err
diferente de Number) programaticamente. O nico uso vlido de propriedades diferentes de Number a exibio de
informaes ricas para um usurio final nos casos em que voc no conseguir tratar um erro. O exemplo assume que
Aplicativo e MinhaClasse so referncias vlidas.
Dim MinhaClasse, MeuCdigoDeObjeto, MeuArquivoDeAjuda, MeuContextoDeAjuda
' Um objeto do tipo MinhaClasse gera um erro e preenche todas as propriedades do objeto Err,
' incluindo Source, que recebe MeuCdigoDeObjeto, que uma
' combinao da propriedade Title do objeto App e da
' propriedade do objeto MinhaClasse.
MeuCdigoDeObjeto = App.Title & "." & MinhaClasse.Name
Err.Raise Number := vbObjectError + 894, Source := MeuCdigoDeObjeto, _
Description := "No foi possvel completar a sua tarefa", _
HelpFile := MeuArquivoDeAjuda, HelpContext := MeuContextoDeAjuda

Propriedade Calendar
Retorna ou configura um valor especificando o tipo de calendrio a ser usado com seu projeto.
Voc pode usar uma das duas configuraes abaixo para Calendar:
Configurao
Valor
Descrio
vbCalGreg
0
Use o calendrio Gregoriano (padro).
vbCalHijri
1
Use o calendrio Hijri.
Observaes
Voc somente pode configurar a propriedade Calendar atravs de programa. Por exemplo, para usar o calendrio Hijri,
use:
Calendar = vbCalHijri

Funes Internas

192

Propriedade Count
Retorna um Long (nmero inteiro longo) que contm o nmero de objetos de uma coleo. Somente leitura.

Propriedade Description
Retorna ou define uma expresso de seqncia de caracteres que contm uma seqncia de caracteres descritiva
associada a um objeto. Leitura/gravao.
Para o objeto Err, retorna ou define uma seqncia de caracteres descritiva associada a um erro.
Comentrios
A definio da propriedade Description consiste em uma breve descrio do erro. Utilize essa propriedade para alertar o
usurio sobre um erro que voc no pode ou no deseja manipular. Quando gerar um erro definido pelo usurio, atribua
uma breve descrio do erro propriedade Description. Se Description no estiver preenchida e o valor de Number
corresponder a um erro em tempo de execuo do Visual Basic, a seqncia de caracteres retornada pela funo Error
ser localizada em Description quando o erro for gerado.

Propriedade HelpContext
Retorna ou define uma expresso de seqncia de caracteres que contm a identificao de contexto de um tpico em um
arquivo de Ajuda do Microsoft Windows. Leitura/gravao.
Comentrios
A propriedade HelpContext utilizada para exibir automaticamente o tpico de Ajuda especificado na propriedade
HelpFile. Se tanto HelpFile quanto HelpContext estiverem vazios, o valor de Number ser selecionado. Se Number
corresponder a um valor de erro em tempo de execuo do Visual Basic, a identificao de contexto da Ajuda do Visual
Basic para o erro ser utilizada. Se o valor de Number no corresponder a um erro do Visual Basic, a tela de contedo do
arquivo de Ajuda do Visual Basic ser exibida.
Observao Voc deve colocar rotinas de manipulao de erros tpicos no seu aplicativo. Ao programar com um objeto,
voc pode utilizar o arquivo de Ajuda do objeto para melhorar a qualidade da manipulao de erros ou para exibir uma
mensagem significativa para seu usurio se o erro no for recupervel.

Propriedade HelpFile
Retorna ou define em uma expresso de seqncia de caracteres o caminho completo para um arquivo de Ajuda do
Microsoft Windows. Leitura/gravao.
Comentrios
Se um arquivo de Ajuda for especificado em HelpFile, ele ser automaticamente chamado quando o usurio pressionar o
boto Help (ou a tecla F1) na caixa de dilogo de mensagem de erro. Se a propriedade HelpContext contiver uma
identificao de contexto vlida para o arquivo especificado, aquele tpico ser automaticamente exibido. Se nenhum
HelpFile for especificado, o arquivo de Ajuda do Visual Basic ser exibido.
Observao Voc deve colocar rotinas de manipulao de erros tpicos no seu aplicativo. Ao programar com um objeto,
voc pode utilizar o arquivo de Ajuda do objeto para melhorar a qualidade da manipulao de erros ou para exibir uma
mensagem significativa para seu usurio se o erro no for recupervel.

Funes Internas

193

Propriedade LastDLLError
Retorna um cdigo de erro de sistema produzido por uma chamada a uma biblioteca de vnculo dinmico (DLL). Somenteleitura.
Comentrios
A propriedade LastDLLError aplica-se somente a chamadas a DLL feitas a partir de cdigo do Visual Basic. Quando tal
chamada feita, a funo chamada retorna um cdigo indicando xito ou falha, e a propriedade LastDLLError
preenchida. Verifique a documentao das funes da DLL para determinar os valores de retorno que indicam xito ou
falha. Sempre que o cdigo de falha retornado, o aplicativo do Visual Basic deve verificar imediatamente a propriedade
LastDLLError. Nenhuma exceo levantada quando a propriedade LastDLLError est definida.

Propriedade Number
Retorna ou define um valor numrico que especifica um erro. Number a propriedade padro do objeto Err.
Leitura/gravao.
Comentrios
Quando retornar um erro definido pelo usurio de um objeto, defina Err.Number adicionando o nmero que voc
selecionou como cdigo de erro constante. vbObjectError. Por exemplo, para retornar o nmero 1051 como um cdigo
de erro voc usaria o cdigo a seguir:
Err.Raise Number := vbObjectError + 1051, Source:= "AlgumaClasse"

Propriedade Source
Retorna ou define uma expresso de seqncia de caracteres que especifica o nome do objeto ou aplicativo que
originalmente gerou o erro. Leitura/gravao.
Comentrios
A propriedade Source especifica uma expresso de seqncia de caracteres que representa o objeto que gerou o erro; a
expresso normalmente o nome de classe do objeto ou uma identificao programtica. Utilize Source para fornecer
informaes quando seu cdigo no for capaz de manipular um erro gerado em um objeto acessado. Por exemplo, se voc
acessar o Microsoft Excel e ele gerar um erro Division by zero, o Microsoft Excel define Err.Number para seu cdigo de
erro correspondente e define Source como Excel.Application.
Quando gerar um erro a partir do cdigo, Source ser a identificao programtica do seu aplicativo. Para mdulos de
classe, Source deve conter um nome com a forma projeto.classe. Quando um erro inesperado ocorre em seu cdigo, a
propriedade Source automaticamente preenchida. Para erros em um mdulo padro, Source contm o nome do projeto.
Para erros em um mdulo de classe, Source contm um nome com a forma projeto.classe.

Funes Internas

194

Exemplo da instruo DeleteSetting


O exemplo a seguir primeiro utiliza a instruo SaveSetting para criar entradas no Registro do Windows (ou no arquivo .ini
nas plataformas Windows de 16 bits) para o aplicativo MeuAplicativo e, em seguida, utiliza a instruo DeleteSetting para
remov-las. Como no h argumento key especificado, toda a seo excluda, incluindo o nome da seo e todas as
suas chaves.
' Insere algumas definies no Registro.
SaveSetting appname := "MeuAplicativo", section := "Inicializao", _
key := "Superior", setting := 75
SaveSetting "MeuAplicativo","Inicializao", "Esquerda", 50
' Remove a seo e todas as suas definies do Registro.
DeleteSetting "MeuAplicativo", "Inicializao"
Exemplo da funo GetAllSettings
Este exemplo primeiro utiliza a instruo SaveSetting para criar entradas no Registro do Windows (ou no arquivo .ini nas
plataformas Windows de 16 bits) para o aplicativo especificado como appname e, em seguida, utiliza a funo
GetAllSettings para exibir as configuraes. Observe que os nomes de aplicativo e os nomes de section no podem ser
recuperados com GetAllSettings. Por fim, a instruo DeleteSetting remove as entradas do aplicativo.
' Variant para conter uma matriz bidimensional retornada por GetAllSettings
' Integer para conter o contador.
Dim MinhasDefinies As Variant, DefiniesInt As Integer
' Insere algumas definies no Registro.
SaveSetting appname := "MeuAplicativo", section := "Inicializao", _
key := "Superior", setting := 75
SaveSetting "MeuAplicativo","Inicializao", "Esquerda", 50
' Recupera as definies.
MinhasDefinies = GetAllSettings(appname := "MeuAplicativo", section := "Inicializao")
For DefiniesInt = LBound(MinhasDefinies, 1) To UBound(MinhasDefinies, 1)
Debug.Print MinhasDefinies(DefiniesInt, 0), MinhasDefinies(DefiniesInt, 1)
Next DefiniesInt
DeleteSetting "MeuAplicativo", "Inicializao"
Exemplo da funo GetSetting
Este exemplo primeiro utiliza a instruo SaveSetting para criar entradas no Registro do Windows (ou no arquivo .ini nas
plataformas Windows de 16 bits) para o aplicativo especificado como appname e, em seguida, utiliza a funo GetSetting
para exibir uma das definies. Como o argumento default especificado, algum valor certamente ser retornado. Observe
que os nomes de section no podem ser recuperados com GetSetting. Por fim, a instruo DeleteSetting remove todas
as entradas do aplicativo.
' Variant para conter uma matriz bidimensional retornada por GetSetting.
Dim MinhasDefinies As Variant
' Insira algumas definies no Registro.
SaveSetting "MeuAplicativo","Inicializao", "Superior", 75
SaveSetting "MeuAplicativo","Inicializao", "Esquerda", 50
Debug.Print GetSetting(appname := "MeuAplicativo", section := "Inicializao", _
key := "Esquerda", default := "25")
DeleteSetting "MeuAplicativo", "Inicializao"
Exemplo da instruo SaveSetting
O exemplo a seguir primeiro utiliza a instruo SaveSetting para criar entradas no Registro do Windows (ou no arquivo .ini
nas plataformas Windows de 16 bits) para o aplicativo MeuAplicativo e, em seguida, utiliza a instruo DeleteSetting para
remov-las.
' Insere algumas definies no Registro.
SaveSetting appname := "MeuAplicativo", section := "Inicializao", _
key := "Superior", setting := 75
SaveSetting "MeuAplicativo","Inicializao", "Esquerda", 50
' Remove a seo e todas as suas definies do Registro.
DeleteSetting "MeuAplicativo", "Inicializao"

Instruo DeleteSetting
Exclui uma seo ou definio de chave existente na entrada de um aplicativo no Registro do Windows.
Sintaxe
DeleteSetting appname, section[,key]
A sintaxe da instruo DeleteSetting possui estes argumentos nomeados:
Parte
Descrio
appname
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
do aplicativo ou projeto ao qual se aplica a seo ou a definio de
chave.

Funes Internas

195

section

key

Obrigatrio. Espresso de seqncia de caracteres que contm o nome


da seo da qual a definio da chave est sendo excluda. Se forem
fornecidos somente appname e section, a seo especificada ser
excluda juntamente com todas as definies de chave relacionadas.
Opcional. Expresso de seqncia de caracteres que contm o nome da
definio da chave sendo excluda.

Comentrios
Se todos os argumentos forem fornecidos, a definio da chave especificada ser excluda. Entretanto, a instruo
DeleteSetting no far nada se a seo ou a definio de chave no existir.

Funo GetAllSettings
Retorna uma lista de definies de chave e seus respectivos valores (originariamente criados com SaveSetting) a partir da
entrada de um aplicativo no Registro do Windows.
Sintaxe
GetAllSettings(appname, section)
A sintaxe da funo GetAllSettings possui estes argumentos nomeados:
Parte
Descrio
appname
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
do aplicativo ou projeto cujas definies de chave so solicitadas.
section
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
da seo cujas definies de chave so solicitadas. GetAllSettings
retorna um Variant cujo contedo uma matriz bidimensional de
seqncias de caracters contendo todas as definies de chave da
seo especificada e seus valores correspondentes.
Comentrios
GetAllSettings retorna um Variant no inicializada se appname ou section no existir.

Funo GetSetting
Retorna um valor de definio da chave para uma entrada de aplicativo no Registro do Windows.
Sintaxe
GetSetting(appname, section, key[,default])
A sintaxe da funo GetSetting possui estes argumentos nomeados:
Parte
Descrio
appname
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
do aplicativo ou projeto cuja definio de chave solicitada.
section
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
da seo onde se encontra a definio de chave.
key
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
da definio de chave a ser retornada.
default
Opcional. Expresso que contm o valor a retornar se nenhum valor for
definido na definio da chave. Se for omitido, default ser assumido
como uma seqncia de caracters de tamanho nulo ("").
Comentrios
Se qualquer dos itens nomeados nos argumentos de GetSetting no existirem, GetSetting retornar o valor do default.

Instruo SaveSetting
Salva ou cria uma entrada de aplicativo no Registro do Windows.
Sintaxe
SaveSetting appname, section, key, setting
A sintaxe da instruo SaveSetting possui estes argumentos nomeados:
Parte
Descrio
appname
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
do aplicativo ou projeto ao qual se aplica a definio.
section
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
da seo em que a definio da chave est sendo salva.
key
Obrigatrio. Espresso de seqncia de caracteres que contm o nome
da definio de chave sendo salva.
setting
Obrigatrio. Expresso que contm o valor com que key est sendo
definido.
Comentrios
Ocorrer um erro se, por qualquer motivo, a definio da chave no puder ser salva.
Exemplo da funo Chr
Este exemplo utiliza a funo Chr para retornar o caractere associado ao cdigo de caractere especificado.
Dim MeuCar
MeuCar = Chr(65) ' Retorna A.

Funes Internas

196

MeuCar = Chr(97) ' Retorna a.


MeuCar = Chr(62) ' Retorna >.
MeuCar = Chr(37) ' Retorna %.
Exemplo da funo Format
Este exemplo mostra vrios usos da funo Format para formatar valores utilizando tanto formatos nomeados quanto
formatos definidos pelo usurio. Para o separador de data (/), separador de hora (:) e literal AM/PM, a sada formatada real
exibida pelo seu sistema depende das definies da localidade em que o cdigo est sendo executado. Quando as horas e
datas so exibidas no ambiente de desenvolvimento, so usados o formato de hora abreviada e o formato de data
abreviada da localidade do cdigo. Quando exibidas pela execuo do cdigo, so usados o formato de hora abreviada e o
formato de data abreviada da localidade do sistema, que podem diferir da localidade do cdigo. Para este exemplo,
pressupe-se Ingls/E.U.A.
MinhaHora e MinhaData so exibidas no ambiente de desenvolvimento usando-se a definio de hora abreviada e a
definio de data abreviada.
Dim MinhaHora, MinhaData, MinhaSeq
MinhaHora = #17:04:23#
MinhaData = #Janeiro 27, 1993#
' Retorna a hora atual do sistema no formato de hora completa definido pelo usurio.
MinhaSeq = Format(Time, "Long Time")
' Retorna a data atual do sistema no formato de data completa definido pelo usurio.
MinhaSeq = Format(Date, "Long Date")
MinhaSeq = Format(MinhaHora, "h:m:s") ' Retorna "17:4:23".
MinhaSeq = Format(MinhaHora, "hh:mm:ss AM/PM") ' Retorna "05:04:23 PM".
MinhaSeq = Format(MinhaData, "dddd, mmm d yyyy")
' Retorna "Quarta-feira,
' 27 jan 1993".
' Se o formato no for fornecido, retornada uma seqncia de caracteres.
MinhaSeq = Format(23) ' Retorna "23".
' Formatos definidos pelo usurio.
MinhaSeq = Format(5459.4, "##,##0.00") ' Retorna "5,459.40".
MinhaSeq = Format(334.9, "###0.00")
' Retorna "334.90".
MinhaSeq = Format(5, "0.00%") ' Retorna "500.00%".
MinhaSeq = Format("AL", "<") ' Retorna "al".
MinhaSeq = Format(" isto", ">") ' Retorna " ISTO".

Funes Internas

197

Exemplo da funo Hex


Este exemplo utiliza a funo Hex para retornar o valor hexadecimal de um nmero.
Dim MeuHex
MeuHex = Hex(5) ' Retorna 5.
MeuHex = Hex(10) ' Retorna A.
MeuHex = Hex(459)
' Retorna 1CB.
Exemplo da funo InStr
Este exemplo utiliza a funo InStr para retornar a posio da primeira ocorrncia de uma seqncia de caracteres dentro
de outra.
Dim SeqnciaDePesquisa, CarDePesquisa, MinhaPos
SeqnciaDePesquisa ="XXpXXpXXPXXP" ' Seqncia de caracteres a pesquisar.
CarDePesquisa = "P" ' Procurar por "P".
' Uma comparao textual iniciando na posio 4. Retorna 6.
MinhaPos = Instr(4, SeqnciaDePesquisa, CarDePesquisa, 1)
' Uma comparao de binrios iniciando na posio 1. Retorna 9.
MinhaPos = Instr(1, SeqnciaDePesquisa, CarDePesquisa, 0)
' A comparao binria como padro (o ltimo argumento omitido).
MinhaPos = Instr(SeqnciaDePesquisa, CarDePesquisa)
' Retorna 9.
MinhaPos = Instr(1, SeqnciaDePesquisa, "W")

' Retorna 0.

Exemplo da funo LCase


Este exemplo utiliza a funo LCase para retornar uma verso em mnusculas de uma seqncia de caracteres.
Dim Maisculas, Minsculas
Maisculas = "Al Mundo 1234" ' Seqncia de caracteres a converter.
Minsculas = Lcase(Maisculas) ' Retorna "al mundo 1234".
Exemplo da funo Left
Este exemplo utiliza a funo Left para retornar um nmero especificado de caracteres do lado esquerdo de uma
seqncia de caracteres.
Dim QualquerSeqncia, MinhaSeq
QualquerSeqncia = "Al Mundo" ' Define a seqncia de caracteres.
MinhaSeq = Left(QualquerSeqncia, 1) ' Retorna "A".
MinhaSeq = Left(QualquerSeqncia, 5) ' Retorna "Al M".
MinhaSeq = Left(QualquerSeqncia, 20) ' Retorna "Al Mundo".
Exemplo da funo Len
Este exemplo utiliza a funo Len para retornar o nmero de caracteres de uma seqncia de caracteres ou o nmero de
bytes necessrios para armazenar uma varivel. O bloco Type...End Type que define RegistroDoCliente deve ser
precedido pela palavra-chave Private se aparecer em um mdulo de classe. Em um mdulo padro, uma instruo Type
pode ser Public.
Type RegistroDoCliente ' Define o tipo definido pelo usurio.
ID As Integer ' Coloca esta definio em um
Name As String * 10 ' mdulo padro.
Address As String * 30
End Type
Dim Cliente As RegistroDoCliente
' Declara as variveis.
Dim MeuInt As Integer, MeuCur As Currency
Dim MinhaSeqncia, MeuComp
MinhaSeqncia = "Al Mundo" ' Inicializa a varivel.
MeuComp = Len(MeuInt)
' Retorna 2.
MeuComp = Len(Cliente) ' Retorna 42.
MeuComp = Len(MinhaSeqncia) ' Retorna 9.
MeuComp = Len(MeuCur) ' Retorna 8.
Exemplo da instruo LSet
Este exemplo utiliza a instruo LSet para alinhar esquerda uma seqncia de caracteres dentro de uma varivel de
seqncia de caracteres. Ainda que LSet possa ser utilizada para copiar uma varivel de um tipo definido pelo usurio em
outra varivel de um tipo definido pelo usurio diferente mas compatvel, esta prtica no recomendada. Devido
variedade de implementaes de estruturas de dados entre plataformas, no se pode garantir a portabilidade desse uso de
LSet.
Dim MinhaSeqncia
MinhaSeqncia = "0123456789"
' Inicializa a seqncia de caracteres.
Lset MinhaSeqncia = "<-Left" ' MinhaSeqncia contm "<-Left ".

Funes Internas

198

Exemplo das funes LTrim, RTrim e Trim


Este exemplo utiliza a funo LTrim para retirar os espaos esquerda e a funo RTrim para retirar os espaos direita
de uma varivel de seqncia de caracteres. Ele utiliza a funo Trim para retirar ambos os tipos de espaos.
Dim MinhaSeqncia, SuprimirSeqncia
MinhaSeqncia = " <-Trim-> " ' Inicializa a seqncia de caracteres.
SuprimirSeqncia = LTrim(MinhaSeqncia)
' SuprimirSeqncia = "<-Trim-> ".
SuprimirSeqncia = RTrim(MinhaSeqncia)
' SuprimirSeqncia = " <-Trim->".
SuprimirSeqncia = LTrim(RTrim(MinhaSeqncia)) ' SuprimirSeqncia = "<-Trim->".
' O uso da funo Trim sozinha implica o mesmo resultado.
SuprimirSeqncia = Trim(MinhaSeqncia)
' SuprimirSeqncia = "<-Trim->".
Exemplo da funo Mid
Este exemplo utiliza a funo Mid para retornar um nmero especificado de caracteres de uma seqncia de caracteres.
Dim MinhaSeqncia, PrimeiraPalavra, ltimaPalavra, PalavrasDoMeio
MinhaSeqncia = "Demonstrao da funo Mid" ' Cria a seqncia de caracteres de texto.
PrimeiraPalavra = Mid(MinhaSeqncia, 1, 12)
' Retorna "Demonstrao".
ltimaPalavra = Mid(MinhaSeqncia, 24, 3)
' Retorna "Mid".
PalavrasDoMeio = Mid(MinhaSeqncia, 14)
' Retorna "da funo Mid".

Funes Internas

199

Exemplo da instruo Mid


Este exemplo utiliza a instruo Mid para substituir um nmero especificado de caracteres de uma varivel de seqncia de
caracteres por caracteres de outra seqncia de caracteres.
Dim MinhaSeqncia
MinhaSeqncia = "O gato salta"
' Inicializa a seqncia de caracteres.
Mid(MinhaSeqncia, 3, 4) = "sapo" ' MinhaSeqncia = "O sapo salta".
Mid(MinhaSeqncia, 3) = "rato" ' MinhaSeqncia = "O rato salta".
Mid(MinhaSeqncia, 3) = "rato saltou sobre"
' MinhaSeqncia = "O rato salto".
Mid(MinhaSeqncia, 3, 4) = "ganso" ' MinhaSeqncia = "O gans salto".
Exemplo da funo Oct
Este exemplo utiliza a funo Oct para retornar o valor octal de um nmero.
Dim MeuOctal
MeuOctal = Oct(4) ' Retorna 4.
MeuOctal = Oct(8) ' Retorna 10.
MeuOctal = Oct(459) ' Retorna 713.
Exemplo da funo Right
Este exemplo utiliza a funo Right para retornar um nmero especificado de caracteres do lado direito de uma seqncia
de caracteres.
Dim QualquerSeqncia, MinhaSeq
QualquerSeqncia = "Al Mundo" ' Define a seqncia de caracteres.
MinhaSeq = Right(QualquerSeqncia, 1) ' Retorna "o".
MinhaSeq = Right(QualquerSeqncia, 6) ' Retorna " Mundo".
MinhaSeq = Right(QualquerSeqncia, 20) ' Retorna "Al Mundo".
Exemplo da instruo RSet
Este exemplo utiliza a instruo RSet para alinhar direita uma seqncia de caracteres dentro de uma varivel de
seqncia de caracteres.
Dim MinhaSeqncia
MinhaSeqncia = "0123456789"
' Inicializa a seqncia de caracteres.
Rset MinhaSeqncia = "Right->"
' MinhaSeqncia contm " Right->".
Exemplo da funo Space
Este exemplo utiliza a funo Space para retornar uma seqncia de caracteres que consiste em um nmero especificado
de espaos.
Dim MinhaSeqncia
' Retorna a seqncia de caracteres com 10 espaos.
MinhaSeqncia = Space(10)
' Insere 10 espaos entre duas seqncias de caracteres.
MinhaSeqncia = "Al" & Space(10) & "Mundo"
Exemplo da funo Str
Este exemplo utiliza a funo Str para retornar uma representao em seqncia de caracteres de um nmero. Quando um
nmero convertido em uma seqncia de caracteres, um espao esquerda sempre reservado para o seu sinal.
Dim MinhaSeqncia
MinhaSeqncia = Str(459) ' Retorna " 459".
MinhaSeqncia = Str(-459.65) ' Retorna "-459.65".
MinhaSeqncia = Str(459.001) ' Retorna " 459.001".
Exemplo da funo StrComp
Este exemplo utiliza a funo StrComp para retornar os resultados de uma comparao de seqncias de caracteres. Se o
terceiro argumento for 1, ser executada uma comparao textual; se for 0 ou omitido, ser executada uma comparao
binria.
Dim MinhaSeq1, MinhaSeq2, MinhaComp
MinhaSeq1 = "ABCD": MinhaSeq2 = "abcd" ' Define as variveis.
MinhaComp = StrComp(MinhaSeq1, MinhaSeq2, 1) ' Retorna 0.
MinhaComp = StrComp(MinhaSeq1, MinhaSeq2, 0) ' Retorna -1.
MinhaComp = StrComp(MinhaSeq2, MinhaSeq1)
' Retorna 1.
Exemplo da funo String
Este exemplo utiliza a funo String para retornar as seqncias de caracteres repetidos com o comprimento especificado.
Dim MinhaSeqncia
MinhaSeqncia = String(5, "*") ' Retorna "*****".
MinhaSeqncia = String(5, 42) ' Retorna "*****".
MinhaSeqncia = String(10, "ABC") ' Retorna "AAAAAAAAAA".

Funes Internas

200

Exemplo da funo UCase


Este exemplo utiliza a funo UCase para retornar uma verso em maisculas de uma seqncia de caracteres.
Dim Minsculas, Maisculas
Minsculas = "Al Mundo 1234" ' Seqncia de caracteres a converter.
Maisculas = UCase(Minsculas)
' Retorna "AL MUNDO 1234".

Funo Chr
Retorna um String que contm o caractere associado ao cdigo de caractere especificado.
Sintaxe
Chr(cdigodecarac)
O argumento obrigatrio cdigodecarac um Long que identifica um caractere.
Comentrios
Os nmeros de 0 a 31 so os mesmos que os cdigos padro no-imprimveis ASCII. Por exemplo, Chr(10) retorna um
caractere de alimentao de linha. O intervalo normal para cdigodecarac 0 255. No entanto, em sistemas DBCS, o
intervalo real para cdigodecarac de -32768 a 65536.
Observao A funo ChrB utilizada com dados de byte contidos em um String. Em vez de retornar um caractere, que
pode ser de um ou dois bytes, ChrB sempre retorna um nico byte. A funo ChrW retorna um String contendo o caractere
Unicode, com exceo de plataformas nas quais Unicode no suportado, caso em que o comportamento dessa funo
idntico ao da funo Chr.

Funo Format
Retorna um Variant (String) que contm uma expresso formatada de acordo com as instrues contidas em uma
expresso de formato.
Sintaxe
Format(expresso[, formato[, primeirodiadasemana[, primeirasemanadoano]]])
A sintaxe da funo Format possui as partes a seguir:
Parte
Descrio
expresso
Obrigatria. Qualquer expresso vlida.
formato
Opcional. Uma expresso vlida de formato nomeado ou
definido pelo usurio.
primeirodiadasemana
Opcional. Uma constante que especifica o primeiro dia da
semana.
primeirasemanadoano
Opcional. Uma constante que especifica a primeira semana
do ano.
Definies
O argumento primeirodiadasemana possui as definies a seguir:
Constante
Valor
Descrio
vbUseSystem
0
Utilizar definio de API NLS.
VbSunday
1
Domingo (padro)
vbMonday
2
Segunda-feira
vbTuesday
3
Tera-feira
vbWednesday
4
Quarta-feira
vbThursday
5
Quinta-feira
vbFriday
6
Sexta-feira
vbSaturday
7
Sbado
O argumento primeirasemanadoano possui as definies a seguir:
Constante
Valor
Descrio
vbUseSystem
0
Utilizar definio de API NLS.
VbFirstJan1
1
Iniciar com a semana de 1o de janeiro (padro).
VbFirstFourDays
2
Iniciar com a primeira semana do ano de pelo menos
quatro dias.
vbFirstFullWeek
3
Iniciar com a primeira semana completa do ano.
Comentrios
Para formatar
Nmeros

Faa isto
Utilize formatos numricos predefinidos nomeados ou crie
formatos numricos definidos pelo usurio.
Data e hora
Utilize formatos de data/hora predefinidos nomeados ou crie
formatos de data/hora definidos pelo usurio.
Nmeros de srie deUtilize formatos numricos ou formatos de data e hora.
data e hora
Seqncias
deCrie seus prprios formatos de seqncia de caracteres
caracteres
definidos pelo usurio.
Se voc tentar formatar um nmero sem especificar formato, Format oferece uma funcionalidade semelhante da funo
Str, embora reconhea os padres internacionais. No entanto, nmeros positivos formatados como seqncias de

Funes Internas

201

caracteres utilizando-se Format no incluem um espao esquerda reservado para o sinal do valor; aqueles convertidos
utilizando-se Str mantm o espao esquerda.

Formatos numricos nomeados (funo Format)


A tabela a seguir identifica os nomes de formatos numricos predefinidos:
Nome do formato
Descrio
General Number
Exibe nmero sem separador de milhar.
Currency
Exibe nmero com separador de milhar, se for o caso; exibe
dois dgitos direita do separador decimal. A sada baseada
nas definies de localidade do sistema.
Fixed
Exibe pelo menos um dgito esquerda e dois direita do
separador decimal.
Standard
Exibe o nmero com separador de milhar, pelo menos um
dgito esquerda e dois direita do separador decimal.
Percent
Exibe o nmero multiplicado por 100 com um sinal de
porcentagem (%) direita; exibe sempre dois dgitos direita
do separador decimal.
Scientific
Utiliza notao cientfica padro.
Yes/No
Exibe No se o nmero for 0; caso contrrio, exibe Sim.
True/False
Exibe False se o nmero for 0; caso contrrio, exibe True.
On/Off
Exibe Desativado se o nmero for 0; caso contrrio, exibe
Ativado.

Formatos numricos definidos pelo usurio (funo Format)


A tabela a seguir identifica caracteres que voc pode utilizar para criar formatos numricos definidos pelo usurio:
Caractere
Descrio
Nenhum
Exibe o nmero sem formatao.
(0)
Espao reservado para dgito. Exibe um dgito ou um zero. Se a
expresso apresenta um dgito na posio onde o 0 aparece na
seqncia de caracteres de formato, exibe-o; caso contrrio, exibe um
zero nessa posio.
Se o nmero apresenta menos dgitos do que os zeros existentes (de
qualquer lado do decimal) na expresso de formato, exibe zeros
esquerda ou direita. Se o nmero apresenta mais dgitos direita do
separador decimal do que zeros direita do separador decimal na
expresso de formato, arredonda o nmero em tantas casas decimais
quanto for o nmero de zeros. Se o nmero apresenta mais dgitos
esquerda do separador decimal do que zeros esquerda do separador
decimal na expresso de formato, exibe os dgitos extras sem
modificao.
(#)
Espao reservado para dgito. Exibe um dgito ou nada. Se a expresso
apresenta um dgito onde o # aparece na seqncia de caracteres de
formato, exibe-o; caso contrrio, no exibe nada nessa posio.
Esse smbolo funciona como o espao reservado para o dgito 0,
exceto que os zeros direita e esquerda no so exibidos se o
nmero apresentar o mesmo nmero de dgitos ou menos do que o
nmero de caracteres # de cada lado do separador decimal na
expresso de formato.
(.)
Espao reservado decimal. Em algumas localidades, uma vrgula
utilizada como separador decimal. O espao reservado decimal
determina quantos dgitos so exibidos esquerda e direita do
separador decimal. Se a expresso de formato contm somente sinais
numricos esquerda desse smbolo, nmeros menores do que 1
comeam com um separador decimal. Para exibir um zero esquerda
exibido com nmeros fracionrios, utilize 0 como o primeiro espao
reservado de dgito esquerda do separador decimal. O caractere
realmente utilizado como um espao reservado decimal na sada
formatada depende do Formato numrico reconhecido pelo seu
sistema.
(%)
Espao reservado de porcentagem. A expresso multiplicada por 100.
O caractere de porcentagem (%) inserido na mesma posio em que
aparece na seqncia de caracteres de formato.
(,)
Separador de milhar. Em algumas localidades, um ponto utilizado
como separador de milhar. O separador de milhar separa as centenas
dos milhares dentro de um nmero com quatro ou mais posies
esquerda do separador decimal. A utilizao padro do separador de
milhar especificada se o formato contiver um separador de milhar

Funes Internas

202

cercado por espaos reservados para dgitos (0 ou #). Dois


separadores de milhar adjacentes ou um separador de milhar
imediatamente esquerda do separador decimal (independente de o
decimal ser ou no especificado) significa "escalonar o nmero
dividindo-o por 1000 e arredondando se necessrio." Por exemplo,
voc pode utilizar a seqncia de caracteres de formato "##0,," para
representar 100 milhes como 100. Nmeros menores do que 1 milho
so exibidos como 0. Dois separadores de milhar adjacentes em
qualquer posio diferente de imediatamente esquerda do separador
decimal so tratados simplesmente como especificao da utilizao de
um separador de milhar. O caractere realmente utilizado como
separador de milhar na sada formatada depende do Formato numrico
reconhecido pelo seu sistema.
(:)
Separador de tempo. Em algumas localidades, outros caracteres
podem ser utilizados para representar o separador de tempo. O
separador de tempo separa horas, minutos e segundos quando os
valores de tempo so formatados. O caractere realmente utilizado
como separador de tempo na sada formatada depende das definies
de seu sistema.
(/)
Separador de data. Em algumas localidades, outros caracteres podem
ser utilizados para representar o separador de data. O separador de
data separa o dia, o ms e o ano quando os valores de data so
formatados. O caractere realmente utilizado como separador de data na
sada formatada depende das definies de seu sistema.
(E- E+ e- e+) Formato cientfico. Se a expresso de formato contm pelo menos um
espao reservado para dgito (0 ou #) direita de E-, E+, e-, ou e+, o
nmero exibido em formato cientfico e E ou e inserido entre o
nmero e seu expoente. O nmero de espaos reservados para dgitos
direita determina o nmero de dgitos no expoente. Utilize E- ou epara colocar um sinal de menos ao lado de expoentes negativos. Utilize
E+ ou e+ para colocar um sinal de menos ao lado de expoentes
negativos e um sinal de mais ao lado de expoentes positivos.
-+$()
Exibe um caractere literal. Para exibir um caractere diferente daqueles
listados, anteceda-o com uma barra invertida (\) ou coloque-o entre
aspas duplas (" ").
(\)
Exibe o prximo caractere na seqncia de caracteres de formato. Para
exibir um caractere que apresenta um significado especial como um
caractere literal, anteceda-o com uma barra invertida (\). A barra
invertida, na verdade, no exibida. Utiliz-la a mesma coisa que
colocar o prximo caractere entre aspas duplas. Para exibir uma barra
invertida, utilize duas barras invertidas (\\).
Exemplos de caracteres que no podem ser exibidos como caracteres
literais so os caracteres de formatao de data e hora (a, c, d, h, m, n,
p, q, s, t, w, y, / e :), os caracteres de formatao numrica (#, 0, %, E,
e, vrgula e ponto) e os caracteres de formatao da seqncia de
caracteres (@, &, <, > e !).
("ABC")
Exibe a seqncia de caracteres dentro de aspas duplas (" "). Para
incluir uma seqncia de caracteres em format a partir do cdigo, voc
deve utilizar Chr(34) para envolver o texto (34 o cdigo de caractere
para uma aspa (")).

Formatos diferentes para valores numricos diferentes (funo Format)


Uma expresso de formato para nmeros definida pelo usurio pode apresentar de uma a quatro sees separadas por
ponto-e-vrgula. Se o argumento format contiver um dos quatro formatos numricos nomeados, somente uma seo ser
permitida.
Se voc utilizar
O resultado ser
Somente uma seo A expresso de formato aplica-se a todos os valores.
Duas sees
A primeira seo aplica-se a valores positivos e zeros e a
segunda a valores negativos.
Trs sees
A primeira seo aplica-se a valores positivos, a segunda a
valores negativos e a terceira a zeros.
Quatro sees
A primeira seo aplica-se a valores positivos, a segunda a
valores negativos, a terceira a zeros e a quarta a valores Null.
O exemplo a seguir apresenta duas sees: a primeira define o formato para valores positivos e zeros; a segunda define o
formato para valores negativos.
"$#,##0;($#,##0)"

Funes Internas

203

Se voc incluir pontos-e-vrgulas sem nada entre eles, a seo ausente ser impressa utilizando o formato do valor positivo.
Por exemplo, o formato a seguir exibe valores positivos e negativos utilizando o formato da primeira seo e exibindo "Zero"
se o valor for zero.
"$#,##0;;\Z\e\r\o"

Funes Internas

204

Exemplo de expresses de formato numrico definidas pelo usurio


A tabela a seguir contm algumas expresses de exemplo de formato para nmeros. (Estes exemplos pressupem que a
definio de localidade do seu sistema seja Portugus (Brasil) A primeira coluna contm as seqncias de caracteres de
formato; as outras contm a sada resultante se os dados formatados apresentarem o valor fornecido nos cabealhos das
colunas.
Formato (format) Positivo 5
Negativo 5
Decimal .5
Null
Seqncia
de5
-5
0,5
caracteres
de
comprimento Zero
("")
0
5
-5
1
0,00
5,00
-5,00
0,50
#.##0
5
-5
1
#.##0,00;;;Nil
5,00
-5,00
0,50
Nil
R$#.##0;(R$#.##0) R$5
(R$5)
R$1
R$#.##0,00;
R$5,00
(R$5,00)
R$0,50
(R$#.##0,00)
0%
500%
-500%
50%
0,00%
500,00%
-500,00%
50,00%
0,00E+00
5,00E+00
-5,00E+00
5,00E-01
0,00E-00
5,00E00
-5,00E00
5,00E-01

Formatos nomeados de data/hora (funo Format)


A tabela a seguir identifica os nomes de formato de data e hora predefinidos:
Nome do formato Descrio
General Date
Exibe uma data e/ou hora. Para nmeros reais, exibe uma data e
hora, por exemplo, 3/4/93 17:34. Se no existir uma parte
fracionria, exibe somente uma data, por exemplo, 3/4/93. Se no
houver uma parte inteira, exibe somente a hora, por exemplo,
17:34. A exibio da data determinada pelas definies do seu
sistema.
Long Date
Exibe uma data de acordo com o formato por extenso de data de
seu sistema.
Medium Date
Exibe uma data utilizando o formato mdio de data apropriado
verso do idioma do aplicativo host.
Short Date
Exibe uma data utilizando o formato abreviado de data de seu
sistema.
Long Time
Exibe uma hora utilizando o formato de hora por extenso de seu
sistema, incluindo horas, minutos e segundos.
Medium Time
Exibe hora em formato de 12 horas utilizando horas e minutos e a
designao AM/PM.
Short Time
Exibe uma hora utilizando o formato de 24 horas, por exemplo,
17:45.

Formatos de data/hora definidos pelo usurio (funo Format)


A tabela a seguir identifica os caracteres que voc pode utilizar para criar formatos de data/hora definidos pelo usurio:
Caractere
Descrio
(:)
Separador de hora. Em algumas localidades, outros caracteres podem
ser utilizados 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 utilizado como separador de hora na sada
formatada determinado pelas definies do seu sistema.
(/)
Separador de data. Em algumas localidades, outros caracteres podem
ser utilizados para representar o separador de data. O separador de
data separa o dia, o ms e o ano quando os valores de data so
formatados. O caractere realmente utilizado como separador de data na
sada formatada depende das definies do seu sistema.
c
Exibe a data como ddddd e exibe a hora como hhhhh, nessa ordem.
Exibe somente informaes de data se no houver parte fracionria
para o nmero de srie da data; exibe somente informaes de hora se
no houver parte de nmero inteiro.
d
Exibe o dia como um nmero sem um zero esquerda (1 31).
dd
Exibe o dia como um nmero com um zero esquerda(01 31).
ddd
Exibe o dia de forma abreviada (Dom Sb).
dddd
Exibe o nome completo do dia (Domingo Sbado).
ddddd
Exibe a data completa (incluindo dia, ms e ano), formatada de acordo

Funes Internas

205

dddddd

w
ww
m
mm
mmm
mmmm
t
a
aa
aaaa
h
hh
n
nn
s
ss
hhhhh

AM/PM
am/pm
A/P
a/p
AMPM

com a definio de formato de data abreviada do seu sistema. Para o


Microsoft Windows, o formato padro de data abreviada d/m/aa.
Exibe um nmero de srie de data como uma data completa (incluindo
dia, ms e ano) formatada de acordo com a definio de data por
extenso reconhecida pelo seu sistema. Para o Microsoft Windows, o
formato padro de data por extenso dddd mm, aaaa.
Exibe o dia da semana como um nmero (1 para Domingo at 7 at
para Sbado).
Exibe a semana do ano como um nmero (1 54).
Exibe o ms como um nmero sem um zero esquerda (1 12). Se m
seguir imediatamente h ou hh, o minuto exibido ao invs do ms.
Exibe o ms como um nmero com um zero esquerda (01 12). Se
m seguir imediatamente h ou hh, o minuto exibido ao invs do ms.
Exibe o ms de forma abreviada (Jan Dez).
Exibe o nome completo do ms (Janeiro Dezembro).
Exibe o trimestre do ano como um nmero (1 4).
Exibe o dia do ano como um nmero (1 366).
Exibe o ano como um nmero de dois dgitos (00 99).
Exibe o ano como um nmero de quatro dgitos (100 9999).
Exibe a hora como um nmero sem zeros esquerda (0 23).
Exibe a hora como um nmero com zeros esquerda (00 23).
Exibe o minuto como um nmero sem zeros esquerda (0 59).
Exibe o minuto como um nmero com zeros esquerda(00 59).
Exibe o segundo como um nmero sem zeros esquerda (0 59).
Exibe o segundo como um nmero com zeros esquerda (00 59).
Exibe a hora completa (incluindo hora, minuto e segundo), formatada
utilizando o separador de hora definido pelo formato de hora
reconhecido pelo seu sistema. Um zero esquerda exibido se a
opo zero esquerda estiver selecionada e se a hora for anterior a
10:00 ou 22:00. Para o Microsoft Windows, o formato padro de hora
h:mm:ss.
Utiliza o relgio de 12 horas e exibe AM em letras maisculas sem
qualquer hora antes do meio-dia; exibe PM em letras maisculas com
qualquer hora entre meio-dia e 23:59.
Utiliza o relgio de 12 horas e exibe AM em letras minsculas sem
qualquer hora antes do meio-dia; exibe PM em letras minsculas com
qualquer hora entre meio-dia e 23:59.
Utiliza o relgio de 12 horas e exibe um A maisculo sem qualquer hora
antes do meio-dia; exibe um P maisculo com qualquer hora entre
meio-dia e 23:59.
Utiliza o relgio de 12 horas e exibe um A minsculo sem qualquer hora
antes do meio-dia; exibe um P minsculo com qualquer hora entre
meio-dia e 23:59.
Utiliza o relgio de 12 horas e exibe uma literal de seqncia de
caracteres AM como definido pelo seu sistema com qualquer hora
antes de meio-dia; exibe a literal de seqncia de caracteres PM como
definido pelo seu sistema com qualquer hora entre meio-dia e 23:59.
AMPM podem estar em letras maisculas ou minsculas, mas o
tamanho da letra da seqncia de caracteres exibida deve
corresponder quele definido na definio do seu sistema. Para o
Microsoft Windows, o formato padro AM/PM.

Exemplo de formatos de data/hora definidos pelo usurio


A seguir so apresentados exemplos de formatos de data e hora definidos pelo usurio para 7 de Dezembro de 1958:
Formato
Exibe
d/m/aa
7/12/58
d-mmm
7-Dez
d-mmmm-aa
7-Dezembro-58
d mmmm
7 Dezembro
mmmm aa
Dezembro 58
hh:mm AM/PM
08:50 PM
h:mm:ss a/p
8:50:35 p
h:mm
20:50
h:mm:ss
20:50:35
d/m/aa h:mm
7/12/58 20:50

Formatos de seqncia de caracteres definidos pelo usurio (funo Format)


Voc pode utilizar qualquer um dos caracteres a seguir para criar uma expresso de formato para seqncias de
caracteres:
Funes Internas

206

Caractere
@

&

<
>
!

Descrio
Espao reservado para caractere. Exibe um caractere ou um espao.
Se a seqncia de caracteres apresenta um caractere onde o smbolo
(@) aparece na seqncia de caracteres de formato, exibe-o; caso
contrrio, exibe um espao nessa posio. Espaos reservados so
preenchidos da direita para a esquerda a menos que exista um ponto
de exclamao (!) na seqncia de caracteres de formato.
Espao reservado para caractere. Exibe um caractere ou nada. Se a
seqncia de caracteres apresenta um caractere na posio onde o E
comercial (&) aparece, exibe-o; caso contrrio, no exibe nada.
Espaos reservados so preenchidos da direita para a esquerda a
menos que exista um ponto de exclamao (!) na seqncia de
caracteres de formato.
Fora letras minsculas. Exibe todos os caracteres em formato de
minsculas.
Fora letras maisculas. Exibe todos os caracteres em formato de
maisculas.
Fora preenchimento de espaos reservados da esquerda para a
direita. O padro o preenchimento da direita para a esquerda.

Formatos diferentes para valores de seqncia de caracteres diferentes


(funo Format)
Uma expresso de formato para seqncias de caracteres pode apresentar uma seo ou duas sees separadas por um
ponto-e-vrgula (;).
Se voc utilizar
O resultado ser
Somente uma seo O formato se aplicar a todos os dados da seqncia de
caracteres.
Duas sees
A primeira seo se aplicar aos dados da seqncia de
caracteres e a segunda a valores Null e seqncias de
caracteres de comprimento zero ("").

Funes Internas

207

Funo Hex
Retorna um String que representa o valor hexadecimal de um nmero.
Sintaxe
Hex(nmero)
O argumento obrigatrio nmero qualquer expresso numrica vlida ou expresso de seqncia de caracteres.
Comentrios
Se nmero no for um nmero inteiro, deve ser arredondado para o nmero mais prximo antes de ser avaliado.
Se nmero for
Hex retornar
Null
Nulo
Empty
Zero (0)
Qualquer
outroAt oito caracteres hexadecimais
nmero
Voc pode representar nmeros hexadecimais diretamente ao anteceder nmeros no intervalo apropriado por &H. Por
exemplo, &H10 representa 16 decimal em notao hexadecimal.

Funo InStr
Retorna um Variant (Long) especificando a posio da primeira ocorrncia de uma seqncia de caracteres dentro de
outra.
Sintaxe
InStr([start, ]string1, string2[, compare])
A sintaxe da funo InStr apresenta os argumentos a seguir:
Parte
Descrio
start
Opcional. Expresso numrica que define a posio inicial para cada
pesquisa. Se omitida, a pesquisa tem incio na primeira posio de
caractere. Se start contiver Null, um erro ser gerado. O argumento
start obrigatrio se compare for especificado.
string1
Obrigatrio. Expresso de seqncia de caracteres sendo pesquisada.
string2
Obrigatrio. Expresso de seqncia de caracteres sendo pesquisada.
compare
Opcional. Especifica o tipo de comparao de seqncia de caracteres.
O argumento compare pode ser omitido, ou pode ser 0, 1 ou 2.
Especifique 0 (padro) para executar uma comparao binria.
Especifique 1 para executar uma comparao textual, que no coincida
maisculas e minsculas. Para o Microsoft Access somente, especifique
2 para executar uma comparao baseada nas informaes contidas
em seu banco de dados. Se compare for Nulo, um erro ocorrer. Se
compare for omitido, a configurao Option Compare determinar o
tipo de comparao.
Valores de retorno
Se
InStr retorna
string1
tiver0
comprimento zero
string1 for Null
Nulo
string2
tiverstart
comprimento zero
string2 for Null
Nulo
string2
no
for0
encontrado
string2
forPosio na qual a correspondncia encontrada
encontrado dentro de
string1
start > string2
0
Comentrios
A funo InStrB utilizada com os dados de byte contidos em uma seqncia de caracteres. Em vez de retornar a posio
do caractere da primeira ocorrncia de uma seqncia de caracteres dentro de outra, InStrB retorna a posio do byte.

Funo LCase
Retorna um String que foi convertido para letra minscula.
Sintaxe
LCase(seqnciadecaracteres)
O argumento obrigatrio seqnciadecaracteres qualquer expresso de seqncia de caracteres.vlida. Se
seqnciadecaracteres contiver Null, ser retornado Nulo.
Comentrios
Somente as letras maisculas so convertidas para minsculas; todas as letras minsculas e caracteres que no sejam
letras permanecem inalterados.

Funes Internas

208

Funo Left
Retorna um Variant (String) contendo um nmero especificado de caracteres do lado esquerdo de uma seqncia de
caracteres.
Sintaxe
Left(string, length)
A sintaxe da funo Left apresenta os argumentos nomeados a seguir:
Parte
Descrio
string
Obrigatrio. Expresso de seqncia de caracteres a partir da qual os
caracteres mais esquerda so retornados. Se string contiver Null, Nulo
ser retornado.
length
Obrigatrio. Variant (Long). Expresso numrica que indica quantos
caracteres devem ser retornados. Se 0, uma seqncia de caracteres de
comprimento zero ("") retornada. Se maior ou igual ao nmero de
caracteres de string, toda a seqncia de caracteres retornada.
Comentrios
Para determinar o nmero de caracteres em string, utilize a funo Len.
Observao Utilize a funo LeftB com dados de byte contidos em uma seqncia de caracteres. Ao invs de especificar
o nmero de caracteres a serem retornados, length especifica o nmero de bytes.

Funo Len
Retorna um Long que contm o nmero de caracteres em uma seqncia de caracteres ou o nmero de bytes necessrios
para armazenar uma varivel.
Sintaxe
Len(seqnciadecaracteres | nomedavar)
A sintaxe da funo Len apresenta as partes a seguir:
Parte
Descrio
string
Qualquer expresso de seqncia de caracteres vlida. Se
seqnciadecaracteres contiver Null, Nulo retornado.
varname
Qualquer nome de varivel vlido. Se nomedavar contiver
Nulo, Nulo ser retornado. Se nomedavar for Variant, Len
o tratar como se fosse um String e sempre retornar o
nmero de caracteres que ele contiver.
Comentrios
Um (e somente um) dos dois argumentos possveis deve ser especificado. Com tipos definidos pelo usurio, Len retorna o
tamanho como ele ser gravado no arquivo.
Observao Utilize a funo LenB com dados de byte contidos em uma seqncia de caracteres. Em vez de retornar o
nmero de caracteres em uma seqncia de caracteres, LenB retorna o nmero de bytes utilizados para representar
aquela seqncia de caracteres. Com tipos definidos pelo usurio, LenB retorna o tamanho memorizado, incluindo
qualquer item entre os elementos.
Observao Len pode no ser capaz de determinar o nmero real de bytes de armazenamento necessrios quando
utilizado com seqncias de caracteres de comprimento varivel em tipos de dados definidos pelo usurio.

Instruo LSet
Alinha uma seqncia de caracteres esquerda dentro de uma varivel de seqncia de caracteres, ou copia uma varivel
de um tipo definido pelo usurio para outra varivel de um tipo diferente definido pelo usurio.
Sintaxe
LSet varseq = seqnciadecaracteres
LSet nomedavar1 = nomedavar2
A sintaxe da instruo LSet apresenta as partes a seguir:
Parte
Descrio
stringvar
Obrigatrio. Nome da varivel de seqncia de
caracteres.
string
Obrigatrio. Expresso de seqncia de caracteres a ser
alinhada esquerda dentro de varseq.
varname1
Obrigatrio. Nome de varivel do tipo definido pelo
usurio para a qual feita a cpia.
varname2
Obrigatrio. Nome de varivel do tipo definido pelo
usurio da qual feita a cpia.
Comentrios
LSet substitui qualquer caractere deixado em varseq por espaos.
Se seqnciadecaracteres for maior do que varseq, LSet coloca somente os caracteres mais esquerda, at o
comprimento de varseq, em varseq.

Funes Internas

209

Aviso No recomendvel utilizar LSet para copiar uma varivel de um tipo definido pelo usurio para um tipo diferente.
A cpia de dados de um tipo de dados para espao reservado a um tipo de dados diferente pode acarretar resultados
imprevisveis.
Quando voc copia uma varivel de um tipo definido pelo usurio para outro, os dados binrios de uma varivel so
copiados para o espao de memria do outro, sem levar em considerao os tipos de dados especificados para os
elementos.

Funes LTrim, Rtrim e Trim


Retorna um Variant (String) que contm uma cpia de uma seqncia de caracteres especificada sem espaos
esquerda (LTrim), espaos direita (RTrim) ou espaos direita e esquerda (Trim).
Sintaxe
LTrim(seqnciadecaracteres)
RTrim(seqnciadecaracteres)
Trim(seqnciadecaracteres)
O argumento seqnciadecaracteres exigido qualquer expresso de seqncia de caracteres.vlida. Se
seqnciadecaracteres contiver Null, Null ser retornado.

Funo Mid
Retorna um Variant (String) que contm um nmero especificado de caracteres de uma seqncia de caracteres.
Sintaxe
Mid(string, start[, length])
A sintaxe da funo Mid apresenta os argumentos nomeados a seguir:
Parte
Descrio
string
Obrigatrio. Expresso de seqncia de caracteres da qual so retornados
caracteres. Se string contiver Null, Null ser retornado.
start
Obrigatrio; Long. A posio do caractere em string na qual a parte a ser
removida tem incio. Se start for maior do que o nmero de caracteres em
string, Mid retorna uma seqncia de caracteres de comprimento zero ("").
length
Opcional; Variant (Long). Nmero de caracteres a ser retornado. Se
omitido ou se houver menos caracteres no texto do que em length
(incluindo o caractere em start), todos os caracteres da posio start at o
final da seqncia de caracteres sero retornados.
Comentrios
Para determinar o nmero de caracteres em string, utilize a funo Len.
Observao Utilize a funo MidB com dados de byte contidos em uma seqncia de caracteres. Em vez de especificar o
nmero de caracteres, os argumentos especificam o nmero de bytes.

Funes Internas

210

Instruo Mid
Substitui um nmero especificado de caracteres em uma varivel Variant (String) com caracteres de outra seqncia de
caracteres.
Sintaxe
Mid(varseq, incio[, comprimento]) = seqnciadecaracteres
A sintaxe da instruo Mid apresenta as partes a seguir:
Parte
Descrio
varseq
Obrigatrio. Nome da varivel da seqncia de
caracteres a ser modificada.
incio
Obrigatrio; Variant (Long). Posio de caractere em
varseq onde a substituio de texto tem incio.
comprimento
Opcional; Variant (Long). Nmero de caracteres a serem
substitudos. Se omitida, toda a seqnciadecaracteres
utilizada.
seqnciadecaracteres
Obrigatrio. Expresso de seqncia de caracteres que
substitui parte de varseq.
Comentrios
O nmero de caracteres substitudo sempre menor ou igual ao nmero de caracteres em varseq.
Observao Utilize a instruo MidB com dados de byte contidos em uma seqncia de caracteres. Na instruo MidB,
incio especifica a posio do byte dentro de varseq onde a substituio tem incio e comprimento especifica o nmero de
bytes a ser substitudo.

Funo Oct
Retorna um Variant (String) que representa o valor octal de um nmero.
Sintaxe
Oct(nmero)
O argumento obrigatrio nmero qualquer expresso numrica vlida ou expresso de seqncia de caracteres.
Comentrios
Se nmero no for um nmero inteiro, deve ser arredondado para o nmero inteiro mais prximo antes de ser avaliado.
Se nmero for
Oct retornar
Null
Null
Empty
Zero (0)
Qualquer
outroAt 11 caracteres octais
nmero
Voc pode representar nmeros octais diretamente ao anteceder nmeros no intervalo apropriado com &O. Por exemplo,
&O10 a notao octal para o decimal 8.

Funes Internas

211

Funo Right
Retorna um Variant (String) que contm um nmero especfico de caracteres do lado direito de uma seqncia de
caracteres.
Sintaxe
Right(string, length)
A sintaxe da funo Right apresenta os argumentos nomeados a seguir:
Parte
Descrio
string
Obrigatrio. Expresso de seqncia de caracteres da qual os caracteres
mais direita so retornados. Se string contiver Null, Null ser retornado.
length
Obrigatrio; Variant (Long). Expresso numrica indicando quantos
caracteres devem ser retornados. Se 0, uma seqncia de caracteres de
comprimento zero ("") retornada. Se maior ou igual ao nmero de
caracteres em string, toda a seqncia de caracteres retornada.
Comentrios
Para determinar o nmero de caracteres em string, utilize a funo Len.
Observao Utilize a funo RightB com dados de byte contidos em uma seqncia de caracteres. Em vez de especificar
o nmero de caracteres a ser retornado, length especifica o nmero de bytes.

Instruo RSet
Alinha uma seqncia de caracteres direita dentro de uma varivel de seqncia de caracteres.
Sintaxe
RSet varseq = seqnciadecaracteres
A sintaxe da instruo RSet apresenta as partes a seguir:
Parte
Descrio
varseq
Obrigatrio. Nome de varivel da seqncia de
caracteres.
seqnciadecaracteres
Obrigatrio. Expresso de seqncia de caracteres a
ser alinhada direita dentro de varseq.
Comentrios
Se varseq for maior do que seqnciadecaracteres, RSet substitui qualquer caractere deixado em varseq por espaos, de
volta a seu incio.
Observao RSet no pode ser utilizado com tipos definidos pelo usurio.

Funo Space
Retorna um Variant (String) que consiste em um nmero especificado de espaos.
Sintaxe
Space(nmero)
O argumento obrigatrio nmero o nmero de espaos que voc deseja na seqncia de caracteres.
Comentrios
A funo Space til para formatar sadas e limpar dados em seqncias de caracteres de comprimento fixo.

Funo Str
Retorna uma representao de um nmero Variant (String).
Sintaxe
Str(nmero)
O argumento obrigatrio nmero um Long contendo qualquer expresso numrica.vlida.
Comentrios
Quando nmeros so convertidos em seqncias de caracteres, um espao esquerda sempre reservado para o sinal
de nmero. Se nmero for positivo, a seqncia de caracteres retornada ter um espao esquerda e o sinal de mais
estar implcito.
Utilize a funo Format para converter valores numricos que voc deseja formatar como datas, horas, moeda ou outros
formatos definidos pelo usurio. Ao contrrio de Str, a funo Format no inclui um espao esquerda para o sinal de
nmero.
Observao A funo Str reconhece somente o ponto (.) como um separador decimal vlido. Quando separadores
decimais diferentes puderem ser utilizados (por exemplo, em aplicativos internacionais), utilize CStr para converter um
nmero em uma seqncia de caracteres.

Funo StrComp
Retorna Variant (Integer) que indica o resultado de uma comparao de seqncia de caracteres.
Sintaxe
StrComp(string1, string2[, compare])
A sintaxe da funo StrComp apresenta os argumentos nomeados a seguir:
Parte
Descrio
string1
Obrigatrio. Qualquer expresso de seqncia de caracteres.vlida.
string2
Obrigatrio. Qualquer expresso de seqncia de caracteres vlida.
Funes Internas

212

compare

Opcional. Especifica o tipo de comparao de seqncia de caracteres.


O argumento compare pode ser omitido ou pode ser 0, 1 ou 2.
Especifique 0 (padro) para realizar uma comparao binria.
Especifique 1 para realizar uma comparao textual. Para o Microsoft
Access somente, especifique 2 para realizar uma comparao baseada
nas informaes contidas em seu banco de dados. Se compare for
Null, um erro ser gerado. Se compare for omitido, a definio Option
Compare determinar o tipo de comparao.

Valores de retorno
Se

StrComp retornar

string1 for menor do que-1


string2
string1 for igual a 0
string2
string1 for maior do que 1
string2
string1 ou string2 forNull
Null

Funo StrConv
Retorna um Variant (String) convertido como especificado.
Sintaxe
StrConv(string, conversion)
A sintaxe da funo StrConv apresenta os argumentos nomeados a seguir:
Parte
Descrio
string
Obrigatrio. Expresso de seqncia de caracteres a ser convertida.
conversion
Obrigatrio; Integer. A soma dos valores especifica o tipo de
converso a ser realizada.
Definies
As definies do argumento conversion so:
Constante
Valor
vbUpperCase
1
VbLowerCase

VbProperCase

vbWide*

4*

VbNarrow*

8*

vbKatakana**

16**

vbHiragana**

32**

vbUnicode

64

vbFromUnicode

128

Descrio
Converte a seqncia de caracteres para caracteres
em maisculas.
Converte a seqncia de caracteres para caracteres
em minsculas.
Converte a primeira letra de cada palavra da
seqncia de caracteres para maiscula.
Converte os caracteres estreitos (byte simples) da
seqncia de caracteres em caracteres largos (byte
duplo).
Converte os caracteres largos (byte duplo). da
seqncia de caracteres em caracteres estreitos (byte
simples).
Converte os caracteres Hiragana da seqncia de
caracteres em caracteres Katakana.
Converte os caracteres Katakana da seqncia de
caracteres em caracteres Hiragana.
Converte a seqncia de caracteres para Unicode
utilizando a pgina de cdigo padro do sistema.
Converte a seqncia de caracteres de Unicode para
a pgina de cdigo padro do sistema.

* Aplica-se a localidades do Extremo Oriente.


** Aplica-se somente ao Japo.

Observao
Essas constantes so especificadas pelo Visual Basic para Aplicativos. Dessa forma, elas podem ser
utilizadas em qualquer lugar de seu cdigo no lugar dos valores reais. A maioria delas pode ser combinada, por exemplo
vbUpperCase + vbWide, exceto quando forem mutuamente exclusivas, como vbUnicode + vbFromUnicode. As
constantes vbWide, vbNarrow, vbKatakana e vbHiragana causam erros em tempo de execuo quando utilizadas em
localidades onde no so aplicadas.
A seguir so apresentados separadores de palavras vlidos para a utilizao apropriada de letras maisculas e minsculas:
Null (Chr$(0)), tab horizontal (Chr$(9)), alimentao de linha (Chr$(10)), tab vertical (Chr$(11)), alimentao de formulrio
(Chr$(12)), retorno de carro (Chr$(13)), espao (SBCS) (Chr$(32)). O valor real de um espao varia de acordo com o pas
para DBCS.

Funo String
Retorna um Variant (String) que contm uma seqncia de caracteres repetidos do comprimento especificado.
Sintaxe

Funes Internas

213

String(number, character)
A sintaxe da funo String apresenta os argumentos nomeados a seguir:
Parte
Descrio
number
Obrigatrio; Long. Comprimento da seqncia de caracteres retornada.
Se number contiver Null, Null ser retornado.
character
Obrigatrio; Variant. Cdigo de caractere que especifica o caractere ou
a expresso de seqncia de caracteres cujo primeiro caractere
utilizado para construir a seqncia de caracteres de retorno. Se
character contiver Null, Null ser retornado.
Comentrios
Se voc especificar um nmero maior do que 255 para character, String converter o nmero em um cdigo de caracteres
vlido utilizando a seguinte frmula:
character Mod 256

Funo UCase
Retorna um Variant (String) que contm a seqncia de caracteres especificada, convertida para letra maiscula.
Sintaxe
UCase(seqnciadecaracteres)
O argumento seqnciadecaracteres exigido qualquer expresso de seqncia de caracteres.vlida. Se
seqnciadecaracteres contiver Null, Null ser retornado.
Comentrios
Somente as letras minsculas so convertidas para maisculas; todas as letras maisculas e caracteres diferentes de letras
permanecem inalterados.

Funes Internas

214

Erros interceptveis
Os erros interceptveis podem ocorrer quando um aplicativo est sendo executado. Alguns erros interceptveis podem
ocorrer tambm durante o desenvolvimento ou a compilao. Voc pode testar e responder a erros interceptveis utilizando
a instruo On Error e o objeto Err. Os nmeros de erros no utilizados no intervalo de 1 a 1000 so reservados para uso
futuro pelo Visual Basic.
Cdigo Mensagem
3
Return sem GoSub
5
Chamada de procedimento invlida
6
Sobrecarga
7
Memria insuficiente
9
Subscrito fora do intervalo
10
Esta matriz fixa ou est temporariamente bloqueada
11
Diviso por zero
13
Tipo incompatvel
14
Espao insuficiente para seqncia de caracteres
16
Expresso muito complexa
17
No possvel executar a operao solicitada
18
Ocorreu uma interrupo do usurio
20
Recomear sem erro
28
Espao insuficiente para pilha
35
Sub, Function ou Property no definida
47
Nmero excessivo de clientes do aplicativo DLL
48
Erro ao carregar DLL
49
Conveno de chamada DLL invlida
51
Erro interno
52
Nome ou nmero de arquivo invlido
53
O arquivo no foi encontrado
54
Modo de arquivo invlido
55
O arquivo j est aberto
57
Erro de dispositivo de E/S
58
O arquivo j existe
59
Comprimento de registro invlido
61
Disco cheio
62
Entrada depois do fim do arquivo
63
Nmero de registro invlido
67
Nmero excessivo de arquivos
68
Dispositivo no disponvel
70
Permisso negada
71
O disco no est pronto
74
No possvel renomear com unidade de disco diferente
75
Erro de acesso a caminho/arquivo
76
Caminho no encontrado
91
A varivel de objeto ou a varivel de bloco With no foi definida
92
Loop For no inicializado
93
Seqncia de caracteres padro invlida
94
Uso de Null invlido
97
No possvel chamar procedimento Friend para um objeto que no uma
instncia da classe de definio
298
DLL do sistema no pode ser carregada
320
No possvel utilizar nomes de dispositivos em nomes de arquivos
especficos
321
Formato de arquivo invlido
322
No possvel criar arquivo temporrio necessrio
325
Formato invlido no arquivo de recursos
327
Nome do valor de dados no encontrado
328
Parmetro ilegal; no possvel gravar matrizes
335
No foi possvel acessar registro do sistema
336
Componente ActiveX no foi registrado corretamente
337
Componente ActiveX no foi encontrado
338
Componente ActiveX no executou corretamente
360
Objeto j carregado
361
No possvel carregar ou descarregar este objeto
363
Controle ActiveX especificado no foi encontrado
364
Objeto foi descarregado
365
No possvel carregar dentro desse contexto
368
O arquivo especificado est desatualizado. Este programa exige uma
verso posterior
371
O objeto especificado no pode ser utilizado como um formulrio
proprietrio de Show
380
Valor de propriedade invlido
Funes Internas

215

381
382
383
385
387
393
394
400
402
419
422
423
424
425
429
430
432
438
440
442
443
445
446
447
448
449
450
451
452
453
454
455
457
458
459
460
461
480
481
482
483
484
485
486
520
521
735
744
746
31001
31004
31018
31027
31032
31036
31037

ndice de matriz de propriedades invlido


Propriedade Set no pode ser executada em tempo de execuo
Propriedade Set no pode ser utilizada com uma propriedade somente
leitura
necessrio o ndice de matriz de propriedade
Propriedade Set no permitida
Propriedade Get no pode ser executada em tempo de execuo
Propriedade Get no pode ser executada em propriedade somente
gravao
Formulrio j exibido; impossvel exibir de forma modal
Cdigo deve fechar o formulrio modal superior
Permisso para utilizar objeto negada
Propriedade no encontrada
Propriedade ou mtodo no foi encontrado
Objeto obrigatrio
Uso invlido de objeto
O componente ActiveX no pode criar um objeto ou retornar referncia a
esse objeto
A classe no aceita Automao
O nome do arquivo ou o nome da classe no foi encontrado durante a
operao de Automao
O objeto no aceita esta propriedade ou mtodo
Erro de automao
A conexo biblioteca de objetos ou de tipos para processo remoto foi
perdida
O objeto de Automao no possui um valor padro
O objeto no suporta esta ao
O objeto no suporta argumentos nomeados
O objeto no aceita a definio atual de localidade
O argumento nomeado no foi encontrado
Argumento no opcional ou atribuio de propriedade invlida
Nmero de argumentos incorreto ou atribuio de propriedade invlida
Object no uma coleo
Ordinal invlido
A funo DLL especificada no foi encontrada
O recurso de cdigo no foi encontrado
Erro de proteo de recurso de cdigo
Esta tecla j est associada a um elemento desta coleo
A varivel utiliza um tipo de automao no suportada no Visual Basic
Este componente no suporta eventos
Formato da rea de transferncia invlido
Formato especificado no corresponde ao formato dos dados
No possvel criar imagem AutoRedraw
Figura invlida
Erro na impressora
Driver da impressora no aceita a propriedade especificada
Problemas ao obter informaes da impressora a partir do sistema.
Certifique-se de que a impressora esteja instalada corretamente
Tipo de figura invlido
No possvel imprimir imagem de formulrio neste tipo de impressora
No possvel esvaziar a rea de transferncia
No possvel abrir a rea de transferncia
No possvel salvar arquivo no diretrio TEMP
Texto procurado no encontrado
Substituies muito longas
Memria insuficiente
Nenhum objeto
Classe no est definida
No possvel ativar objeto
No foi possvel criar objeto incorporado
Erro ao salvar o arquivo
Erro ao carregar do arquivo

Funes Internas

216

Conjunto de caracteres (128 a 255)


128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159

160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191

[espao]

Estes caracteres no so aceitos pelo Microsoft Windows.

192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223

224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255

Funes Internas

217

Operador AddressOf
Um operador que faz com que o endereo do procedimento que ele precede seja passado a um procedimento API que
espere um ponteiro de funo naquela posio na lista de argumentos.
Sintaxe
AddressOf procedurename
O procedurename obrigatrio especifica o procedimento cujo endereo deve ser passado. Ele deve representar um
procedimento em um mdulo padro no projeto em que feita a chamada.
Comentrios
Quando um nome de procedimento aparece em uma lista de argumentos, normalmente o procedimento avaliado e o
endereo do valor de retorno do procedimento passado. AddressOf permite que o endereo do procedimento seja
passado a uma funo API Windows em uma biblioteca de vnculos dinmicos (DLL), ao invs de passar o valor de retorno
do procedimento. A funo API pode ento usar o endereo para chamar o procedimento em Basic, um processo conhecido
como chamada de retorno. O operador AddressOf aparece somente na chamada ao procedimento API. Entretanto, na
instruo Declare que descreve a funo API qual passado o ponteiro, o argumento de endereo do procedimento deve
ser declarado As Any.
Embora voc possa usar AddressOf para passar ponteiros de procedimento entre procedimentos Basic, voc no pode
chamar uma funo do tipo ponteiro a partir de Basic. Isto significa, por exemplo, que uma classe escrita em Basic no
pode efetuar uma chamada de retorno a seu controlador usando este tipo de ponteiro. Ao usar AddressOf para passar um
ponteiro de procedimento entre procedimentos dentro do Basic, o parmetro do procedimento chamado deve ser digitado
As Long.
Ateno Usar AddressOf pode provocar resultados imprevisveis se voc no compreender totalmente o conceito de
chamadas de retorno de funo. Voc deve compreender como a parte Basic da chamada de retorno funciona e tambm o
cdigo da DLL qual voc esta passando seu endereo de funo. Depurar este tipo de interaes difcil, pois o
programa executado no mesmo processo que o ambiente de desenvolvimento. Em alguns casos, a depurao
sistemtica pode no ser possvel.

Funes Internas

218

Mtodo Assert
Suspende condicionalmente a execuo na linha em que aparece o mtodo.
Sintaxe
object.Assert booleanexpression
A sintaxe do mtodo Assert tem o seguinte qualificador de objeto e argumento:
Parte
Descrio
object
Obrigatrio. Sempre o objeto Debug.
Booleanexpression
Obrigatrio. Uma expresso que avalia ouTrue ou False.
Comentrios
Acionamentos de Assert somente funcionam dentro do ambiente de desenvolvimento. Quando o mdulo compilado em
um executvel, as chamadas do mtodo sobre o objeto Debug so omitidas.
Todas as booleanexpression so sempre avaliadas. Por exemplo, mesmo se a primeira parte de uma expresso And for
avaliada como False, a expresso inteira ser avaliada.

Friend
Modifica a definio de um procedimento em um mdulo de classe para tornar o procedimento passvel de chamada a
partir de mdulos que estejam fora da classe, mas que faam parte do projeto dentro do qual a classe definida.
Sintaxe
[Private | Friend | Public] [Static] [Sub | Function | Property] procedurename
O procedurename obrigatrio o nome do procedimento a ser tornado visvel em todo o projeto, mas no visvel a
controladores da classe.
Comentrios
Procedimentos Public em uma classe podem ser chamados a partir de qualquer lugar, mesmo por controladores de
ocorrncias da classe. Declarar um procedimento como Private impede que controladores do objeto chamem o
procedimento, mas tambm impede que o procedimento seja chamado a partir do projeto em que a prpria classe est
definida. Friend torna o procedimento visvel atravs do projeto, mas no a um controlador de uma ocorrncia do objeto.
Friend somente pode aparecer em mdulos de classe, e somente pode modificar nomes de procedimento, no variveis ou
tipos. Os procedimentos em uma classe podem acessar os procedimentos Friend de todas as outras classes em um
projeto. Procedimentos Friend no aparecem na biblioteca de tipos de suas classes. Um procedimento Friend no pode
ser posteriormente acoplado.

Instruo RaiseEvent
Dispara um evento declarado a nvel de mdulo dentro de uma classe, formulrio ou documento.
Sintaxe
RaiseEvent eventname [(argumentlist)]
O eventname obrigatrio o nome de um evento declarado dentro do mdulo e segue a conveno de nomeao de
varivel do Basic.
A sintaxe da instruo RaiseEvent tem estas partes:
Parte
Descrio
eventname
Obrigatrio. Nome do evento a ser disparado.
argumentlist
Opcional. Lista de variveis, matrizes ou expresses delimitadas por
vrgulas. A argumentlist deve ser colocada entre parnteses. Se no
existir nenhum argumento, os parnteses devem ser omitidos.
Comentrios
Se o evento no foi declarado em um mdulo em que ele foi provocado, ocorre um erro. O fragmento abaixo ilustra uma
declarao de evento e um procedimento em que o evento provocado.
' Declarar um evento a nvel de mdulo de um mdulo de classe
Event LogonCompleted (UserName as String)
Sub
' Produzir o evento.
RaiseEvent LogonCompleted ("AntoineJan")
End Sub
Se o evento no tem nenhum argumento, incluindo parnteses vazios, no RaiseEvent, seu acionamento produz um erro.
Voc no pode usar RaiseEvent para disparar eventos que no sejam explicitamente declarados no mdulo. Por exemplo,
se um formulrio tiver um evento Click, voc no poder dispar-lo usando RaiseEvent. Se voc declarar um evento Click
no mdulo de formulrio, ele encobrir o prprio evento Click do formulrio. Voc ainda pode acionar o evento Click do
formulrio usando a sintaxe normal para chamar o evento, mas no usando a instruo RaiseEvent.
O disparo do evento feito na ordem em que as conexes so estabelecidas. Como os eventos podem ter parmetros
ByRef, o processo que conecta posteriormente pode receber parmetros que foram alterados por um manipulador de
eventos anterior.
Exemplo do operador AddressOf

Funes Internas

219

O exemplo abaixo cria um formulrio com uma caixa de listagem contendo uma lista em ordem alfabtica das fontes de seu
sistema.
Para executar este exemplo, crie um formulrio contendo uma caixa de listagem. O cdigo para o formulrio o seguinte:
Option Explicit
Private Sub Form_Load()
Module1.FillListWithFonts List1
End Sub
Coloque o cdigo abaixo em um mdulo. O terceiro argumento na definio da funo EnumFontFamilies um Long que
representa um procedimento. O argumento deve conter o endereo do procedimento, ao invs do valor retornado pelo
procedimento. Na chamada a EnumFontFamilies, o terceiro argumento exige o operador AddressOf para retornar o
endereo do procedimento EnumFontFamProc que o nome do procedimento de retorno de chamado que voc fornece ao
chamar a funo API Windows EnumFontFamilies. O Windows chama EnumFontFamProc uma vez para cada uma das
famlias de fonte no sistema quando voc passa AddressOf EnumFontFamProc a EnumFontFamilies. O ltimo
argumento passado a EnumFontFamilies especifica a caixa de listagem onde as informaes so exibidas.
'Tipos de enumerao de fonte
Public Const LF_FACESIZE = 32
Public Const LF_FULLFACESIZE = 64
Type LOGFONT
lfHeight As Long
lfWidth As Long
lfEscapement As Long
lfOrientation As Long
lfWeight As Long
lfItalic As Byte
lfUnderline As Byte
lfStrikeOut As Byte
lfCharSet As Byte
lfOutPrecision As Byte
lfClipPrecision As Byte
lfQuality As Byte
lfPitchAndFamily As Byte
lfFaceName(LF_FACESIZE) As Byte
End Type
Type NEWTEXTMETRIC
tmHeight As Long
tmAscent As Long
tmDescent As Long
tmInternalLeading As Long
tmExternalLeading As Long
tmAveCharWidth As Long
tmMaxCharWidth As Long
tmWeight As Long
tmOverhang As Long
tmDigitizedAspectX As Long
tmDigitizedAspectY As Long
tmFirstChar As Byte
tmLastChar As Byte
tmDefaultChar As Byte
tmBreakChar As Byte
tmItalic As Byte
tmUnderlined As Byte
tmStruckOut As Byte
tmPitchAndFamily As Byte
tmCharSet As Byte
ntmFlags As Long
ntmSizeEM As Long
ntmCellHeight As Long
ntmAveWidth As Long
End Type
' Sinalizadores de campo ntmFlags
Public Const NTM_REGULAR = &H40&
Public Const NTM_BOLD = &H20&
Public Const NTM_ITALIC = &H1&
' Sinalizadores tmPitchAndFamily
Public Const TMPF_FIXED_PITCH = &H1
Funes Internas

220

Public Const TMPF_VECTOR = &H2


Public Const TMPF_DEVICE = &H8
Public Const TMPF_TRUETYPE = &H4
Public Const ELF_VERSION = 0
Public Const ELF_CULTURE_LATIN = 0
' Mscaras EnumFonts
Public Const RASTER_FONTTYPE = &H1
Public Const DEVICE_FONTTYPE = &H2
Public Const TRUETYPE_FONTTYPE = &H4
Declare

Function

EnumFontFamilies
Lib
"gdi32"
"EnumFontFamiliesA"
(ByVal
hDC
As
Long,
ByVal
lpszFamily
As
ByVal lpEnumFontFamProc As Long, LParam As Any) As Long
Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Declare
Function
ReleaseDC
Lib
"user32"
(ByVal
hWnd
ByVal hDC As Long) As Long
Function EnumFontFamProc(lpNLF As LOGFONT, lpNTM As NEWTEXTMETRIC, _
As ListBox) As Long
Dim FaceName As String
Dim FullName As String
FaceName = StrConv(lpNLF.lfFaceName, vbUnicode)
LParam.AddItem Left$(FaceName, InStr(FaceName, vbNullChar) - 1)
EnumFontFamProc = 1
End Function

Alias
String,
As

_
_
_

Long,

ByVal FontType As Long, LParam

Sub FillListWithFonts(LB As ListBox)


Dim hDC As Long
LB.Clear
hDC = GetDC(LB.hWnd)
EnumFontFamilies hDC, vbNullString, AddressOf EnumFontFamProc, LB
ReleaseDC LB.hWnd, hDC
End Sub
Exemplo do mtodo Assert
O exemplo abaixo mostra como usar o mtodo Assert. O exemplo exige um formulrio com dois controles de boto nele.
Os nomes de boto padro so Command1 e Command2.
Quando o exemplo executado, clicar no boto Command1 liga e desliga o texto no boto entre 0 e 1. Clicar Command2
nada provoca ou provoca uma declarao, dependendo do valor exibido em Command1. A declarao encerra a execuo
com a ltima instruo executada, a linha Debug.Assert, realada.
Option Explicit
Private blnAssert As Boolean
Private intNumber As Integer
Private Sub Command1_Click()
blnAssert = Not blnAssert
intNumber = IIf(intNumber <> 0, 0, 1)
Command1.Caption = intNumber
End Sub
Private Sub Command2_Click()
Debug.Assert blnAssert
End Sub
Private Sub Form_Load()
Command1.Caption = intNumber
Command2.Caption = "Assert Tester"
End Sub

Funes Internas

221

Exemplo Friend
Quando colocado em um mdulo de classe, o cdigo abaixo torna a varivel membro dblBalance acessvel a todos os
usurios da classe dentro do projeto. Qualquer usurio da classe pode obter o valor; somente o cdigo dentro do projeto
pode designar um valor quela varivel.
Private dblBalance As Double
Public Property Get Balance() As Double
Balance = dblBalance
End Property
Friend Property Let Balance(dblNewBalance As Double)
dblBalance = dblNewBalance
End Property
Exemplo da instruo RaiseEvent
O exemplo abaixo usa eventos para uma contagem regressiva dos segundos durante uma demonstrao da mais rpida
corrida de 100 metros rasos. O cdigo ilustra todos os mtodos, propriedades e instrues relacionados com evento,
incluindo a instruo RaiseEvent.
A classe que provoca um evento na origem do evento e as classes que implementam o evento so os coletores. Uma
origem de evento pode ter mltiplos coletores para os eventos que ela gera. Quando a classe provoca o evento, o evento
disparado em todas as classes que escolheram coletar eventos para aquela ocorrncia do objeto.
O exemplo tambm usa um formulrio (Form1) com um boto (Command1), um rtulo (Label1), e duas caixas de texto
(Text1 e Text2). Quando voc clica no boto, a primeira caixa de textos exibe "A partir de agora" e a segunda inicia a
contagem dos segundos. Quando o tempo total (9,84 segundos) tiver decorrido, a primeira caixa de texto exibe "At agora"
e a segunda exibe "9.84"
O cdigo para Form1 especifica os estados inicial e final do formulrio. Ele tambm contm o cdigo executado quando
eventos so provocados.
Option Explicit
Private WithEvents mText As TimerState
Private Sub Command1_Click()
Text1.Text = "A partir de agora"
Text1.Refresh
Text2.Text = "0"
Text2.Refresh
Call mText.TimerTask(9.84)
End Sub
Private Sub Form_Load()
Command1.Caption = "Clique para iniciar o cronmetro "
Text1.Text = ""
Text2.Text = ""
Label1.Caption = "Os 100 metros mais rpidos jamais corridos levaram este tempo:"
Set mText = New TimerState
End Sub
Private Sub mText_ChangeText()
Text1.Text = "At agora"
Text2.Text = "9,84"
End Sub
Private Sub mText_UpdateTime(ByVal dblJump As Double)
Text2.Text = Str(Format(dblJump, "0"))
DoEvents
End Sub
O cdigo restante est no mdulo de classe chamado TimerState. Includo entre os comandos neste mdulo esto as
instrues RaiseEvent.
Option Explicit
Public Event UpdateTime(ByVal dblJump As Double)
Public Event ChangeText()
Public Sub TimerTask(ByVal Duration As Double)
Dim dblStart As Double
Dim dblSecond As Double
Dim dblSoFar As Double
dblStart = Timer
dblSoFar = dblStart

Funes Internas

222

Do While Timer < dblStart + Duration


If Timer - dblSoFar >= 1 Then
dblSoFar = dblSoFar + 1
RaiseEvent UpdateTime(Timer - dblStart)
End If
Loop
RaiseEvent ChangeText
End Sub

Propriedade OLERequestPendingMsgText
Retorna ou define o texto da mensagem alternativa "ocupado" exibido quando a entrada de mouse ou teclado recebida
enquanto um pedido de automao est pendente. No est disponvel durante o tempo de criao.

Sintaxe
object.OLERequestPendingMsgText [ = string]
A sintaxe da propriedade OLERequestPendingMsgText tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma expresso de seqncia de caracteres que avalia para
o texto da mensagem que ser exibida na caixa de
mensagem alternativa para a condio pendente do pedido
ActiveX.
Comentrios
O Visual Basic exibe uma caixa de dilogo padro Component Request Pending quando uma entrada de mouse ou
teclado recebida enquanto um pedido de automao est pendente. A caixa de dilogo inclui texto e um boto Switch To
que se destinam a serem usados com componentes ActiveX visveis como o Microsoft Excel. Existem situaes em que a
caixa de dilogo padro pode no atender s suas necessidades:
Seu programa pode chamar um mtodo de um objeto fornecido por um componente ActiveX que no tenha interface de
usurio. Os componentes ActiveX criados usando a Professional Edition do Visual Basic, por exemplo, podem ser
executados em segundo plano sem quaisquer formulrios visveis.
O componente ActiveX chamado pode ter sido criado usando os recursos Remote Automation do Visual Basic, Enterprise
Edition, e pode estar sendo executado em outro computador localizado a alguma distncia do usurio.
Se o seu programa carregou uma pasta de trabalho do Microsoft Excel usando a funo GetObject, a pasta de trabalho
no estar visvel quando o usurio alternar para o Microsoft Excel. Na realidade, o prprio Microsoft Excel pode no estar
visvel, caso em que o boto Switch To nada faz.
Nestas situaes, o texto padro e o boto Switch To so inadequados e podem confundir o usurio de seu programa.
A propriedade OLERequestPendingMsgText permite substituir a caixa de dilogo Component Request Pending padro
por uma caixa de mensagem alternativa. Definir OLERequestPendingMsgText para sua prpria seqncia de caracteres
de mensagem faz com que a caixa de dilogo padro Component Request Pending seja substituda por uma caixa de
mensagem simples contendo seu texto de mensagem e um boto O.
Applies To Uma vez que um pedido de automao tenha sido aceito por um componente ActiveX, no h maneira de
cancel-lo.
Se OLERequestPendingMsgText for igual a uma seqncia de caracteres vazia (""), a caixa de dilogo Component
Request Pending padro exibida.
Importante Quando voc sabe que um pedido de automao pode levar mais que alguns segundos, e estiver usando um
componente ActiveX remoto ou oculto, deve-se definir uma mensagem alternativa. Para componentes ActiveX remotos, a
mensagem alternativa recomendvel para todos os pedidos. Trfego de rede pode fazer ocasionalmente com que mesmo
um pedido ActiveX muito curto leve diversos segundos.

Propriedade OLERequestPendingMsgTitle
Retorna ou define a legenda da mensagem alternativa "ocupado" exibida quando a entrada de mouse ou teclado recebida
enquanto um pedido de automao est pendente. No est disponvel durante o tempo de criao.
Sintaxe
object.OLERequestPendingMsgTitle [= string]
A sintaxe da propriedade OLERequestPendingMsgTitle tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma expresso de seqncia de caracteres que avalia para
a legenda da caixa de mensagem alternativa para a condio
pendente do pedido ActiveX.
Comentrios
Funes Internas

223

Caso
a
propriedade
OLERequestPendingMsgText
tenha
sido
definida,
o
valor
da
propriedade
OLERequestPendingMsgTitle usado como legenda da caixa de mensagem "ocupado" alternativa que substitui a caixa
de dilogo Component Request Pending padro. O valor padro da propriedade OLERequestPendingMsgTitle o valor
atual da propriedade Title do objeto App. Esta uma configurao recomendada.
Se a propriedade OLERequestPendingMsgText for definida como uma seqncia de caracteres vazia (""), a propriedade
OLERequestPendingMsgTitle ignorada.

Propriedade OLERequestPendingTimeout
Retorna ou define o nmero de milisegundos que devem decorrer antes que a caixa de dilogo Component Request
Pending (ou mensagem alternativa) possa ser disparada pela entrada de mouse ou teclado recebida, enquanto o pedido
de automao est pendente. No est disponvel durante o tempo de criao.
Sintaxe
object.OLERequestPendingTimeout [= milliseconds]
A sintaxe da propriedade OLERequestPendingTimeout tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
milliseconds
Um inteiro Long representando o nmero de milisegundos
que deve decorrer antes que uma mensagem de ocupado
seja disparada.
Comentrios
O valor padro para esta propriedade 5000 milisegundos (cinco segundos).
Importante Este valor de tempo limite tambm afeta documentos que so vinculados ou incorporados usando o controle
OLE Container ou a Toolbox. Caso esteja usando documentos vinculados ou incorporados e altera esta propriedade antes
de um pedido de automao, pode ser interessante reconfigurar o valor posteriormente.

Propriedade OLEServerBusyMsgText
Retorna ou define o texto da mensagem alternativa "ocupado" que exibida no lugar da caixa de dilogo Component
Busy padro se um componente ActiveX rejeitar um pedido de automao. No est disponvel durante o tempo de
criao.
Sintaxe
object.OLEServerBusyMsgText [= String]
A sintaxe da propriedade OLEServerBusyMsgText tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
String
Uma expresso de seqncia de caracteres que avalia para
a mensagem de texto que ser exibida na caixa de
mensagem alternativa para a condio ocupada do
componente ActiveX.
Comentrios
O Visual Basic continua a repetir um pedido de automao para o nmero de milisegundos especificados pela propriedade
OLEServerBusyTimeout. Caso o componente ActiveX no tenha aceito o pedido dentro daquele intervalo, o Visual Basic
exibe uma caixa de dilogo Component Busy padro. Esta caixa de dilogo inclui texto e um boto Switch To que se
destinam a serem usados com componentes ActiveX visveis como o Microsoft Excel. Existem situaes em que a caixa de
dilogo padro pode no atender s suas necessidades:
O programa pode chamar um mtodo de um objeto fornecido por um componente ActiveX que no tenha uma interface de
usurio. Os componentes ActiveX criados usando a Professional Edition do Visual Basic, por exemplo, podem ser
executados em segundo plano sem quaisquer formulrios visveis.
O componente ActiveX chamado pode ter sido criado usando os recursos de Remote Automation do Visual Basic,
Enterprise Edition, e pode estar sendo executado em outro computador a alguma distncia do usurio.
Caso seu programa tenha carregado uma pasta de trabalho do Microsoft Excel usando a funo GetObject, a pasta de
trabalho no estar visvel quando o usurio alterna para o Microsoft Excel. Na realidade, o prprio Microsoft Excel pode
no estar visvel, caso em que o boto Switch To no faz nada.
Nestas situaes, o texto padro e o boto Switch To so inadequados, e podem confundir o usurio de seu programa.
A propriedade OLEServerBusyMsgText permite substituir a caixa de dilogo Component Busy padro por uma caixa de
mensagem alternativa. Configurando OLEServerBusyMsgText para sua prpria seqncia de caracteres de mensagem
faz com que a caixa de dilogo Component Busy seja substituda por uma caixa de mensagem simples contendo seu
texto de mensagem, um boto O e um boto Cancel.
Se OLERequestPendingMsgText for igual a uma seqncia de caracteres vazia (""), a caixa de dilogo Component Busy
padro exibida.
Caso o usurio pressione o boto Cancel na caixa de dilogo Component Busy padro, ou na caixa de mensagem
alternativa, o erro -2147418111 (&H80010001) do ActiveX produzido no procedimento que efetuou o pedido de
automao.
Importante Quando se sabe que um pedido de automao pode levar mais que alguns segundos, e est-se usando um
componente ActiveX oculto ou remoto deve-se definir uma mensagem alternativa. Para componentes ActiveX remotos, a
mensagem alternativa recomendada para todos os pedidos. Trfego de rede ocasionalmente pode fazer com que at
mesmo um pedido ActiveX muito curto leve vrios segundos.

Funes Internas

224

Propriedade OLEServerBusyMsgTitle
Retorna ou define a legenda da mensagem alternativa "ocupado" que exibida quando um componente ActiveX rejeita um
pedido de automao. No disponvel durante o tempo de criao.
Sintaxe
object.OLEServerBusyMsgTitle [= String]
A sintaxe da propriedade OLEServerBusyMsgTitle tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
String
Uma expresso de seqncia de caracteres que avalia para
a legenda da caixa de mensagem alternativa para a condio
ocupada do componente ActiveX.
Comentrios
Caso a propriedade OLEServerBusyMsgText tenha sido definida, o valor da propriedade OLEServerBusyMsgTitle
usado como a legenda da mensagem alternativa ocupado que substitui a caixa de dilogo Component Busy padro. O
valor padro da propriedade OLEServerBusyMsgTitle o valor atual da propriedade Title do objeto App. Esta a
configurao recomendada.
Caso a propriedade OLEServerBusyMsgText esteja definida como uma seqncia de caracteres vazia (""), a propriedade
OLEServerBusyMsgTitle ignorada.

Propriedade OLEServerBusyRaiseError
Determina se um pedido de automao rejeitado produz um erro, ao invs de exibir a caixa de dilogo Component Busy
padro ou uma mensagem alternativa. No est disponvel durante o tempo de criao.
Sintaxe
object.OLEServerBusyRaiseError [ = boolean]
A sintaxe da propriedade OLEServerBusyRaiseError tem estas trs partes:
Parte
Descrio
object
Uma expresso de objeto avalia para um objeto na lista
Applies To.
boolean
Uma expresso booleana que especifica se um erro deve ser
produzido, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
(Padro) Um erro produzido quando o nmero de
milisegundos
especificado
pela
propriedade
OLEServerBusyTimeout foi usado.
False
Dependendo
da
configurao
da
propriedade
OLEServerBusyMsgText, ou a caixa de dilogo Server
Busy padro ou uma mensagem alternativa de ocupado ser
exibida.
Comentrios
Produzir um erro quando um componente ActiveX rejeita um pedido de automao provoca o retorno do controle a seu
programa, o que lhe permite oferecer sua prpria caixa de dilogo personalizada no lugar da caixa de dilogo Component
Busy padro ou da mensagem alternativa de ocupado.
O erro de automao que ser produzido -2147418111 (&H80010001).

Propriedade OLEServerBusyTimeout
Retorna ou define o nmero de milisegundos durante os quais um pedido de automao continuar a ser repetido, antes
que a caixa de dilogo Component Busy padro (ou uma mensagem alternativa) seja exibida. No disponvel durante o
tempo de criao.
Sintaxe
object.OLEServerBusyTimeout [= milliseconds]
A sintaxe da propriedade OLEServerBusyTimeout tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
milliseconds
Um inteiro Long representando o nmero de milisegundos
durante os quais ser repetido um pedido de automao.
Comentrios
O valor padro desta propriedade 10.000 milisegundos (dez segundos).

Funes Internas

225

Importante Este valor de tempo limite tambm afeta os documentos vinculados ou incorporados usando o controle OLE
Container ou a Toolbox. Caso esteja usando documentos vinculados ou incorporados e alterar esta propriedade antes de
um pedido de automao, pode ser interessante redefinir os valores posteriormente.

Propriedade EXEName
Retorna a parte principal do nome do arquivo executvel (sem a extenso) que est sendo executado no momento. Se
estiver sendo executada em um ambiente de desenvolvimento, retorna o nome do projeto.
Sintaxe
object.EXEName
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade TasVisible
Retorna ou define um valor que determina se o aplicativo aparece na lista de tarefas do Windows.
Sintaxe
object.TasVisible [= boolean]
A sintaxe da propriedade TasVisible tem estas trs partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso booleana que determina se o aplicativo
aparece na lista de tarefas, conforme descrito em
Configuraes.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
(Padro)
O aplicativo aparece na lista de tarefas do
Windows.
False
O aplicativo no aparece na lista de tarefas do Windows.
Comentrios
A propriedade TasVisible somente pode ser configurada como False em aplicativos que no exibem uma interface como,
por exemplo componentes ActiveX que no contenham ou exibam objetos Form. Enquanto o aplicativo exibe uma interface,
a propriedade TasVisible automaticamente definida como True.

Propriedade hInstance
Retorna um identificador ocorrncia do aplicativo.
Sintaxe
object.hInstance
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
A propriedade hInstance retorna um tipo de dados Long.
Ao trabalhar com um projeto no ambiente de desenvolvimento Visual Basic, a propriedade hInstance retorna o identificador
de ocorrncia da ocorrncia de Visual Basic.

Propriedade Comments
Retorna ou define uma seqncia de caracteres contendo comentrios sobre o aplicativo em execuo. Somente leitura
durante o tempo de execuo.
Sintaxe
object.Comments
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Pode-se definir esta propriedade durante o projeto na caixa Type na guia Mae da caixa de dilogo Project Properties.

Propriedade CompanyName
Retorna ou define o valor de uma seqncia de caracteres contendo o nome da empresa ou do criador de um aplicativo em
execuo. Somente leitura durante o tempo de execuo.
Sintaxe
object.CompanyName
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Pode-se definir esta propriedade durante o projeto na caixa Type na guia Mae da caixa de dilogo Project Properties.

Propriedade FileDescription
Retorna ou define o valor de uma seqncia de caracteres contendo informaes sobre descrio de arquivo relativas ao
aplicativo em execuo. Somente leitura durante o tempo de execuo.
Sintaxe
object.FileDescription

Funes Internas

226

O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Durante o projeto, pode-se definir esta propriedade na caixa Type na guia Mae da caixa de dilogo Project Properties.

Propriedade LegalCopyright
Retorna ou define o valor da seqncia de caracteres contendo informaes legais de copyright sobre o aplicativo em
execuo. Somente leitura durante o tempo de execuo.
Sintaxe
object.LegalCopyright
O espao reservado object representa uma expresso de objeto que avalia para um objeto na ista Applies To.
Comentrios
Durante o projeto, pode-se definir esta propriedade na caixa Type da guia Mae na caixa de dilogo Project Properties.

Propriedade LegalTrademars
Retorna ou define o valor da seqncia de caracteres contendo informaes legais de marca registrada relativas ao
aplicativo em execuo. Somente leitura durante o tempo de execuo.
Sintaxe
object.LegalTrademars
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Durante o projeto, pode-se definir esta propriedade na caixa Type da guia Mae na caixa de dilogo Project Properties.

Propriedade Major
Retorna ou define o nmero de verso mais importante do projeto. Somente leitura durante o tempo de execuo.
Sintaxe
object.Major
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O valor da propriedade Major situa-se no intervalo de 0 a 9.999.
Esta propriedade oferece informaes de verso sobre o aplicativo em execuo.
Durante o projeto, pode-se definir esta propriedade na caixa Major da guia Mae da caixa de dilogo Project Properties.

Propriedade Minor
Retorna ou define o nmero de verso secundrio do projeto. Somente leitura durante o tempo de execuo.
Sintaxe
object.Minor
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O valor da propriedade Minor situa-se no intervalo 0 a 9.999.
Esta propriedade oferece informaes de verso sobre o aplicativo em execuo.
Durante o projeto, pode-se definir esta propriedade na caixa Minor da guia Mae na caixa de dilogo Project Properties.

Propriedade ProductName
Retorna ou define o valor de uma seqncia de caracteres contendo o nome do produto do aplicativo em execuo.
Somente leitura durante o tempo de execuo.
Sintaxe
object.ProductName
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Durante o projeto, pode-se definir esta propriedade na caixa Type da guia Mae na caixa de dilogo Project Properties.

Propriedade Revision
Retorna ou define o nmero de verso da reviso do projeto. Somente leitura durante o tempo de execuo.
Sintaxe
object.Revision
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O valor da propriedade Revision situa-se no intervalo 0 a 9.999.
Esta propriedade fornece informaes de verso sobre o aplicativo em execuo.
Durante o projeto, pode-se definir esta propriedade na caixa Revision da guia Mae na caixa de dilogo Project Properties.

Evento AccesseyPress
Ocorre quando o usurio do controle pressiona uma das teclas de acesso do controle, ou quando a tecla ENTER
pressionada tendo o desenvolvedor definido a propriedade Default como True, ou quando a tecla ESCAPE pressionada
tendo o desenvolvedor definido a propriedade Cancel como True. A propriedade Default e a propriedade Cancel so
ativadas pelo autor do controle definindo a propriedade DefaultCancel como True.
Sintaxe
Funes Internas

227

Sub object_AccesseyPress(eyAscii As Integer)


A sintaxe do evento AccesseyPress tem trs partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
eyAscii
Um inteiro que contm o valor Ascii da tecla (sem o ALT) que causou o
disparo do evento AccesseyPress, da mesma maneira que o evento
padro eyPress.

Propriedade Accesseys
Retorna ou define uma seqncia de caracteres contendo as teclas que funcionaro como teclas de acesso para o controle.
Sintaxe
object.Accesseys [= AccesseyString]
A sintaxe da propriedade Accesseys tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
AccesseyString
Uma seqncia de caracteres contendo as teclas que
funcionaro como teclas de acesso.
Comentrios
A propriedade Accesseys uma seqncia de caracteres que contm todas as teclas de acesso do controle. Como
exemplo, para configurar as letras S e Y como teclas de acesso, a propriedade Accesseys seria definida como "sy".
Quando um usurio pressiona uma das teclas de acesso juntamente com a tecla ALT, o controle recebe o foco (dependendo
da configurao da propriedade ForwardFocus).
As teclas de acesso a controles constituintes so implicitamente includas como Accesseys, embora no apaream na
propriedade Accesseys.

Propriedade Alignable
Retorna ou define um valor que determina se um controle alinhvel, ou pode utilizar a propriedade extensora Align. A
propriedade Alignable de leitura/gravao no momento da criao do controle, e no est disponvel durante o tempo de
execuo do controle.
Configuraes
As configuraes de Alignable so:
Configurao
Descrio
True
O controle alinhvel; o recipiente adicionar a propriedade Align ao
objeto extensor.
False
O controle no alinhvel. Este o valor padro.
Comentrios
O alinhamento do prprio controle ser manipulado pelo recipiente; o autor do controle pode usar a propriedade extensora
Align para decidir como redesenhar o controle e dispor os controles constituintes em resposta a um alinhamento.
Observao: Nem todos os recipientes suportam controles alinhveis. A interceptao de erros deve ser usada se voc
acessa a propriedade Align extensora para determinar como seu controle foi alinhado.

Objeto AmbientProperties
Um objeto AmbientProperties contm informaes do ambiente de um recipiente para sugerir o comportamento a
controles contidos no recipiente.
Comentrios
Os recipientes oferecem propriedades de ambiente para sugerir comportamentos aos controles. Como exemplo, BacColor
uma das propriedades de ambiente padro; o recipiente est sugerindo que o controle bem comportado deva definir suas
propriedades de cor de fundo.
As propriedades do objeto AmbientProperties so as propriedades de ambiente do recipiente. Estas propriedades so
somente leitura.
Algumas propriedades de ambiente so padro, enquanto que outras so especficas de determinados recipientes. Um
controle pode acessar propriedades de ambiente no-padro, mas isto torna o controle especfico de recipiente. O controle
deve tratar o caso onde uma propriedade de ambiente no esteja presente no recipiente atual.
Quando o controle compilado, o Visual Basic no tem como saber quais propriedades de ambiente especficas de
recipiente podem estar disponveis quando o controle executado; portanto, as referncias a propriedades de ambiente
especficas de recipiente sero sempre acopladas posteriormente.
O objeto AmbientProperties no est disponvel quando o evento Initialize produzido; mas est disponvel quando o
evento InitProperties ou ReadProperties produzido.
O objeto AmbientProperties tem diversas propriedades padro:
A propriedade BacColor, uma propriedade Color que contm a cor sugerida para o interior do controle contido. O padro
fornecido pelo Visual Basic caso o recipiente no suporte esta propriedade 0x80000005: a cor do sistema para o segundo
plano de uma janela.

Funes Internas

228

A propriedade DisplayAsDefault, uma propriedade Boolean que especifica se o controle o controle padro. O padro do

Visual Basic fornecido se o recipiente no suporta esta propriedade False.


A propriedade DisplayName, uma propriedade String contendo o nome de controle que deve ser automaticamente exibido.

O padro fornecido pelo Visual Basic se o recipiente no suporta esta propriedade uma seqncia vazia: "".
A propriedade Font, um objeto Font que contm as informaes de fonte sugeridas do controle contido. O padro fornecido

pelo Visual Basic caso o recipiente no suporte esta propriedade MS Sans Serif 8.
A propriedade ForeColor, uma propriedade Color que contm a cor sugerida para o primeiro plano do controle contido. O

padro fornecido pelo Visual Basic caso o recipiente no suporte esta propriedade 0x80000008: a cor do sistema para
texto de janela.
A propriedade LocaleID, uma propriedade Long que especifica o idioma e pas do usurio. O padro fornecido pelo Visual
Basic, caso o recipiente no suporte esta propriedade, a ID do local atual do sistema.
A propriedade MessageReflect, uma propriedade Boolean que especifica se o recipiente suporta reflexo de mensagem. O
padro fornecido pelo Visual Basic, caso o recipiente no suporte esta propriedade, False.
A propriedade Palette, um objeto Picture cuja paleta especifica a paleta sugerida para o controle contido.
A propriedade RightToLeft, uma propriedade Boolean que indica a direo de exibio do texto, e a aparncia visual do
controle em um sistema bidirecional. O padro fornecido pelo Visual Basic, caso o recipiente no suporte esta propriedade,
False.
A propriedade ScaleUnits, uma propriedade String contendo o nome da unidade de coordenadas usada pelo recipiente. O
padro fornecido pelo Visual Basic, caso o recipiente no suporte esta propriedade, uma seqncia vazia: "".
A propriedade ShowGrabHandles, uma propriedade Boolean que especifica se o recipiente trata a exibio de alas de
manipulao. O padro fornecido pelo Visual Basic, caso o recipiente no suporte esta propriedade True.
A propriedade ShowHatching, uma propriedade Boolean que especifica se o recipiente trata da exibio de hachurado. O
padro fornecido pelo Visual Basic, caso o recipiente no suporte esta propriedade True.
A propriedade SupportsMnemonics, uma propriedade Boolean que especifica se o recipiente trata de teclas de acesso
para o controle. O padro fornecido pelo Visual Basic, caso o recipiente no suporte esta propriedade False.
A propriedade TextAlign, uma enumerao que especifica como o texto deve ser alinhado. O padro fornecido pelo Visual
Basic, caso o recipiente no suporte esta propriedade, 0 - General Align.
A propriedade UserMode, uma propriedade Boolean que especifica se o ambiente est em modo de criao ou modo de
usurio final. O padro fornecido pelo Visual Basic, caso o recipiente no suporte esta propriedade. True.
A propriedade UIDead, uma propriedade Boolean que especifica se a interface de usurio no est respondendo. O padro
fornecido pelo Visual Basic, caso o recipiente no suporte esta propriedade, False.

Propriedade Ambient
Retorna um objeto AmbientProperties contendo as propriedades de ambiente do recipiente. A propriedade Ambient no
est disponvel no momento da criao do controle e ser somente leitura durante o tempo de execuo do controle.
Sintaxe
object.Ambient
A sintaxe da propriedade Ambient tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.

Evento AmbientChanged
Ocorre quando se altera o valor de um propriedade de ambiente.
Sintaxe
Sub object_AmbientChanged(PropertyName As String)
A sintaxe do evento AmbientChanged tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
PropertyName
Uma seqncia que identifica a propriedade de ambiente que foi
modificada.
Comentrios
Usando PropertyName, o controle pode acessar o objeto AmbientProperties na propriedade Ambient para verificar o novo
valor da propriedade de ambiente alterado.
Se for colocada uma ocorrncia do controle em um formulrio do Visual Basic, e a propriedade FontTransparent do
formulrio for alterada, o evento AmbientChanged no se produzir.

Evento ApplyChanges
Ocorre quando o usurio pressiona o boto O ou o boto Apply na pgina de propriedades, ou quando as pginas de
propriedade so alternadas selecionando-se guias.
Sintaxe
Sub object_ApplyChanges()
A sintaxe do evento ApplyChanges tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.

Funes Internas

229

Comentrios
Quando o evento ApplyChanges produzido, o autor da pgina de propriedades precisa tratar da configurao de todo os
novos valores de propriedade dos controles; espera-se que o autor tenha mantido o controle de quais propriedades foram
alteradas, caso contrrio todas as propriedades precisaro ser definidas. Para saber quais controles devem ser alterados,
utilize a propriedade SelectedControls.
O evento ApplyChanges somente ser produzido se a propriedade Changed for definida como True.

Mtodo AsyncRead
Inicia a leitura dos dados para o recipiente, a partir de um arquivo ou URL de maneira assncrona.
Sintaxe
object.AsyncRead Target, AsyncType [, PropertyName]
A sintaxe do mtodo AsyncRead tem estas trs partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Target
Uma expresso de seqncia de caracteres especificando a
localizao dos dados. Este pode ser uma caminho ou um URL.
AsyncType
Uma expresso de inteiro especificando como os dados sero
apresentados, conforme descrito em Configuraes.
PropertyName
Uma expresso de seqncia de caracteres opcional especificando
o nome da propriedade a ser carregada.
Configuraes
As configuraes para AsyncType so:
Configurao
Descrio
vbAsyncTypeFile
Os dados so fornecidos em um arquivo que criado
pelo Visual Basic.
VbAsyncTypeByteArray
Os dados so fornecidos como uma matriz de bytes que
contm os dados recuperados. Pressupe-se que o autor
do controle saiba como manipular os dados.
VbAsyncTypePicture
Os dados so fornecidos em um objeto Picture.
Comentrios
Uma vez que os dados pedidos pelo mtodo AsyncRead estejam disponveis, o evento AsyncReadComplete ser criado
no objeto. A leitura assncrona pode ser cancelada antes de seu trmino chamando o mtodo CancelAsyncRead.
O parmetro PropertyName pode ser qualquer nome arbitrrio, uma vez que sua nica funo atuar como um
identificador para este pedido de dados em particular. O valor em PropertyName usado para identificar a leitura
assncrona em particular para cancelar o mtodo CancelAsyncRead, e o valor em PropertyName tambm usado para
identificar a leitura assncrona em particular que foi completada no evento AsyncReadComplete.

Evento AsyncReadComplete
Ocorre quando o recipiente completou um pedido de leitura assncrona.
Sintaxe
Sub object_AsyncReadComplete(PropertyValue As AsyncProperty)
A sintaxe de evento AsyncReadComplete tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
PropertyValue
Um objeto AsyncProperty que contm as propriedades abaixo:
Value
Uma Variant contendo os resultados da
leitura assncrona. Esta a propriedade
padro.
PropertyName
Uma seqncia de caracteres contendo o
nome da propriedade que foi passado no
mtodo AsyncRead.
AsyncType
Um nmero inteiro especificando o tipo de
dados contido na propriedade Value,
conforme descrito em Configuraes.
Configuraes
As configuraes para AsyncType so:
Configurao
Descrio
vbAsyncTypeFile
A propriedade Value contm uma seqncia de
caracteres que um caminho at um arquivo
temporrio que contm os dados.
vbAsyncTypeByteArray
A propriedade Value contm uma matriz de bytes que
contm os dados.
vbAsyncTypePicture
A propriedade Value contm um objeto de figura do
formato correto.
Comentrios

Funes Internas

230

O valor contido em PropertyName especifica o pedido de leitura de dados assncronos em particular que foi completado, e
corresponde ao valor dado em um acionamento anterior do mtodo AsyncRead.
O cdigo de tratamento de erro devia ter sido colocado no procedimento de evento AsyncReadComplete porque uma
condio de erro pode ter interrompido a descarga. Se foi este o caso, este erro ocorre quando a propriedade Value do
objeto AsyncProperty acessada.

Propriedade BacStyle (Objeto UserControl)


Retorna ou define um valor indicando o tipo de segundo plano do controle. A propriedade BacStyle para leitura/gravao
durante o tempo de criao, e somente leitura durante o tempo de execuo do controle.
Sintaxe
object.BacStyle [= enum]
A sintaxe da propriedade BacStyle tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
enum
Um valor enumerado que determina como o segundo plano do
controle ser exibido, conforme descrito em Configuraes.
Configuraes
As configuraes parar enum so:
Configurao
Descrio
0-Transparent
Segundo plano transparente. Os controles atrs deste controle e o
segundo plano do formulrio que o contm sero visveis nas
reas vazias deste controle. A rea da exibio do controle pode,
ento, ser dividida em duas reas, a poro que parte de um
controle constituinte, e o restante. Esta ltima rea da exibio do
controle no pode receber desenhos, e a parte dos controles que
esto colocados no controle pelo desenvolvedor ou usurio final
que carem nesta ltima rea tambm sero invisveis. Os eventos
de mouse que carem nesta ltima rea no pertencero ao
controle, mas ao recipiente subjacente.
1-Opaque
Segundo plano opaco. Este o padro.
2-TransparentPaint
Segundo plano transparente. A diferena entre esta opo e 0Transparent que os controles atrs deste controle e o segundo
plano do formulrio estaro visveis atravs das reas vazias do
controle, mas a rea inteira do controle pode receber desenhos, os
controles colocados sobre este controle no estaro invisveis e
todos os eventos de mouse que carem dentro deste controle
pertencero a ele.

Propriedade BorderStyle
Retorna ou define um valor indicando qual o estilo de borda do controle. A propriedade BorderStyle de leitura/gravao
durante o tempo de criao do controle, e somente leitura durante o tempo de execuo do controle.
Sintaxe
object.BorderStyle [= enum]
A sintaxe da propriedade BorderStyle tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
enum
Um valor enumerado que determina qual estilo de borda do
controle, conforme descrito em Configuraes.
Configuraes
As configuraes para enum so:
Configurao
Descrio
0-None
Nenhuma borda. Este o valor padro.
1-Fixed Single
Uma nica linha desenhada ao redor do controle.

Mtodo CancelAsyncRead
Cancela um pedido de dados assncronos.
Sintaxe
object.CancelAsyncRead [PropertyName]
A sintaxe do mtodo CancelAsyncRead tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.

Funes Internas

231

PropertyName

Uma expresso de seqncia de caracteres opcional especificando


o nome do pedido de dados assncronos a serem cancelado.

Comentrios
Somente a leitura de dados assncronos especificada por PropertyName cancelada; todas as outras continuam
normalmente.
O valor contido em PropertyName especifica um determinado pedido de leitura de dados assncronos, e deve corresponder
ao valor dado em um acionamento anterior do mtodo AsyncRead. Caso PropertyName no seja fornecido, o ltimo
acionamento do mtodo AsyncRead que no forneceu um PropertyName ser cancelado.

Propriedade CanGetFocus
Retorna ou define um valor que determina se um controle pode receber o foco. A propriedade CanGetFocus de
leitura/gravao durante o tempo de criao do controle, e no est disponvel durante o tempo de execuo.
Configuraes
As configuraes para CanGetFocus so:
Configurao
Descrio
True
O controle pode receber foco. Caso o controle contenha controles
constituintes, o prprio controle poder receber o foco, a menos que
nenhum de seus controles constituintes possa receber o foco. Cabe ao
autor do controle escrever o cdigo que desenha o retngulo do foco no
controle quando ele recebe o foco. Este o valor padro.
False
O controle no pode receber foco.
Comentrios
Desde que o controle contenha pelo menos um controle constituinte, que tenha sido configurado para receber o foco,
CanGetFocus no pode ser definido como False. Caso CanGetFocus seja False, nenhum controle constituinte pode ser
configurado para receber o foco.

Mtodo CanPropertyChange
Pergunta ao recipiente se uma propriedade acoplada a uma origem de dados pode ter seu valor alterado. O mtodo
CanPropertyChange mais til se a propriedade especificada em PropertyName estiver acoplada a uma origem de dados.
Sintaxe
object.CanPropertyChange PropertyName
A sintaxe do mtodo CanPropertyChange tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
PropertyName
Uma expresso de seqncia de caracteres que representa um
nome da propriedade que o controle est pedindo para alterar.
Valores de retorno
Os valores de retorno possveis para CanPropertyChange so:
Configurao
Descrio
True
A propriedade especificada em PropertyName pode ser alterada
neste momento.
False
A propriedade especifica em PropertyName no pode ser alterada
desta vez; o recipiente tem a tabela acoplada a dados aberta
somente leitura. No configure o valor da propriedade; fazer isto
pode causar erros em alguns recipientes do controle.
Comentrios
O controle deve sempre chamar CanPropertyChange antes de alterar o valor de uma propriedade que pode estar
acoplada a dados.
Observao: Atualmente, CanPropertyChange sempre retorna True em Visual Basic, mesmo que o campo acoplado
seja somente leitura na origem dos dados. O Visual Basic no produz um erro quando o controle tenta alterar um campo
somente leitura; ele apenas no atualiza a origem dos dados.
Como exemplo, o cdigo abaixo mostra como o mtodo CanPropertyChange utilizado:
Public Property Let Address(ByVal cValue As String)
If CanPropertyChange("Address") Then
m_Address = cValue
PropertyChanged "Address"
End If
End Property

Propriedade Changed
Retorna ou define um valor indicando que um valor de uma propriedade ou uma pgina de propriedades foi alterado. A
propriedade Changed no est disponvel durante o tempo de autoria da pgina de propriedades, e para leitura/gravao
durante o tempo de execuo da pgina de propriedades.
Sintaxe
object.Changed [= boolean]

Funes Internas

232

A sintaxe da propriedade Changed tem estas partes:


Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
boolean
Um valor booleano que determina se uma propriedade na pgina de
propriedades foi alterada, tornando suja a pgina de propriedades.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
A pgina de propriedades est suja agora, uma vez que o valor de
uma propriedade na pgina foi alterado.
False
A pgina de propriedades no est suja, e nenhuma propriedade da
pgina teve seu valor alterado.
Comentrios
Quando o usurio altera o valor de propriedades em uma pgina de propriedades, estas alteraes no devem ser efetivas
imediatamente; ao invs, as alteraes somente sero aplicadas caso o usurio pressione o boto Aplicar, o boto O ou
alterar pginas de propriedade selecionando guias. Isto permite ao usurio anular com facilidade qualquer alterao que
tenha sido feita em uma pgina de propriedades.
A propriedade Changed deveria ser configurada como True, por exemplo, quando um usurio altera um valor de
propriedade em uma pgina de propriedades. A configurao da propriedade Changed como True modificaria a pgina de
propriedades para tornar disponvel o boto Aplicar.

Propriedade ContainedControls
Retorna uma coleo dos controles que foram adicionados ao controle pelo desenvolvedor ou usurio final durante o tempo
de criao do controle. A propriedade ContainedControls no est disponvel durante o tempo da autoria do controle, e
somente leitura durante o tempo de execuo.
Sintaxe
object.ContainedControls
A sintaxe da propriedade ContainedControls tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
A coleo ContainedControls preenchida com todos os controles que foram adicionados ao controle pelo desenvolvedor
ou pelo usurio final. O controle pode usar a coleo ContainedControls para executar operaes sobre qualquer um
destes controles contidos.
Esta coleo funciona de maneira parecida com a coleo Controles em um formulrio.
Para permitir que controles contidos sejam colocados no controle, a propriedade ControlContainer deve ser True.
Controles contidos no podem ser adicionados ou removidos atravs desta coleo ContainedControls; os controles
contidos devem ser alterados de toda maneira permitida pelo recipiente.
A propriedade ContainedControls pode no ser suportada por todos os recipientes, embora o recipiente possa suportar o
controle que tem controles contidos; os formulrios Visual Basic suportam esta propriedade. Se esta propriedade no for
suportada, as chamadas coleo ContainedControls provocaro erros; utilize tratamento de erros ao acessar a coleo.
Observe, contudo, que se o tratamento de erros for executado durante um procedimento de evento como o procedimento
de evento InitProperties ou o procedimento de evento ReadProperties, o tratamento de erros no provocar um evento de
erro; fazer isto pode ser fatal para o recipiente.
A coleo ContainedControls no est disponvel quando o evento Initialize produzido, mas estar disponvel quando o
evento InitProperties ou o evento ReadProperties for criado.
Uma vez que a coleo ContainedControls esteja presente, ela pode no conter imediatamente referncias a controles que
um desenvolvedor tenha colocado no controle. Por exemplo, caso o controle seja um formulrio do Visual Basic, a
propriedade Count da coleo ContainedControls ser zero at depois que o evento ReadProperties tenha sido executado.

Propriedade ControlContainer
Retorna ou define um valor que determina se um controle pode conter controles colocados nele pelo desenvolvedor ou pelo
usurio final durante o tempo de execuo do controle; da mesma forma que o controle PictureBox pode conter outros
controles. A propriedade ControlContainer para leitura/gravao durante o tempo de autoria, e no est disponvel
durante o tempo de execuo do controle.
Configuraes
As configuraes der ControlContainer so:
Configurao
Descrio
True
O controle pode conter controles nele colocados. Se uma ocorrncia
deste controle for colocada em um recipiente que no tenha
conhecimento de ISimpleFrame, o suporte de controles contidos ser
desativado. O controle continuar a funcionar corretamente quanto a
todo o resto, mas os desenvolvedores ou usurios finais no podero
colocar controles em uma ocorrncia deste controle.
False
O controle no pode conter qualquer controle nele colocado. Este o
valor padro.

Funes Internas

233

Comentrios
O suporte a controle contido no funciona em um formulrio do Visual Basic.
Controles contidos colocados em um controle com um segundo plano transparente somente so visveis onde sua
localizao se sobrepe a qualquer controle constituinte. Eventos de mouse sero passados ao controle contido somente
se eles ocorrerem onde o controle contido estiver visvel.

Coleo DataBindings
A coleo DataBindings uma propriedade extensora que coleciona as propriedades acoplveis disponveis para o
desenvolvedor e o usurio final.
Comentrios
Todas as propriedades acoplveis aparecem na coleo DataBindings durante o tempo de execuo de usurio final.
Durante o tempo de criao do desenvolvedor (tempo de execuo do controle), somente as propriedades marcadas "Exibir
na coleo DataBindings durante o tempo de criao" aparecero quando a propriedade DataBindings for acessada na
janela Properties.

Propriedade DefaultCancel
Retorna ou define um valor que determina se um controle pode funcionar como um boto de comando padro. A
propriedade DefaultCancel de leitura/gravao durante o tempo de autoria do controle, e no est disponvel durante o
tempo de execuo do controle.
Configuraes
As configuraes para DefaultCancel so:
Configurao
Descrio
True
O controle pode atuar como um boto de comando de cancelamento ou
padro. O recipiente adicionar as propriedades Default e Cancel ao
objeto extensor. A presena das propriedades Default e Cancel
permitem ao controle funcionar como um boto de comando padro. O
controle pode, ento definir estas propriedades do extensor
adicionadas.
False
O controle no pode agir como um boto de comando padro ou
cancelar. Nenhum controle constituinte tem sua propriedade Default ou
Cancel configurada como True. Este o valor padro.
Comentrios
Configura a propriedade Default como True e tambm ter um controle constituinte com sua propriedade Default
configurada como True far com que o controle constituinte seja pressionado quando a tecla ENTER for pressionada, caso
contrrio, o evento AccesseyPress do controle ser produzido quando a tecla ENTER for pressionada.
Configurar a propriedade Cancel como True e tambm ter um controle constituinte com sua propriedade Cancel definida
como True far com que o controle constituinte seja pressionado quando a tecla ESCAPE for pressionada, caso contrrio, o
evento AccesseyPress ser produzido quando a tecla ESCAPE for pressionada.
Importante O status de um boto padro ou cancelar pode mudar a qualquer momento. O cdigo deve ser colocado no
procedimento de evento AmbientChanged do controle, para detectar alteraes na propriedade DisplayAsDefault e a
aparncia do controle deve ser ajustada de acordo.

Propriedade DisplayAsDefault
Retorna um valor booleano para determinar se o controle o boto padro para o recipiente e, portanto, deve ser exibido
como controle padro.
Sintaxe
object.DisplayAsDefault
A sintaxe da propriedade DisplayAsDefault tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Configuraes
Os valores booleanos de retorno possveis da propriedade DisplayAsDefault so:
Configurao
Descrio
True
O controle o boto padro.
False
O controle no o boto padro. Se o recipiente no implementa
esta propriedade de ambiente, este ser o valor padro.
Comentrios
Apenas um controle em um recipiente pode ser o padro; o recipiente do controle determinar qual deles atualmente o
controle padro e o notificar atravs da propriedade de ambiente DisplayAsDefault. O controle notificado deve desenhar
a si mesmo para mostrar que ele o padro. Todos os outros controles tero seu valor de propriedade ambiente
DisplayAsDefault definidos como False.
Somente controles do tipo boto podem ser padro.

Propriedade DisplayName
Retorna um valor de seqncia de caracteres contendo o nome que o controle deve exibir para identificar-se em
mensagens de erro.
Sintaxe
object.DisplayName

Funes Internas

234

A sintaxe da propriedade DisplayName tem esta parte:


Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Esta propriedade de ambiente a maneira encontrada pelo controle para descobrir qual recipiente (por exemplo, o Visual
Basic) est chamando esta ocorrncia do controle. Esta seqncia de caracteres deve ser usada em mensagens de erro
como o nome da ocorrncia do controle.
Caso o recipiente no implemente esta propriedade de ambiente, o valor padro ser uma seqncia de caracteres vazia.

Propriedade EditAtDesignTime
Retorna ou define um valor que determina se um controle pode tornar-se ativo durante o tempo de criao do
desenvolvedor. A propriedade EditAtDesignTime de leitura/gravao durante o tempo de autoria de controle, e no est
disponvel durante o tempo de execuo do controle.
Configuraes
As configuraes para EditAtDesignTime so:
Configurao
Descrio
True
Permite que o controle torne-se ativo durante o tempo de criao. Um
Edit aparecer no menu de contexto do controle. Quando o
desenvolvedor que utiliza o controle escolhe Edit, o controle se torna
ativo e comporta-se como faria durante o tempo de execuo pelo
usurio final.
False
O controle no pode tornar-se ativo durante o tempo de criao. Este
o valor padro.
Comentrios
O controle permanecer ativo enquanto estiver selecionado. Quando o desenvolvedor selecionar outro controle, este
controle no estar mais ativo, mesmo que o desenvolvedor clique de volta nele. O desenvolvedor dever selecionar
novamente Edit no menu de contexto para tornar ativo o controle.
Observao: Quando o controle ativado desta maneira, os eventos do objeto UserControl ocorrero de tal forma que o
controle pode operar normalmente, mas no pode produzir qualquer evento. O mtodo RaiseEvent ser simplesmente
ignorado; no provocar um erro.

Evento EditProperty
Ocorre quando uma pgina de propriedades est aberta porque o desenvolvedor pressionou o boto de reticncias para
exibir uma determinada propriedade para edio.
Sintaxe
Sub object_EditProperty(PropertyName As String)
A sintaxe do evento EditProperty tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
PropertyName
Uma seqncia de caracteres que identifica a propriedade que deve
ser exibida e editada pela pgina de propriedades.
Comentrios
Este evento ocorre quando uma propriedade designada a uma pgina de propriedades atravs da caixa de dilogo
Attributes. Designar uma pgina de propriedades atravs da caixa de dilogo Attributes significa que a propriedade
exibida na janela de propriedade com reticncias () a seu lado, e o desenvolvedor pode pressionar o boto de reticncias
e a pgina de propriedades ser automaticamente aberta; o evento EditProperty , ento, produzido, de modo que o autor
da pgina de propriedades possa colocar o cursor no campo correto.

Evento EnterFocus
Ocorre quanto o foco entra no objeto. O prprio objeto poderia estar recebendo o foco, ou um controle constituinte poderia
estar recebendo o foco.
Sintaxe
Sub object_EnterFocus()
A sintaxe do evento EnterFocus tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Este evento til se object precisa saber que o foco agora est dentro dele.
O evento EnterFocus produzido antes de qualquer evento GotFocus; o evento GotFocus somente ser produzido em
object ou em controle constituinte de object que efetivamente tenha recebido o foco.

Propriedade EventsFrozen
Retorna um valor indicando se o recipiente est atualmente ignorando eventos produzidos pelo controle. A propriedade
EventsFrozen no est disponvel durante o tempo de criao, e somente leitura durante o tempo de execuo do
controle.

Funes Internas

235

Sintaxe
object.EventsFrozen
A sintaxe da propriedade EventsFrozen tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Quando a propriedade EventsFrozen True, o recipiente est ignorando quaisquer eventos que esteja sendo produzido
pelo controle. Caso o controle queira produzir um evento que no possa ser perdido, voc deve coloc-los em fila at que
EventsFrozen seja False.

Evento ExitFocus
Ocorre quando o foco deixa o objeto. O prprio objeto pode estar perdendo o foco, ou um controle constituinte pode estar
perdendo o foco.
Sintaxe
Sub object_ExitFocus()
A sintaxe do evento ExitFocus tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Este evento til caso object precise saber que o foco o est deixando agora.
O evento ExitFocus produzido aps qualquer evento LostFocus; o evento LostFocus somente ser produzido em object
ou controle constituinte de object que efetivamente perca o foco.

Objeto Extender

Um objeto Extender contm propriedades do controle que so realmente controladas pelo recipiente do controle, ao invs
do prprio controle.
Comentrios
Algumas propriedades de um controle so oferecidas pelo recipiente ao invs do controle; estas so propriedades
extensoras. Exemplos de propriedades extensoras so: Name, Tag e Left. O controle ainda precisa saber qual o valor
destas propriedades extensoras, e algumas vezes precisa poder alterar uma propriedade extensora; o objeto Extender
entrega o acesso do controle a estas propriedades.
Algumas propriedades extensoras so padronizadas, enquanto que outras so especficas de determinados recipientes.
Um controle pode acessar propriedades extensoras no-padro, mas isto torna o controle especfico do recipiente. Caso o
controle faa uso de uma propriedade extensora, ele deve tratar o caso onde a propriedade extensora no suportada pelo
recipiente atual.
Quando o controle compilado, o Visual Basic no tem como saber quais propriedades extensoras estaro disponveis
durante o tempo de execuo do controle; portanto as referncias a propriedades extensoras sero sempre de
acoplamento posterior.
Um objeto Extender no est disponvel quando o evento Initialize produzido; mas estar disponvel quando o evento
InitProperties ou evento ReadProperties for produzido.
O objeto Extender tem diversas propriedades padro:
A propriedade Name, uma propriedade String somente leitura que contm o nome definido pelo usurio para o controle.
A propriedade Visible, uma propriedade Boolean de leitura/gravao que especifica se o controle ou no visvel.
A propriedade Parent, um objeto somente leitura que representa o recipiente do controle, por exemplo, um formulrio no
Visual Basic.
A propriedade Cancel, uma propriedade Boolean somente leitura que indica ser o controle o boto Cancel padro do
recipiente.
A propriedade Default, uma propriedade Boolean somente leitura que indica ser o controle o boto padro para o
recipiente.
O Visual Basic oferece mais mtodos, propriedades e eventos extensores; outros recipientes no garantem oferecer estes
mtodos, propriedades e eventos extenses. Estes mtodos, propriedades e eventos extensores especficos do Visual
Basic so:
A propriedade Container, um objeto somente leitura que representa o recipiente visual do controle.
A propriedade DragIcon, uma propriedade Pictures para leitura/gravao que especifica o cone a ser usado quando o
controle arrastado.
A propriedade DragMode, uma propriedade Integer de leitura/gravao que especifica se o controle ser automaticamente
arrastado, ou se o usurio do controle deve chamar o mtodo Drag.
A propriedade Enabled, uma propriedade Boolean somente leitura que especifica se o controle est ativado. Esta
propriedade extensora no est presente, a menos que o controle tambm tenha uma propriedade Enabled com a ID de
procedimento correta. Para maiores informaes, consulte o tpico "Permitindo que seus controles sejam ativados e
desativados" no captulo 9: Criando controles ActiveX.
A propriedade Height, uma propriedade Integer de leitura/gravao que especifica a altura do controle em unidades de
escala do recipiente.
A propriedade HelpContextID, uma propriedade Integer de leitura/gravao que especifica a identificao de contexto a ser
usada quando a tecla F1 for pressionada quando o controle tem o foco.

Funes Internas

236

A propriedade Index, uma propriedade somente leitura que especifica a posio ocupada por esta ocorrncia do controle

em uma matriz de controle.


A propriedade Left, uma propriedade Integer de leitura/gravao que especifica a posio desde a borda esquerda do

controle at a borda esquerda do recipiente, especificada em unidades de escala do recipiente.


A propriedade TabIndex, uma propriedade Integer que especifica a posio do controle na ordem de tabulao dos

controles no recipiente.
A propriedade TabStop, uma propriedade Boolean de leitura/gravao que especifica se Tab parar no controle.
A propriedade Tag, uma propriedade String de leitura/gravao que contm um valor definido pelo usurio.
A propriedade ToolTipText, uma propriedade String de leitura/gravao que contm o texto a ser exibido quando o cursor

permanece sobre o controle por mais de um segundo.


A propriedade Top uma propriedade Integer de leitura/gravao que especifica a posio desde a borda superior do

controle at a borda superior do recipiente, especificada em unidades de escala do recipiente.


A propriedade WhatThisHelpID, uma propriedade Integer de leitura/gravao que especifica a identificao de contexto a

ser usada quando a pop-up O que isto? usada no controle.


A propriedade Width, uma propriedade de leitura/gravao que especifica a largura do controle em unidades de escala do

recipiente.
O mtodo Drag, um mtodo que inicia, termina ou cancela uma operao de arrasto do controle.
O mtodo Move, um mtodo para mover a posio do controle.
O mtodo SetFocus, um mtodo para definir o foco para o controle.
O mtodo ShowWhatsThis, um mtodo para exibir um tpico selecionado em um arquivo de Ajuda usando a pop-pop O
que isto? oferecida pela Ajuda.
O mtodo ZOrder, um mtodo para colocar o controle na frente ou atrs da ordem-z, dentro de seu nvel grfico.
O evento DragDrop, um evento que produzido quando outro controle no formulrio solto sobre este controle.
O evento DragOver, um evento que produzido quando outro controle do formulrio arrastado sobre este controle.
O evento GotFocus, um evento que produzido quando este controle recebe o foco.
O evento LostFocus, um evento que produzido quando este controle perde o foco.

Propriedade Extender
Retorna o objeto Extender para este controle que contm as propriedades do controle que so rastreadas pelo recipiente.
A propriedade Extender no est disponvel durante o tempo de autoria do controle, e somente leitura durante o tempo de
execuo do controle.
Sintaxe
object.Extender
A sintaxe da propriedade Extender tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.

Propriedade ForwardFocus
Retorna ou define um valor que determina qual controle recebe o foco quando uma das teclas de acesso do controle
pressionada. A propriedade ForwardFocus para leitura/gravao durante o tempo de autoria do controle, e no est
disponvel durante o tempo de execuo do controle.
Configuraes
As configuraes para ForwardFocus so:
Configurao
Descrio
True
O prximo controle na ordem de tabulao receber o foco quando uma
das teclas de acesso do controle for pressionada.
False
Caso a propriedade CanGetFocus seja True, o prprio controle
receber o foco quando uma das teclas de acesso do controle for
pressionada. Este o valor padro.
Comentrios
A propriedade ForwardFocus permite ao controle implementar o comportamento de um controle Label que tenha uma
tecla de acesso.
Teclas de acesso so configuradas por meio da propriedade Accesseys. Quando pressionada uma tecla de acesso, em
conjunto com a tecla ALT, o evento AccesseyPress do controle produzido.

Mtodo GoBac
Executa um salto de hyperlin de volta na lista de histricos.
Sintaxe
object.GoBac
A sintaxe do mtodo GoBac tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Caso o objeto esteja em um recipiente que suporte hyperlin OLE, o recipiente saltar at o local que est no passado na
lista de histricos. Caso o objeto esteja em um recipiente que no suporte hyperlins OLE, ento este mtodo provocar um
erro.

Funes Internas

237

Mtodo GoForward
Executa um salto de hyperlin para frente na lista de histricos.
Sintaxe
object.GoForward
A sintaxe do mtodo GoForward tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Caso o objeto esteja em um recipiente que suporte hyperlins OLE, o recipiente saltar at o local que est no futuro na lista
de histricos. Caso o objeto esteja em um recipiente que no suporta hyperlins OLE, este mtodo provocar um erro.

Evento GotFocus (Objeto UserControl e Objeto UserDocument)


Ocorre no objeto ou controle constituinte quando o foco entra nele.
Sintaxe
Sub object_GotFocus()
A sintaxe do evento GotFocus tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Este evento GotFocus no o mesmo evento extensor GotFocus manipulado pelo desenvolvedor que utiliza object. Este
evento GotFocus para o autor de object, e interno a object.
Este evento til se object precisa saber que o foco est agora nele.
O prprio object pode receber foco somente quando a propriedade CanGetFocus for True, e no existir controles
constituintes que possam receber o foco.
O evento EnterFocus produzido antes do evento GotFocus.
No produz o evento extensor GotFocus a partir deste evento.

Evento Hide (Objeto UserControl)


Ocorre quando a propriedade Visible do objeto se altera para False.
Sintaxe
Sub object_Hide()
A sintaxe do evento Hide tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Para desenhar na tela no Windows, qualquer objeto deve ter uma janela, temporria ou permanente; os controles ActiveX
do Visual Basic tm janelas permanentes. Antes que um controle tenha se situado em um formulrio, sua janela no est
no recipiente. O controle recebe eventos Hide quando a janela removida.
Enquanto a janela do controle est no formulrio, o objeto recebe um evento Hide quando a propriedade Visible do controle
se altera para False.
O controle no recebe eventos Hide se o formulrio estiver oculto e, em seguida exibido, ou se o formulrio for minimizado
e, em seguida, restaurado. A janela do controle permanece no formulrio durante estas operaes, e sua propriedade
Visible no se altera.
Caso o controle esteja sendo exibido em um navegador da Internet, o evento Hide ocorre quando a pgina movida para a
lista de histrico.
Observao: Caso o controle seja utilizado com uma verso anterior do Visual Basic, que no a 5.0, o controle no
receber eventos Hide durante o tempo da criao. Isto ocorre porque verses antigas do Visual Basic no colocam
nenhuma janela visvel em um formulrio durante o tempo de criao.

Evento Hide (Objeto UserDocument)


Ocorre quando a propriedade Visible do objeto se altera para False.
Sintaxe
Sub object_Hide()
A sintaxe do evento Hide tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Para desenhar na tela no Windows, um objeto precisa de uma janela, temporria ou permanente. Os documentos ActiveX
do Visual Basic tm janelas permanentes. O objeto UserDocument recebe eventos Hide quando a janela removida.
Enquanto a janela do object Windows est no recipiente, object recebe um evento Hide quando a propriedade Visible do
object se altera para False.

Funes Internas

238

Object no recebe eventos Hide se o recipiente for ocultado e novamente exibido, ou se o recipiente for minimizado e, em
seguida, restaurado. A janela do objeto permanece no recipiente durante estas operaes, e sua propriedade Visible no
se altera.
Caso object esteja sendo exibido em um navegador da Internet, ocorre um evento Hide quando a pgina movida para a
lista de histricos, navegando para fora de object para outro documento, ou quando o Internet Explorer 3.0 fechado
enquanto o object est sendo visualizado ou est dentro do cache de documentos ativos. Use este evento para destruir
qualquer referncia global de objeto, antes de navegar at outro documento.
Observao: Se object estiver sendo usado com verses mais antigas do Visual Basic, que no o 5.0, o object no
receber eventos Hide durante o tempo de criao. Isto ocorre porque verses antigas do Visual Basic no colocavam
nenhuma janela visvel em um formulrio durante o tempo de criao.

Evento InitProperties
Ocorre quando uma nova ocorrncia de um objeto criada.
Sintaxe
Sub object_InitProperties()
A sintaxe do evento InitProperties tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Este evento permite ao autor do objeto inicializar uma nova ocorrncia do objeto. Este evento somente ocorre quando uma
nova ocorrncia de um objeto est sendo criada; isto para permitir ao autor do objeto distinguir entre criar uma nova
ocorrncia do objeto e carregar uma ocorrncia antiga do objeto.
Colocando cdigo para inicializar novas ocorrncias no evento InitProperties, ao invs do evento Initialize, o autor pode
evitar casos em que carregar dados atravs de um evento ReadProperties em uma ocorrncia antiga do objeto anula a
inicializao do objeto.

Propriedade InvisibleAtRuntime
Retorna ou define um valor que determina se um controle no deve tem uma janela visvel durante o tempo de execuo. A
propriedade InvisibleAtRuntime para leitura/gravao durante o tempo de criao, e no est disponvel durante o
tempo de execuo do controle.
Configuraes
As configuraes para InvisibleAtRuntime so:
Configurao
Descrio
True
Permite que o controle no tenha uma janela visvel durante o tempo de
execuo. O recipiente do controle pode manter o controle invisvel
durante o tempo de execuo, como, por exemplo, o controle Timer. O
controle ainda est ativo e, portanto, o desenvolvedor que utiliza o
controle ainda pode escrever programas que podem interagir com o
controle. No existir propriedade Visible no objeto extensor.
False
O controle age como um controle normal durante o tempo de execuo,
onde o estado da propriedade extensora Visible determina a
visibilidade do controle. Este o valor padro.
Comentrios
Importante No utilize a propriedade extensora Visible para tornar o controle visvel durante o tempo de execuo. Se
isto for feito, o controle ainda ter todo o nus de um controle visvel durante o tempo de execuo. Alm disso, as
propriedades extensoras esto disponveis para o desenvolvedor e usurio final, que podem tornar o controle visvel.
Alguns recipientes podem no suportar a propriedade InvisibleAtRuntime; neste caso, o controle estar visvel durante o
tempo de execuo.
Antes de criar um controle que seja visvel durante o tempo de execuo, considere a possibilidade de criar um objeto
comum oferecido por um componente de cdigo em processo (DLL ActiveX). Os objetos oferecidos por componentes de
cdigo em processo exigem menos recursos que controles, mesmo controles invisveis. O nico motivo para implementar
um controle invisvel aproveitar um recurso que somente est disponvel para os controles ActiveX.

Propriedade LocaleID
Retorna um valor long que contm a identificao do local (idioma e pas) do usurio.
Sintaxe
object.LocaleID
A sintaxe da propriedade LocaleID tem esta parte:
Parte
Descrio
Object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
A propriedade de ambiente LocaleID contm a identificao do idioma e pas do usurio atual. Usando esta identificao, o
controle pode modificar seu comportamento e aparncia para ajustar-se ao idioma e pas. Isto pode ir desde simples
notificaes de erro no idioma do usurio, at modificaes mais complexas de propriedade, mtodo e nomes de evento no
idioma do usurio.
Caso o recipiente no implemente esta propriedade de ambiente, o valor padro ser a System LocaleID atual.
Funes Internas

239

Evento LostFocus (Objeto UserControl e Objeto UserDocument)


Ocorre no objeto ou controle constituinte quando o foco o deixa.
Sintaxe
Sub object_LostFocus()
A sintaxe do evento LostFocus tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Este evento LostFocus no o mesmo evento extensor LostFocus manipulado pelo desenvolvedor que utiliza object. Este
evento LostFocus para o autor de object, e interno em relao a object.
Este evento til se object precisa saber que o foco est nele neste momento.
O prprio Object pode receber o foco somente quando a propriedade CanGetFocus True, e no houver controles
constituintes que possam receber foco.
O evento LostFocus produzido antes do evento ExitFocus.

Propriedade MessageReflect
Retorna um valor booleano informando se o recipiente do controle trata automaticamente o reflexo de mensagem.
Sintaxe
object.MessageReflect
A sintaxe da propriedade MessageReflect tem esta parte:
Parte
Descrio
object

Uma expresso de objeto que avalia para um objeto na lista Applies


To.

Configuraes
O valores de retorno booleanos possveis da propriedade MessageReflect so:
Configurao
Descrio
True
O recipiente do controle refletir mensagens.
False
O recipiente do controle no pode refletir mensagens. Caso o
recipiente no implemente esta propriedade de ambiente, este ser o
valor padro.
Comentrios
Quando o controle est em uma subclasse, existem determinadas mensagens que so normalmente enviadas ao controle
pai. Sob condies normais, estas mensagens so, na realidade, refletidas de volta ao controle que as enviou, de modo
que o controle possa tratar sua prpria mensagem. Este espelhamento de mensagem pode ser tratada pelo recipiente, que
refletir as mensagens de volta como eventos. A propriedade MessageReflect informa se o recipiente do controle dispe
de espelhamento de mensagem.
Caso o controle seja colocado em um recipiente que no espelhe mensagens, a operao do controle ser seriamente
comprometida; grande parte da operao de controle depende de mensagens refletidas.

Mtodo NavigateTo
Executa um salto de hyperlin at o alvo especificado.
Sintaxe
object.NavigateTo Target [, Location [, FrameName]]
A sintaxe do mtodo NavigateTo tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Target
Uma expresso de seqncia de caracteres especificando a
localizao para onde deve ser dado o salto. Este pode ser um
documento ou um URL.
Location
Uma expresso de seqncia de caracteres especificando a
localizao dentro do URL especificado em Target para onde deve-se
saltar. Caso Location no seja especificado, o salto ser dado at o
documento padro.
FrameName
Uma expresso de seqncia de caracteres especificando a moldura
dentro do URL especificado em Target para onde deve-se saltar.
Caso FrameName no seja especificado, o salto ser dado at a
moldura padro.
Comentrios
Se o objeto est em um recipiente que suporte hyperlin OLE, o recipiente saltar at o local especificado. Caso o objeto
esteja em um recipiente que no suporte hyperlin OLE, um aplicativo que seja registrado como suportando hyperlin
iniciado para tratar o pedido.
Caso Target no especifique uma localizao vlida, um erro produzido.

Funes Internas

240

Propriedade ParentControls
Retorna uma coleo dos outros controles no recipiente do controle. A propriedade ParentControls no est disponvel
durante o tempo de criao do controle, e somente leitura durante o tempo de execuo do controle.
Sintaxe
object.ParentControls
A sintaxe da propriedade ParentControls tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Na maior parte dos casos, o recipiente do controle ser um formulrio; esta coleo funciona de maneira parecida como a
coleo Controls no formulrio, mas conter tambm o prprio formulrio.
Esta coleo til se o controle deseja executar alguma ao sobre os controles no formulrio; ele pode iterar pela
coleo.
Os controles no podem ser adicionados ou removidos pelo desenvolvedor que utiliza o controle nesta coleo; eles devem
ser alterados de todas as maneiras permitidas pelo recipiente.
O contedo desta coleo inteiramente determinado pelo recipiente.

Objeto PropertyBag
Um objeto PropertyBag contm informaes que devem ser salvas e restauradas durante acionamentos de um objeto.
Comentrios
Um objeto PropertyBag passado a um objeto por meio do evento ReadProperties e do evento WriteProperties para
salvar e restaurar o estado do objeto. Usando os mtodos do objeto PropertyBag, o objeto pode ler ou gravar suas
prprias propriedades. O mtodo ReadProperty do objeto PropertyBag usado para ler um valor de uma propriedade,
enquanto o mtodo WriteProperty do objeto PropertyBag usado para gravar o valor de uma propriedade. O valor de
uma propriedade pode ser ele mesmo um objeto; neste caso o objeto PropertyBag tentar salv-lo.

Mtodo PropertyChanged
Notifica o recipiente que o valor de uma propriedade foi alterado.
Sintaxe
object.PropertyChanged PropertyName
A sintaxe do mtodo PropertyChanged tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
PropertyName
Uma expresso de seqncia de caracteres que representa um nome
da propriedade cujo valor foi alterado pelo controle.
Comentrios
Notificando o recipiente de que o valor de uma propriedade foi alterado, o recipiente pode sincronizar sua janela de
propriedade com os novos valores das propriedades do objeto. Alm disso, o recipiente no saberia se uma ocorrncia do
objeto precisava ser salvo (atravs da produo de um evento WriteProperties) a menos que o recipiente fosse notificado
de que o valor de uma propriedade fora alterado.
Este mtodo precisa ser chamado, por exemplo, quando um usurio altera o valor de uma propriedade em uma pgina de
propriedades, ou o prprio objeto altera o valor de uma propriedade. Este mtodo tambm deve ser chamado quando uma
propriedade acoplada a dados modificada; caso contrrio, a origem dos dados no ser atualizada.
As propriedades que esto disponveis somente durante o tempo de execuo, no precisam chamar o mtodo
PropertyChanged, a menos que elas sejam acopladas a dados.
Como exemplo, o cdigo abaixo mostra como usado o mtodo PropertyChanged:
Public Property Let Address(ByVal cValue As String)
m_Address = cValue
PropertyChanged "Address"
End Property

Propriedade PropertyPages
Retorna ou define uma seqncia de caracteres que o nome de uma pgina de propriedades que est associada a um
controle.
Sintaxe
object.PropertyPages(index) [= PropPageName]
A sintaxe da propriedade PropertyPages tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
index
ndice de uma matriz de seqncias de caracteres.
PropPageName
Uma seqncia de caracteres contendo o nome de uma pgina de
propriedades do projeto.
Comentrios
Funes Internas

241

A propriedade PropertyPages uma matriz de seqncias de caracteres contendo os nomes das pginas de propriedade
no projeto que esto associadas a este controle. Uma pgina de propriedades pode ser adicionada matriz definindo-se o
ltimo item na matriz (que est sempre vazia) Uma pgina de propriedades pode ser excluda da matriz definindo-se o
elemento na matriz como uma seqncia de caracteres vazia.
O ordem dos nomes de pginas de propriedade na matriz determina a ordem em que as pginas aparecem na caixa de
dilogo da pgina de propriedades do controle.

Propriedade Public
Retorna ou define um valor que determina se um controle pode ser compartilhado com outros aplicativos. A propriedade
Public para leitura/gravao durante o tempo de criao do controle e no est disponvel durante o tempo de execuo.
Configuraes
As configuraes para Public so:
Configurao
Descrio
True
O controle pode ser compartilhado com outros aplicativos. Este o
padro para tipos de projeto ActiveX Control.
False
O controle no pode ser compartilhado com outros aplicativos. Quando o
controle est contido em um projeto ActiveX Control, o controle no pode
ser visualizado fora do projeto ActiveX Control. Isto significa que outros
controles ou outros formulrios no projeto podem usar o controle, mas
aplicativos externos no podem. Este o nico valor vlido para tipos de
projeto que no o ActiveX control.

Evento ReadProperties
Ocorre quando se carrega uma ocorrncia antiga de um objeto que tem um estado salvo.
Sintaxe
Sub object_ReadProperties(pb As PropertyBag)
A sintaxe do evento ReadProperties tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
pb
Um objeto do tipo classe PropertyBag que contm os dados salvos a
serem carregados.
Comentrios
Quando ocorre este evento, o autor do objeto pode carregar no estado salvo de pb, chamando o mtodo ReadProperty do
objeto PropertyBag para cada valor que deve ser carregado. Este evento ocorre aps o evento Initialize.
Sempre inclua interceptao de erros ao lidar com o evento ReadProperties, para proteger o controle contra valores de
propriedade invlidos que possam ter sido inseridos por usurios ao editar o arquivo contendo os dados salvos por meio de
processadores de texto. Entretanto, no se deve provocar um erro em um evento, uma vez que fazer isto pode ser fatal
para o recipiente, assim qualquer interceptao de erro no procedimento de evento ReadProperties no deve incluir a
provocao de erros.

Mtodo ReadProperty
Retorna um valor salvo de um objeto da classe PropertyBag.
Sintaxe
object.ReadProperty(DataName[, DefaultValue])
A sintaxe do mtodo ReadProperty tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
DataName
Uma expresso de seqncia de caracteres que representa um valor
de dados contido em PropertyBag.
DefaultValue
O valor a ser retornado se nenhum valor existir em PropertyBag.
Comentrios
O mtodo ReadProperty retornar o valor dos dados salvos que so representados pela expresso de seqncia de
caracteres DataName ou DefaultValue se no existir valor salvo. DataName deve corresponder expresso de seqncia
de caracteres que foi usada para armazenar o valor dos dados salvo na sacola de propriedades.
Observao: Especificar um valor padro reduz o tamanho do arquivo pertencente ao recipiente do controle. Uma linha
para a propriedade escrita no arquivo somente se o valor a ser gravado for diferente do padro. Onde possvel, deve-se
especificar valores padro para as propriedades do controle ao inicializar, salvar e recuperar valores de propriedade.

Propriedade RightToLeft
Retorna um valor booleano que indica a direo da exibio do texto e controla a aparncia visual em um sistema
bidirecional.
Sintaxe
object.RightToLeft

Funes Internas

242

A sintaxe da propriedade RightToLeft tem esta parte:


Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Configuraes
Os valores booleanos de retorno da propriedade RightToLeft so:
Configurao
Descrio
True
O controle est sendo executado em uma plataforma bidirecional
como, por exemplo do Windows 95 em rabe ou Hebraico, e o texto
est sendo executado da direita para a esquerda. O controle deve
modificar seu comportamento, por exemplo, colocar barras de
rolagem vertical no lado esquerdo de um texto ou caixa de listagem,
colocar rtulo direita das caixas de texto, etc.
False
O controle deve funcionar como se ele estivesse sendo executado
em uma plataforma no-bidirecional como, por exemplo o Windows
95 em Ingls, e o texto est sendo executado da esquerda para a
direita. Caso o recipiente no implemente esta propriedade de
ambiente, este ser o valor padro.

Propriedade ScaleUnits
Retorna um valor de seqncia de caracteres que o nome das unidades de coordenadas utilizadas pelo recipiente.
Sintaxe
object.ScaleUnits
A sintaxe da propriedade ScaleUnits tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Esta seqncia de caracteres representa as coordenadas usadas pelo recipiente do controle, por exemplo "twips". Esta
seqncia de caracteres pode ser usada pelo controle como um indicador de unidades ao se exibir valores de coordenada.
Caso o recipiente no implemente esta propriedade de ambiente, o valor padro ser uma seqncia de caracteres vazia.

Propriedade SelectedControls
Retorna uma coleo que contm todos os controles atualmente selecionados no formulrio. A propriedade
SelectedControls no est disponvel durante o tempo de autoria da pgina de propriedades, e somente leitura durante
o tempo de execuo da pgina de propriedades.
Sintaxe
object.SelectedControls
A sintaxe da propriedade SelectedControls tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Esta coleo til para que uma pgina de propriedades determine quais controles esto selecionados atualmente e,
portanto, quais controles podem sofrer modificaes em suas propriedades. Alguns recipientes somente permitem a
seleo de um controle de cada vez; neste caso SelectedControls somente conter um controle. Outros recipientes
permitem que mais de um controle seja selecionado ao mesmo tempo; neste caso podem existir mais de um controle
selecionado e a pgina de propriedades deve iterar pelos controles contidos na coleo SelectedControls e tentar definir as
propriedades alteradas. Tratamento de erro adequado deve ser escrito para cuidar dos casos em que um determinado
controle na coleo no sofre modificao em sua propriedade, ou quando o controle provoca um erro no momento da
definio da propriedade.

Evento SelectionChanged
Ocorre quando a seleo de controles no formulrio sofre alterao.
Sintaxe
Sub object_SelectionChanged()
A sintaxe do evento SelectionChanged tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
O disparo deste evento notifica a pgina de propriedades que a seleo de controles foi alterada e, portanto, a exibio dos
valores de propriedade atuais pode precisar ser atualizada. A propriedade SelectedControls deve ler para encontrar o
novo conjunto de controles selecionados.

Funes Internas

243

O evento SelectionChanged tambm provocado quando a pgina de propriedades trazida pela primeira vez para um
controle.

Evento Show (Objeto UserControl)


Ocorre quando a propriedade Visible do objeto alterada para True.
Sintaxe
Sub object_Show()
A sintaxe do evento Show tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Para desenhar na tela no Windows, qualquer objeto deve ter uma janela, temporria ou permanente. Os controles ActiveX
do Visual Basic tm janelas permanentes. Antes que um controle tenha sido colocado em um formulrio, sua janela no
est no recipiente. O controle recebe eventos Show quando a janela adicionada.
Enquanto a janela do controle est no formulrio, o controle recebe um evento Show quando a propriedade Visible
alterada para True.
O controle no recebe eventos Show se o formulrio for ocultado e novamente exibido, ou se o formulrio for minimizado e,
em seguida, restaurado. A janela do controle permanece no formulrio durante estas operaes e sua propriedade Visible
no sofre alterao.
Caso o controle esteja sendo mostrado em um navegador da Internet, ocorre um evento Show se o usurio retorna
pgina que contm o controle.
Observao: Caso o controle seja usado com verses anteriores do Visual Basic, que no a 5.0, o controle no receber
eventos Show durante o tempo de criao. Isto ocorre porque verses antigas do Visual Basic no colocam qualquer janela
visvel em um formulrio durante o tempo de criao.

Evento Show (Objeto UserDocument)


Ocorre quando a propriedade Visible do objeto se altera para True.
Sintaxe
Sub object_Show()
A sintaxe do evento Show tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Comentrios
Para desenhar na tela no Windows, qualquer objeto deve ter uma janela, temporria ou permanente. Os documentos
ActiveX do Visual Basic tm janelas permanentes. Antes que um objeto tenha sido colocado em um formulrio, sua janela
no est no recipiente. O objeto UserDocument recebe eventos Show quando a janela adicionada.
Enquanto a janela do objeto est no recipiente, o objeto recebe um evento Show quando a propriedade Visible do objeto
alterada para True.
O objeto no recebe eventos Show se o recipiente ocultado e novamente exibido, ou se o recipiente minimizado e, em
seguida, restaurado. A janela do objeto permanece no recipiente durante estas operaes e sua propriedade Visible no
sofre alterao.
Caso o objeto esteja sendo mostrado em um navegador da Internet, ocorre um evento Show quando o usurio navega at
a pgina.
Observao: Caso o objeto seja usado com verses anteriores do Visual Basic, que no a 5.0, o objeto no receber
eventos Show durante o tempo de criao. Isto ocorre porque verses antigas do Visual Basic no colocam qualquer janela
visvel em um formulrio durante o tempo de criao.

Propriedade ShowGrabHandles
Retorna um valor booleano informando se o controle deve ou no conter alas de manipulao.
Sintaxe
object.ShowGrabHandles
A sintaxe da propriedade ShowGrabHandles tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Configuraes
O valores booleanos de retorno possveis da propriedade ShowGrabHandles so:
Configurao
Descrio
True
O controle deve mostrar alas de manipulao, se necessrio. Caso
o recipiente no implemente esta propriedade de ambiente, este
ser o valor padro.
False
O controle no deve mostrar alas de manipulao.
Comentrios
O comportamento padro de um controle mostrar automaticamente alas de manipulao quando o controle est em um
recipiente que esteja em modo de criao (o modo de execuo do controle). Entretanto, muitos recipientes no desejam
Funes Internas

244

que o controle exiba alas de manipulao, preferindo tratar a indicao de tamanho do controle de outra maneira. A
propriedade ShowGrabHandles a maneira como o recipiente notifica o controle de quem deve exibir as indicaes de
dimensionamento.
Observao: Todos os recipientes conhecidos preferem tratar eles mesmos da indicao de dimensionamento do controle
e, portanto, defina a propriedade ShowGrabHandles como False. Provavelmente no necessrio tratar efetivamente do
caso quando ShowGrabHandles True.

Propriedade ShowHatching
Retorna um valor booleano indicando se o controle deve exibir hachurado ao redor do controle.
Sintaxe
object.ShowHatching
A sintaxe da propriedade ShowHatching tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Configuraes
Os valores booleanos de retorno possveis da propriedade ShowHatching so:
Configurao
Descrio
True
O controle deve mostrar marcas de hachura, se for necessrio. Caso
o recipiente no implemente esta propriedade de ambiente, este ser
o valor padro.
False
O controle no deve mostrar marcas de hachura.
Comentrios
O comportamento padro para um controle mostrar automaticamente o hachurado quando o controle est em um
recipiente que esteja no modo de criao (o modo de execuo do controle) e o controle que tem o foco. Entretanto,
muitos recipientes no desejam que o controle mostre hachurado, preferindo tratar da indicao de foco de controle de
outra forma. A propriedade ShowHatching a maneira como o recipiente notifica o controle de quem deve exibir
indicaes de foco de controle.
Observao: Os formulrios do Visual Basic no implementam esta propriedade de ambiente e, portanto, a propriedade
ShowHatching configurada com o valor padro True quando o controle colocado em um formulrio Visual Basic.
Entretanto, o Visual Basic no espera que o controle efetivamente faa coisa alguma em resposta ao valor True de
ShowHatching, portanto no necessrio tratar efetivamente do caso quando ShowHatching for True.

Propriedade SupportsMnemonics
Retorna um valor booleano informando se o recipiente do controle trata de teclas de acesso para o controle.
Sintaxe
object.SupportsMnemonics
A sintaxe da propriedade SupportsMnemonics tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Configuraes
Os valores booleanos de retorno possveis da propriedade SupportsMnemonics so:
Configurao
Descrio
True
O recipiente do controle trata de teclas de acesso.
False
O recipiente do controle no trata de teclas de acesso. Caso o
recipiente no implemente esta propriedade de ambiente, este ser o
valor padro.
Comentrios
A maior parte dos recipientes de controles pode tratar de todos os processamentos de teclas de acesso para os controles
contidos no recipiente. Isto inclui calcular quais controles devem receber uma determinada tecla de acesso. Caso um
recipiente no possa processar teclas de acesso, isto indicado por esta propriedade SupportsMnemonics, e o controle
pode agir, por exemplo no exibindo o caractere de sublinhado como indicao de aceleradores de teclado.

Propriedade TextAlign
Retorna um valor enumerado de tipo de TextAlignChoices informando qual tipo de alinhamento de texto o recipiente
gostaria que fosse adotado pelo controle.
Sintaxe
object.TextAlign
A sintaxe da propriedade TextAlign tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Configuraes
Os valores de retorno enumerados possveis da propriedade TextAlign so:
Configurao
Descrio

Funes Internas

245

0-General
1-Left
2-Center
3-Right
4-FillJustify

Alinhamento geral: o texto esquerda, nmeros direita. Caso o


recipiente no implemente esta propriedade de ambiente, este ser o
valor padro.
Alinhar esquerda.
Centralizar.
Alinhar direita.
Preencher e justificar.

Comentrios
Esta propriedade de ambiente a maneira como um recipiente comunica a um controle recipiente como executar a
justificao; esta uma dica do recipiente que o controle pode ou no aceitar.

Propriedade ToolboxBitmap
Retorna ou define um bitmap que ser usado como representao pictrica do controle na caixa de ferramentas. O
tamanho do espao para o bitmap na caixa de ferramentas 16x15 pixels; o bitmap especificado por esta propriedade ser
escalado para estas dimenses se for necessrio. A propriedade ToolboxBitmap para leitura/gravao durante o tempo
de criao do controle e no est disponvel durante o tempo de execuo do controle.
Comentrios
Importante No atribua um cone propriedade ToolboxBitmap. cones no so bem escalados at o tamanho de
bitmap Toolbox.
O Visual Basic usa automaticamente o nome da classe do controle como texto de dica de ferramenta quando os usurios
passam com o ponteiro do mouse sobre o cone na Barra de ferramentas.
Dica Ao criar bitmaps, lembre-se de que para muitas formas de daltonismo, as cores como o mesmo nvel geral de brilho
aparecero como sendo a mesma. Pode-se evitar isto restringindo o bitmap a branco, preto e tons de cinza, ou atravs de
uma cuidadosa seleo de cores.

Propriedade UIDead
Retorna um valor booleano indicando se o controle deve ou no responder ao usurio.
Sintaxe
object.UIDead
A sintaxe da propriedade UIDead tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Configuraes
Os valores booleanos de retorno possveis da propriedade UIDead so:
Configurao
Descrio
True
O controle no deve responder ao usurio.
False
O controle deve responder ao usurio. Caso o recipiente no
implemente esta propriedade de ambiente, este ser o valor padro.
Comentrios
Esta propriedade tipicamente usada para indicar que o recipiente est em modo de interrupo: durante este modo, o
controle no deve responder a nenhuma entrada do usurio. Isto , o controle deve ignorar cliques de mouse e
pressionamentos de tecla, e no altera o cursor do mouse mesmo quando o mouse encontra-se sobre a janela do controle.
Um recipiente como, por exemplo, um formulrio do Visual Basic definiria este sinalizador como TRUE quando o
programador parasse o programa durante a execuo o recipiente no est no modo de criao, nem no modo de
execuo ainda; o Visual Basic simplesmente deseja que o controle esteja inoperante.

Propriedade UserMode
Retorna um valor booleano indicando se o controle est sendo usado por um criador de formulrio ou um usurio de
formulrio.
Sintaxe
object.UserMode
A sintaxe da propriedade UserMode tem esta parte:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
Configuraes
Os valores booleanos de retorno possveis da propriedade UserMode so:
Configurao
Descrio
True
O controle est sendo atualmente usado por um usurio de
formulrio. Caso o recipiente no implemente esta propriedade de
ambiente, este ser o valor padro. No Visual Basic, este o modo
de execuo.
False
O controle est sendo usado atualmente por um criador de
formulrios (o desenvolvedor). No Visual Basic, este o modo de
criao.
Funes Internas

246

Evento WriteProperties
Ocorre quando uma ocorrncia de um objeto deve ser salva. Este evento sinaliza ao objeto que o estado do objeto precisa
ser salvo, de modo que o estado possa ser restaurado posteriormente. Na maior parte dos casos, o estado do objeto
consiste apenas em valores de propriedade.
Sintaxe
Sub object_WriteProperties(pb As PropertyBag)
A sintaxe do evento WriteProperties tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
pb
Um objeto do tipo da classe PropertyBag onde devem ser gravados
os dados.
Comentrios
O autor de object pode fazer com que object salve o estado quando ocorrer o evento WriteProperties, chamando o mtodo
WriteProperty do objeto PropertyBag para cada valor que deva ser salvo.
Observao: A sacola de propriedade pb pode ser diferente da pb que foi passada ao evento ReadProperties mais
recente.
O evento WriteProperties pode ocorrer mltiplas vezes durante a vida de uma ocorrncia de object.

Mtodo WriteProperty
Grava um valor a ser salvo em um objeto da classe PropertyBag.
Sintaxe
object.WriteProperty(DataName, Value[, DefaultValue])
A sintaxe do mtodo WriteProperty tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
DataName
Uma expresso de seqncia de caracteres para representar o valor
de dados a ser colocado na sacola de propriedade.
Value
Os valores de dados a serem salvos na sacola de propriedade.
DefaultValue
O valor padro dos dados.
Comentrios
O mtodo WriteProperty gravar um valor de dados na sacola de propriedade, e o associar ao valor de seqncia de
caracteres em DataName. Este valor de seqncia de caracteres ser utilizado para acessar o valor de dados quando o
mtodo ReadProperty chamado para recuperar um valor de dados salvo da sacola de propriedade.
Observao: Especificar um valor padro reduz o tamanho do arquivo pertencente ao recipiente do controle. Uma linha
para a propriedade escrita no arquivo somente se o valor a ser gravado for diferente do padro. Sempre que possvel,
deve-se especificar valores padro para as propriedades do controle ao inicializar, salvar e recuperar valores de
propriedade.

Objeto Picture
O objeto Picture permite manipular bitmaps, cones, metarquivos imagens de metarquivos melhorados, GIF e JPEG
atribudas a objetos que tenham uma propriedade Picture.
Sintaxe
Picture
Comentrios
Com freqncia, identifica-se um objeto Picture usando a propriedade Picture de um objeto que exiba elementos grficos
(por exemplo, um objeto Form ou um controle PictureBox). Caso tenha um controle PictureBox chamado Picture1, voc
pode configurar um objeto Picture de maneira igual a outro usando a instruo Set, como no exemplo abaixo:
Dim X As Picture
Set X = LoadPicture("PARTY.BMP")
Set Picture1.Picture = X
Pode-se usar uma matriz de objetos Picture para manter uma srie de elementos grficos na memria sem precisar de um
formulrio que contenha mltiplos controles PictureBox ou Image.
Pode-se criar um objeto Picture usando cdigo como, por exemplo, Dim X As New Picture. Caso queira criar um objeto
Picture, voc deve usar o objeto StdPicture desta forma:
Dim X As New StdPicture

Propriedade Handle
Retorna um identificador ao elemento grfico contido em um objeto Picture.
Sintaxe
object.Handle
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Valor retornado

Funes Internas

247

O valor retornado pela propriedade Handle depende da configurao atual da propriedade Type como mostra a tabela
abaixo:
Propriedade Type
1 (Bitmap)
2 (Metarquivo)
3 (cone)
4 (Metarquivo ampliado)

Valor retornado
Um identificador HBITMAP.
Um identificador HMETAFILE.
Um identificador HICON ou HCURSOR.
Um identificador HENHMETAFILE.

Comentrios
A propriedade Handle til quando se precisa passar um identificador a um elemento grfico como parte de uma chamada
de uma funo em uma biblioteca de vnculos dinmicos (DLL) da API Windows.

Propriedade hPal
Retorna ou configura um identificador para a paleta de uma figura em um objeto Picture.
Sintaxe
object.hPal [= value]
A sintaxe da propriedade hPal tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
O identificador para a paleta da figura (HPAL).
Comentrios
A propriedade hPal til quando se precisa passar um identificador a uma paleta como parte de uma chamada a uma
funo em uma biblioteca de vnculos dinmicos (DLL) ou API Windows.

Mtodo Render
Desenha toda ou parte de uma imagem de origem a um objeto de destino.
Sintaxe
object.Render(hdc, xdest, ydest, destwid, desthgt, xsrc, ysrc, srcwid, srchgt, wbounds)
A sintaxe do mtodo Render tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um objeto na
lista Applies To.
hdc
Obrigatrio. O identificador do contexto do dispositivo do objeto de
destino.
xdest
Obrigatrio. A coordenada de x do canto superior esquerdo da rea de
desenho no objeto de destino. Esta coordenada est na unidade de
escala do objeto de destino.
ydest
Obrigatrio. A coordenada de y do canto superior esquerdo da rea de
desenho no objeto de destino. Esta coordenada est na unidade de
escala do objeto de destino.
destwid
Obrigatrio. A largura da rea de desenho no objeto de destino,
expressa nas unidades de escala do objeto de destino.
desthgt
Obrigatrio. A altura da rea de desenho no objeto de destino,
expressa nas unidades de escala do objeto de destino.
xsrc
Obrigatrio. A coordenada de x do canto superior esquerdo da rea de
desenho no objeto de origem. Esta coordenada est em unidades
HIMETRIC.
ysrc
Obrigatrio. A coordenada de y do canto superior esquerdo da rea de
desenho no objeto de origem. Esta coordenada est em unidades
HIMETRIC.
srcwid
Obrigatrio. A largura da rea de desenho no objeto de origem,
expressa em unidades HIMETRIC.
srchgt
Obrigatrio. A altura da rea de desenho no objeto de origem, expressa
em unidades HIMETRIC.
wbounds
Obrigatrio. Os limites de palavra em um metarquivo. Este argumento
deve ser passado como um valor Null, a menos que se esteja
desenhando em um metarquivo, caso em que o argumento passado
como um tipo definido pelo usurio correspondente a uma estrutura
RECTL.
Comentrios
A maneira recomendada de se pintar parte de um elemento grfico em um destino atravs do mtodo PaintPicture.

Barra de ferramentas Add-In

Uma barra de ferramentas onde podem ser colocados os suplementos e assistentes para acesso fcil e rpido pelo usurio.
Para iniciar um suplemento ou assistente, clique simplesmente em seu cone na barra de ferramentas.

Funes Internas

248

Os suplementos e assistentes colocados na barra de ferramentas Add-In no sero ativados at que seu boto seja
clicado. A barra de ferramentas Add-In elimina a necessidade de se ativar o suplemento atravs da caixa de dilogo Add-In
Manager.
Pode-se adicionar assistentes e suplementos barra de ferramentas Add-In atravs do boto Add/Remove Toolbar Items
(+/-). Ao se clicar neste boto, obtm-se a caixa de dilogo abaixo:

Para adicionar um suplemento ou assistente lista de suplementos disponveis, clique no boto Browse. Aponte para um
suplemento ou arquivo .Exe ou .Dll de assistente na caixa de dilogo e, em seguida, clique em Open. Ele deve aparecer na
lista Available Add-Ins. Entretanto, ele no aparecer na barra de ferramentas Add-In, a menos que sua caixa esteja
selecionada na lista Available Add-Ins.
O boto O fecha a caixa de dilogo Add/Remove Toolbar Items e atualiza a barra de ferramentas Add-In contendo os
itens selecionados.
O boto Cancel fecha a caixa de dilogo Add/Remove Toolbar Items e ignora qualquer modificao efetuada enquanto
ela estava aberta.
Quando o boto Delete clicado, o suplemento ou assistente atualmente selecionado removido da lista Available AddIns. Observe que isto no provoca a remoo do suplemento ou assistente do sistema, nem suas referncias na caixa de
dilogo Add-In Manager. O boto Delete remove somente a entrada na lista Available Add-Ins da barra de ferramentas
Add-In.

Propriedade AddIns
Retorna uma coleo de quais suplementos podem ser usados para registrar seus componentes de automao no modelo
de objeto de extensibilidade.
Sintaxe
object.AddIns
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Mtodo AddToAddInToolbar
Insere um boto na barra de ferramentas Add-In que se refere a um suplemento ou assistente.
Sintaxe
object.AddToAddInToolbar (sfilename As String, sprogid As String, showontoolbar As Boolean, forceaddintoolbar As
Boolean)
Parte
Object
sfilename
Sprogid
saddinname
Showontoolbar
forceaddintoolbar

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Obrigatrio. Uma expresso de seqncia de caracteres
especificando o caminho at o suplemento ou assistente e o
nome de seu arquivo .Exe ou .Dll.
Obrigatrio. Uma expresso de seqncia de caracteres
especificando a ID programtica (ProgID) do suplemento ou
assistente.
Obrigatrio. Uma expresso de seqncia de caracteres
especificando o ttulo do suplemento ou assistente.
Obrigatrio. Uma expresso Booleana especificando se o
suplemento ou assistente referido aparecer na barra de
ferramentas Add-In. True = sim, False = no.
Obrigatrio. Uma expresso Booleana especificando se uma
barra de ferramentas Add-In automaticamente exibida na
prxima vez em que o Visual Basic for inicializado. True =
sim, False = no.

Exemplo de mtodo AddToAddInToolbar


Funes Internas

249

Este exemplo utiliza o mtodo AddToAddInToolbar para adicionar um boto barra de ferramentas para um suplemento
fictcio chamado MyAdd.Dll. Configurando-se ForceAddInToolbar como True assegura-se que a barra de ferramentas AddIn ser carregada na prxima vez em que o Visual Basic for inicializado.
Pode-se modificar o cdigo abaixo em um pequeno aplicativo Visual Basic para servir como Instalao de um suplemento.
Sub Main()
dim x as Object
Set x=CreateObject("AddInToolbar.Manager")
x.AddToAddInToolbar sFileName:="C:\VB5\MyAdd.DLL", _
sProgID:="MyAddIn.Connect", _
sAddInName:="MyAddIn Title" _
ShowOnToolBar:=True, _
ForceAddInToolbar:=True
End Sub

Objeto AsyncProperty
O objeto AsyncProperty passado ao evento AsyncReadComplete e contm os resultados do mtodo AsyncRead.

Propriedade AsyncType
Retorna ou define o tipo de dado retornado pela propriedade Value. Esta propriedade somente est disponvel como um
argumento do mtodo AsyncRead.
Sintaxe
object.AsyncType = dataType
Parte
object
dataType

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Um inteiro especificando o tipo de dados, como mostra em
Configuraes abaixo.

Configuraes
As configuraes de dataType so:
Constante
Valor
vbAsyncTypePicture
0
VbAsyncTypeFile
1
VbAsyncTypeByteArray

Descrio
Padro. Objeto Picture.
Os dados so fornecidos em um arquivo
criado pelo Visual Basic.
Os dados so fornecidos como uma matriz de
bytes que contm os dados recuperados.

Propriedade Bindable
Retorna ou define a propriedade Bindable associada a um objeto Member.
Sintaxe
object.Bindable
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade Browsable
Retorna ou define o atributo Browsable associado a um objeto Member.
Sintaxe
object.Browsable
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade Category
Retorna ou define o atributo Category associado a um objeto Member.
Sintaxe
object.Category
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade Connect
Retorna ou define o estado conectado de um suplemento.
Sintaxe
object.Connect
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Retorna True se o suplemento estiver registrado e atualmente conectado (ativo).
Retorna False se o suplemento estiver registrado e no se encontrar conectado (inativo).

Coleo ContainedVBControls
A coleo ContainedVBControls representa uma coleo de objetos VBControl.

Funes Internas

250

Propriedade ContinuousScroll
Retorna ou define um valor que determina se a rolagem contnua, ou se UserDocument somente regenera quando o
pressionamento de rolagem liberado.
Sintaxe
object.ContinuousScroll = boolean
Parte
Object
boolean

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Uma expresso Booleana que especifica se a rolagem
contnua ou no.

Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
Padro. A rolagem contnua.
False
UserDocument regenera somente quando o pressionamento
liberado.

Propriedade Controls
Retorna uma referncia a uma coleo de objetos Control.
Sintaxe
object.Controls
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Pode-se manipular objetos Control usando a referncia retornada pela propriedade Controls.

Objeto DataBinding
O objeto DataBinding representa uma propriedade acoplvel de um componente.
Sintaxe
DataBinding
Comentrios
Existe um objeto DataBinding para cada propriedade de um componente marcado como Bindable na caixa de dilogo
Procedure Attributes.
O Visual Basic verso 4.0 suportava apenas uma propriedade de acoplamento de um controle a um banco de dados de
cada vez. Entretanto, o Visual Basic 5.O oferece a possibilidade de acoplar mltiplas propriedades de um controle a um
banco de dados. Isto mais comumente usado com controles User. Para maiores informaes sobre isto, consulte o
captulo 9, "Criando componentes ActiveX" no Guia de Ferramentas Componentes.

Propriedade DefaultBind
Retorna ou define o atributo DefaultBind de um objeto Member.
Sintaxe
object.DefaultBind
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade DisplayBind
Retorna ou define o atributo DisplayBind de um objeto Member.
Sintaxe
object.DisplayBind
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade Events
Fornece propriedades que permitem aos suplementos conectarem-se a todos os eventos em Visual Basic for Applications.
Sintaxe
object.Events
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade Hidden
Retorna ou define o atributo Hidden de um objeto Member.
Sintaxe
object.Hidden
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedades HScrollSmallChange, VScrollSmallChange


Retorna ou define a distncia que UserDocument rolar quando o usurio clicar na seta de rolagem.
Sintaxe
object.HScrollSmallChange = single
object.VScrollSmallChange = single
Parte
object

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Funes Internas

251

single

Applies To.
A distncia em twips que o UserDocument rolar quando o
usurio clicar na seta de rolagem.

Comentrios
No existe uma propriedade "LargeChange" ao contrrio das propriedades HScrollSmallChange e VScrollSmallChange.
O "LargeChange" determinado pelas propriedades ViewPortHeight e ViewPortWidth do objeto ViewPort.

Objeto Hyperlin
Usando as propriedades e mtodos do objeto Hyperlin, seu documento ActiveX ou controle ActiveX pode-se pedir um
recipiente que reconhea hyperlins como, por exemplo o Microsoft Internet Explorer, para saltar at um determinado URL.
Comentrios
Use o mtodo NavigateTo para saltar at um URL. Por exemplo, o cdigo abaixo pressupe que exista um documento
ActiveX chamado "axdMyDoc":
UserDocument.Hyperlin.NavigateTo _
"c:\mydocs\axdmydoc.vbd"
Caso seu documento ActiveX esteja contido em um recipiente que reconhea hyperlins (como, por exemplo, o Internet
Explorer) e o recipiente mantenha um histrico dos documentos, utilize os mtodos GoBac ou GoForward para avanar ou
recuar na lista. Entretanto, certifique-se de usar verificao de erros, conforme mostra o exemplo abaixo:
Private Sub cmdGoForward_Clic()
On Error GoTo noDocInHistory
UserDocument.Hyperlin.GoForward
Exit Sub
noDocInHistory:
Resume Next
End Sub

Propriedade Hyperlin
Retorna uma referncia ao objeto Hyperlin.
Sintaxe
object.Hyperlin
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade IsDirty
Retorna um valor indicando se este componente foi editado desde a ltima vez em que foi salvo.
Sintaxe
object.IsDirty
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Evento ItemReloaded
Ocorre aps um componente ter sido recarregado.
Sintaxe
Private Sub object_ItemReloaded(vbcomponent As VBComponent)
A sintaxe do evento ItemReloaded tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
vbcomponent
Um objeto VBComponent representando o componente que foi
recarregado.

Propriedade Lines
Retorna uma seqncia de caracteres contendo o bloco de linhas especificado.
Sintaxe
object.Lines(startline As Long, count As Long)
Parte
object
startline
count

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Um tipo de dados Long especificando o nmero da linha
onde se deve comear.
Um tipo de dados Long especificando o nmero de linhas a
serem selecionadas.

Mtodo LogEvent
Registra um evento no alvo de log do aplicativo. Em plataformas Windows NT, o mtodo grava no Log de eventos do NT.
Em plataformas Windows 95, o mtodo grava no arquivo especificado na propriedade LogPath; como padro, se nenhum
arquivo for especificado, os eventos sero gravados em um arquivo chamado vbevents.
Sintaxe
object.LogEvent (logBuffer, eventType)
Parte

Descrio
Funes Internas

252

object

Uma expresso de objeto que avalia para um objeto na lista


Applies To.
Obrigatrio. Seqncias de caracteres a serem gravadas no
Registro.
Opcional. Um inteiro Long que especifica o tipo de eventos,
como mostrado em Configuraes.

logBuffer
eventType

Configuraes
As configuraes para eventType so:
Constante
vbLogEventTypeError
vbLogEventTypeWarning
vbLogEventTypeInformation

Valor
1
2
4

Descrio
Erro.
Aviso.
Informao.

Comentrios
As diretrizes para o processo de log esto disponveis no Win32 SD, e estas diretrizes devem ser seguidas ao se registrar
no Log de eventos do NT ou ao arquivo especificado na propriedade LogPath (em plataformas Windows 95).

Propriedade LogMode
Retorna um valor que determina como o log (atravs do mtodo LogEvent) ser executado. Somente leitura durante o
tempo de execuo.
Sintaxe
object.LogMode = mode
Parte
object

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Longo. Determina o mtodo de conexo, como mostra em
Configuraes abaixo.

mode

Configuraes
As configuraes de mode so:
Constante
Valor
vbLogAuto
0

VbLogOff

VbLogToFile

VbLogToNT

VbLogOverwrite

0x10

VbLogThreadID

0x20

Descrio
Se estiver sendo executada no Windows 95, esta
opo registra mensagens no arquivo especificado na
propriedade LogFile. Se estiver sendo executado no
Windows NT, as mensagens so registradas no Log
de eventos do NT com a seqncia de caracteres
App.Title usada como fonte do aplicativo.
Desativa todo o processo de log. As mensagens de
partes da IU, assim como do mtodo LogEvent so
ignoradas e descartadas.
Fora o log a um arquivo. Se no existir nenhum
nome de arquivo vlido em LogPath, o log ignorado
e a propriedade definida como vbLogOff.
Fora o log no Log de eventos do NT. Se no estiver
sendo executado no Windows NT, o Log de eventos
no estar disponvel, o log ignorado e a
propriedade definida como vbLogOff.
Indica que o arquivo de log deve ser recriado toda vez
que o aplicativo for inicializado. Este valor pode ser
combinado com outras opes de modo usando o
operador OR. A ao padro para o log anexar ao
arquivo existente. No caso de Log de eventos do NT,
este sinalizador no tem sentido.
Indica que a identificao de segmento atual seja pranexada mensagem na forma "[T:0nnn] ". Este valor
pode ser combinado a outras opes de modo
usando o operador OR. A ao padro mostrar a
identificao de segmento somente quando o
aplicativo multisegmentado (explicitamente marcado
como de segmento seguro, ou implementado como
um aplicativo de segmentos mltiplos implcito como,
por exemplo, um servidor local com a propriedade de
exemplificao definida como mono uso, de
segmentos mltiplos).

Tipo de retorno
Long

Funes Internas

253

Propriedade LogPath
Retorna o caminho e nome de arquivo do arquivo usado para capturar o resultado do mtodo LogEvent. No disponvel
durante o tempo de criao; somente leitura durante o tempo de execuo.
Sintaxe
object.LogPath = path
Parte
object
path

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Seqncia de caracteres. O caminho e nome de arquivo de
um arquivo de log.

Comentrios
A propriedade LogMode determina como ser executado o log. Se nenhum LogPath for definido, o mtodo LogEvent
grava no arquivo NT LogEvent do NT.

Propriedade Members
Contm identificadores que tm alcance a nvel de mdulo e que podem ser considerados propriedades, mtodos ou
eventos do objeto CodeModule especificado.
Sintaxe
object.Members
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedades MinHeight, MinWidth


Retorna ou define a altura ou largura mnima de Viewport onde apaream barras de rolagem no recipiente.
Sintaxe
object.MinHeight = single
object.MinWidth = single
Parte
object
single

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
A altura ou largura de um UserDocument onde aparecero
barras de rolagem em um recipiente.

Comentrios
Os valores padro das propriedades MinHeight e MinWidth so definidos pelas propriedades Height e Width de
UserDocument.
MinWidth e MinHeight no tm qualquer efeito se a propriedade ScrollBars for definida como False.

Propriedade Moveable
Retorna ou define um valor que especifica se o objeto pode ser movido.
Sintaxe
object.Moveable = boolean
Parte
object
boolean

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Uma expresso Booleana que especifica se o objeto pode
ser movido.

Configuraes
As configuraes de boolean so:
Constante
Valor
Descrio
True
-1
O objeto pode ser movido.
False
0
O objeto no pode ser movido.

Propriedade NonModalAllowed
Retorna um valor que indica se um formulrio pode ser mostrado de maneira no-modal (sem janela restrita). No
disponvel durante o tempo de criao.
Sintaxe
object.nonModalAllowed
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Tipo de retorno
Boolean

Propriedade Palette
Retorna ou define uma imagem que contm a paleta a ser usada para o controle.
Sintaxe
object.Palette = path
Parte

Descrio

Funes Internas

254

object
path

Uma expresso de objeto que avalia para um objeto na lista


Applies To.
O caminho da imagem de bitmap contendo a paleta a ser
usada.

Comentrios
Pode-se usar um arquivo .dib, .gif, ou .pal para definir a paleta, assim como arquivos .bmp.

Propriedade PaletteMode
Retorna ou define um valor que determina qual paleta a ser usada para os controles em um objeto.
Sintaxe
object.PaletteMode = integer
Parte
object
integer

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Determina o modo de paleta a ser usado, conforme descrito
em Configuraes, abaixo.

Configuraes
As configuraes para integer so:
Constante
Valor
vbPaletteModeHalfTone
0
VbPaletteModeUseZOrder
1
VbPaletteModeCustom

VbPaletteModeContainer

VbPaletteModeNone

VbPaletteModeObject

Descrio
(Padro) Usa a paleta Halftone.
Usa a paleta do controle em primeiro plano
que tenha uma paleta.
Usa a paleta especificada na propriedade
Palette.
Usa a paleta do recipiente que suporta a
propriedade Palette do ambiente. Aplica-se
somente a UserControls.
No usa paleta alguma. Aplica-se somente a
UserControls.
Usa a paleta do criador ActiveX (aplica-se
somente a criadores ActiveX que contenham
uma paleta.)

Comentrios
Caso nenhuma paleta esteja disponvel, a paleta de meio-tom torna-se a paleta padro.
Observao: Em verses anteriores do Visual Basic, PaletteMode correspondia a UseZOrder.

Propriedade PropertyName
O comportamento da propriedade PropertyName depende do contexto onde ela est sendo usada.
Mtodo AsyncRead Define o nome da propriedade que ser associada propriedade Value do objeto AsyncProperty.
Evento AsyncReadComplete Especifica o nome da propriedade que est sendo lida atualmente. Este deve corresponder

a um nome designado ao objeto AsyncProperty ao chamar o mtodo AsyncRead.


DataBinding Object Somente leitura. Retorna o nome da propriedade a que se refere o objeto DataBinding.

Sintaxe
object.PropertyName = string
Parte
object
string

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
O nome de uma propriedade a ser salva ou recuperada.

Exemplo de propriedade PropertyName


O exemplo atribui um valor propriedade PropertyName no mtodo AsyncRead. O mesmo valor ser usado para
designar o resultado do mtodo ao controle PictureBox. Para experimentar o exemplo, coloque o controle PictureBox em
um objeto UserDocument. Cole o cdigo na seo General, e pressione F5 para executar. Inicie o Internet Explorer 3.0 (ou
mais recente) e digite o caminho e nome at o arquivo UserDocument.vbd na caixa Address.
Private Sub UserDocument_InitProperties()
Dim strPath As String
' Definir a varivel como um caminho vlido para um
' bitmap em seu computador.
strPath = "C:\Program Files\DevStudio\VB\" & _
"Samples\PGuide\VCR\Bfly1.bmp"
AsyncRead strPath, vbAsyncTypeFile, _
PropertyName:= "butterfly"
End Sub
Private Sub UserDocument_AsyncReadComplete (AsyncProp _
As AsyncProperty)
' Usar a instruo Select para determinar qual
' propriedade est sendo retornada.
Funes Internas

255

Select Case AsyncProp.PropertyName


Case "butterfly"
Picture1.Picture = _
LoadPicture(AsyncProp.Value)
End Select
End Sub

Objeto PropertyPage
O objeto bsico usado para criar uma pgina de propriedade ActiveX.
Comentrios
As pginas de propriedade oferecem um alternativa janela Properties para visualizao de propriedades. Pode-se
agrupar diversas propriedades relacionadas em uma pgina, ou usar uma pgina para oferecer uma interface do tipo caixa
de dilogo para uma propriedade complexa demais para a janela Properties. Um objeto PropertyPage representa uma
pgina, que quer dizer uma guia na caixa de dilogo Property Pages.

Propriedade PropertyPage
Retorna ou define o atributo PropertyPage de um objeto Member.
Sintaxe
object.PropertyPage
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Mtodo Quit (suplementos)


Tenta sair do Visual Basic.
Sintaxe
object.Quit
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Mtodo RemoveAddInFromToolbar
Remove um boto da barra de ferramentas Add-In que se refere a um suplemento ou assistente.
Sintaxe
object.RemoveAddInFromToolbar (saddinname As String)
Parte
object
saddinname

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Obrigatrio. Uma expresso de seqncia de caracteres
especificando o nome do suplemento ou assistente a ser
removido da barra de ferramentas Add-In (conforme
especificado pelo parmetro saddinname do mtodo
AddToAddInToolbar).

Exemplo de mtodo RemoveAddInFromToolbar


Este exemplo remove um boto existente da barra de ferramentas Add-In que se refere a um suplemento fictcio chamado
MyAddIn Title:
Sub Main()
dim x as Object
Set x=CreateObject("AddInToolbar.Manager")
x.RemoveAddInFromToolbar sAddInName:="MyAddIn Title"
End Sub

Propriedade RequestEdit
Retorna ou define o atributo RequestEdit de um objeto Member.
Sintaxe
object.RequestEdit
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Mtodo SelectAll
Seleciona todos os controles contidos em um formulrio.
Sintaxe
object.SelectAll
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Mtodo SetViewport
Define as coordenadas esquerda e superior do UserDocument que estar visvel no Viewport.
Sintaxe
object.SetViewPort left, top
Parte
object

Descrio
Uma expresso de objeto que avalia para um objeto na lista

Funes Internas

256

left
top

Applies To.
Obrigatrio. Um valor do tipo Single que especifica a
coordenada esquerda do UserDocument.
Obrigatrio. Um valor do tipo Single que especifica a
coordenada superior do UserDocument.

Exemplo do mtodo SetViewport


O exemplo utiliza o mtodo SetViewport para colocar automaticamente o controle TextBox com o foco no canto superior
esquerdo do Viewport do recipiente. Para experimentar o exemplo, coloque uma matriz de trs ou mais controles TextBox
em um objeto UserDocument. Cole o cdigo abaixo da seo General. Pressione F5 para executar o projeto e, em
seguida, execute o Internet Explorer (3.0 ou mais recente). No Internet Explorer, digite o caminho e nome de arquivo do
documento ActiveX (UserDocument1.vbd) na caixa Address (o arquivo estar no mesmo diretrio que o executvel Visual
Basic). Quando o documento ActiveX for exibido, digite qualquer texto distintivo no primeiro controle TextBox. Pressione
TAB para mover at o prximo controle, para ver o efeito do mtodo SetViewPort.
Private Sub Text1_GotFocus(Index As Integer)
UserDocument.SetViewport Text1(Index).Left, _
Text1(Index).Top
End Sub
Private Sub UserDocument_Initialize()
' O recipiente deve ser grande o suficiente para
' que apaream barras de rolagem. Para assegurar
' isto, defina as propriedades MinHeight e
' MinWidth como maiores que o recipiente.
UserDocument.MinHeight = 10000
UserDocument.MinWidth = 10000
End Sub

Mtodo Size
Altera a largura e altura de um objeto UserControl.
Sintaxe
object.Size width, height
Parte
object
width
height

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Obrigatrio. A largura do objeto em twips.
Obrigatrio. A altura do objeto em twips.

Comentrios
As propriedades Width e Height de um objeto UserControl so sempre fornecidas em Twips, independente de
ScaleMode.

Propriedade StandardMethod
Retorna ou define o atributo StandardMethod de um objeto Member.
Sintaxe
object.StandardMethod
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Mtodo StartLogging
Define o alvo e modo de log de uma operao.
Sintaxe
object.StartLogging logTarget, logMode
Parte
object
logTarget
logMode

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Caminho e nome de arquivo do arquivo usado para capturar
o resultado do mtodo LogEvent.
Um valor que determina como o processo de log (atravs do
mtodo LogEvent) ser executado. Ver Configuraes
abaixo.

Configuraes
As configuraes para logMode so:
Constante
Valor
Descrio
vbLogAuto
0
Caso esteja sendo executado no Windows 95, esta
opo registra as mensagens nos arquivos
especificados na propriedade LogFile. Caso esteja
sendo executado no Windows NT, as mensagens so

Funes Internas

257

VbLogOff

VbLogToFile

VbLogToNT

VbLogOverwrite

0x10

VbLogThreadID

0x20

registradas no log de eventos do aplicativo NT, com a


seqncia de caracteres App.Title usada como a
origem do aplicativo.
Desativa todo o processo de log. As mensagens de
partes da IU, assim como do mtodo LogEvent so
ignoradas e descartadas.
Fora o log em um arquivo. Se nenhum nome de
arquivo vlido existir em LogPath, o processo de log
ignorado, e a propriedade definida como
vbLogOff.
Fora o processo de log no Log de eventos do NT. Se
no estiver sendo executado no Windows NT, ou se o
Log de eventos no estiver disponvel, o processo de
log ignorado e a propriedade definida como
vbLogOff.
Indica que o arquivo de log deve ser recriado toda vez
que o aplicativo for inicializado. Este valor pode ser
combinado com outras opes de modo usando o
operador OR. A ao padro para a rotina de registro
anexar ao arquivo j existente. No caso de Log de
eventos do NT, este sinalizador no tem significado
algum.
Indica que a identificao de segmento atual deve ser
pr-anexada mensagem, no formato "[T:0nnn] ".
Este valor pode ser combinado com outras opes de
modo usando o operador OR. A ao padro
mostrar a identificao de segmento somente quando
o aplicativo multisegmentado (explicitamente
marcado como segmentado de forma segura, ou
implementado como um aplicativo de segmentos
mltiplos implcito como, por exemplo, um servidor
local com uma propriedade de exemplificao definida
como mono uso, de segmentos mltiplos).

Propriedade ThreadID
Retorna a Win32 ID do segmento em execuo. (Usado para chamadas da API Win32.)
Sintaxe
object.ThreadID
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Tipo de retorno
Long

Propriedade UIDefault
Retorna ou define o atributo UIDefault do objeto Member.
Sintaxe
object.UIDefault
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade UnattendedApp
Retorna um valor que determina se um aplicativo ser executado sem qualquer interface de usurio.
Sintaxe
object.UnattendedApp= boolean
A sintaxe UnattendedApp tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica se o aplicativo ser
executado sem qualquer interface de usurio.
Configuraes
As configuraes para boolean so:
Constante
Valor
Descrio
True
-1
O aplicativo no tem interface de usurio.
False
0
O aplicativo tem uma interface de usurio.

Objeto UserControl
O objeto UserControl o objeto bsico usado para criar um controle ActiveX.
Comentrios
Um controle ActiveX criado com o Visual Basic sempre constitudo de um objeto UserControl mais quaisquer controles
referidos como controles constitutivos escolhidos para serem colocados no UserControl.

Funes Internas

258

Como os formulrios do Visual Basic, objetos UserControl tm mdulos de cdigo e criadores visuais. Coloque os
controles constituintes no criador de objeto UserControl, exatamente como colocaria controles em um formulrio.

Objeto UserDocument
Base de um documento ActiveX, o objeto UserDocument se parece com um objeto Form Visual Basic padro com
algumas excees.
Comentrios
O objeto UserDocument tem a maioria, mas nem todos, dos eventos que so encontrados em um objeto Form. Os
eventos presentes em um Form que no so encontrados no UserDocument incluem: Activate, Deactivate, LinClose,
LinError, LinExecute, LinOpen, Load, QueryUnload e Unload.
Os eventos presentes no UserDocument, mas no encontrados em um objeto Form incluem: AsycReadComplete,
EnterFocus, ExitFocus, Hide, InitProperties, ReadProperties, Scroll, Show e WriteProperties.
No se pode colocar objetos incorporados (por exemplo, um documento Excel ou Word) ou um controle OLE Container em
um UserDocument.

Propriedade VBProjects
Retorna a coleo VBProjects que representa todos os projetos atualmente abertos no IDE do Visual Basic.
Sintaxe
object.VBProjects
O espao reservado object representa um expresso de objeto que avalia para um objeto na lista Applies To.

Propriedades ViewportHeight, ViewportLeft, ViewportTop, ViewportWidth


Retorna o valor da altura, esquerda, superior ou largura do Viewport.
Sintaxe
object.ViewportHeight
object.ViewportLeft
object.ViewportTop
object.ViewportWidth
A espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Tipo de retorno
Single
Comentrios
O aplicativo usado para visualizar o documento ActiveX controla o tamanho do Viewport. Entretanto, pode-se usar as
propriedades MinHeight e MinWidth para redimensionar o UserDocument. Por exemplo, o cdigo abaixo redimensiona
um controle PictureBox, de acordo com o tamanho das propriedades de largura e altura da esquerda do Viewport.
Private Sub UserDocument_Resize()
Picture1.Width = UserDocument.ViewportWidth - _
Picture1.Left
Picture1.Height = UserDocument.ViewportHeight - _
Picture1.Top
End Sub

Propriedade Windows
Retorna o objeto Window, que representa uma janela no IDE do Visual Basic.
Sintaxe
object.Window
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade StartUpPosition
Retorna ou define um valor especificando a posio de um objeto quando aparece pela primeira vez.
Sintaxe
object.StartUpPosition = position
A sintaxe da propriedade StartUpPosition tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
StartUpPosition
Um inteiro que especifica a posio do objeto, como mostrado
em Configuraes.
Configuraes
Pode-se usar uma das quatro configuraes para StartUpPosition:
Constante
Valor
Descrio
vbStartUpManual
0
Nenhuma
configurao
inicial
especificada.
vbStartUpOwner
1
Centraliza no item a que pertence o
UserForm.
vbStartUpScreen
2
Centraliza na tela inteira.
vbStartUpWindowsDefault
3
Posiciona no canto superior esquerdo da
tela.

Funes Internas

259

Comentrios
Pode-se definir a propriedade StartUpPosition por meio de programa ou a partir da janela de propriedade.

Propriedade Charset
Define ou retorna o conjunto de caracteres usado na fonte.
Sintaxe
object.Charset [ = value ]
A sintaxe da propriedade Charset tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um valor inteiro que especifica o conjunto de caracteres
usados pela fonte, conforme descrito em Configuraes.
Configuraes
Estas so algumas das configuraes comuns para value:
Value
Descrio
0
Caracteres-padro do Windows
2
O conjunto de caracteres de smbolos.
128
O conjunto de caracteres de byte duplo (DBCS) exclusivo da
verso japonesa do Windows
255
Caracteres ampliados normalmente exibidos por aplicativos
DOS.
Comentrios
A definio da propriedade Charset como um destes valores disponveis seleciona o conjunto de caracteres somente se
ele estiver disponvel na fonte atual.

Propriedade DataBindings
Retorna a coleo de objetos DataBindings contendo as propriedades acoplveis disponveis ao desenvolvedor.
Sintaxe
object.DataBindings
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.

Funes Internas

260

Objeto Control
O nome de classe de todos os controles internos do Visual Basic.
Sintaxe
Control
Comentrios
Pode-se dimensionar uma varivel como um objeto Control, e referir-se a ele como seria feito a um controle em um
formulrio. Isto demonstrado por:
Dim C as Control
Set C = Command1

Propriedade IsBindable
Retorna um valor Booleano indicando se a propriedade acoplvel. Esta propriedade somente leitura.
Sintaxe
object.IsBindable
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Usa-se esta propriedade para determinar se a propriedade acoplvel.
Observao: Esta propriedade normalmente utilizada em um assistente, para verificar se uma propriedade acoplvel.

Propriedade IsDataSource
Retorna um valor Booleano indicando se a propriedade uma origem de dados. Esta propriedade somente leitura.
Sintaxe
object.IsDataSource
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Usa-se esta propriedade para determinar se ela uma origem de dados e pode ser anexada a um controle de dados.
Observao: Esta propriedade normalmente utilizada em um assistente para verificar se uma propriedade uma
origem de dados.

Mtodo Resync (Remote Data)


Intercepta os valores de conflito de lote para a linha atual.
Sintaxe
object.Resync
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O mtodo Resync somente vlido ao se utilizar Client-Batch Cursors.
Resync resincroniza as colunas na linha atual na biblioteca de cursores com os dados atuais no servidor (visveis para sua
transao). Caso a linha no tenha sido modificada, este mtodo altera as propriedades Value e OriginalValue para
corresponder ao que est atualmente no servidor.
Caso a linha tenha sido modificada, este mtodo somente ajusta a propriedade OriginalValue, de modo que no sejam
perdidas as edies. Este segundo caso til quando se deseja evitar um conflito de concorrncia otimista.
O ltimo caso em que isto utilizado quando se est lidando com uma linha que se tenta atualizado usando
BatchUpdate, mas ocorreu um conflito devido a uma falha de verificao de concorrncia. Neste caso, este mtodo
ajustar BatchConflictValue para refletir a verso mais recente da coluna no servidor.

Mtodo Files
Retorna uma coleo de nomes de arquivo usados pelo formato vbCFFiles (uma coleo DataObjectFiles) que por sua vez
contm uma lista de todos os nomes de arquivo usados por um objeto DataObject; por exemplo, os nomes de arquivo que
o usurio arrasta de e para o Windows File Explorer.
Sintaxe
object.Files(index)
A sintaxe da coleo Files tem estas partes:
Parte
Descrio
object
index

Uma expresso de objeto que avalia para um objeto


DataObject.
Um inteiro que um ndice de uma matriz de nomes de
arquivos.

Comentrios
A coleo Files preenchida por nomes de arquivos somente quando o objeto DataObject contm dados do tipo
vbCFFiles. O objeto DataObject pode conter diversos tipos de dados. Pode-se iterar pela coleo para recuperar a lista de
nomes de arquivo.
A coleo Files pode ser preenchida para permitir que aplicativos do Visual Basic funcionem como uma origem de arraste
de uma lista de arquivos.

Propriedade ObjectAcceptFormats
Retorna a lista de formatos que podem ser aceitos por um objeto.
Sintaxe
object.ObjectAcceptFormats(number)
Funes Internas

261

A sintaxe da propriedade ObjectAcceptFormats tem estas partes:


Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica que avalia para um inteiro
indicando o elemento na matriz.
Comentrios
A lista uma matriz de seqncia de caracteres baseada em zero. Os elementos da matriz podem ser usados para definir a
propriedade Format ao se obter dados de um objeto usando as propriedades Data e DataText.

Propriedade StandardSize
Define a pgina de propriedade como um tamanho padro.
Sintaxe
object.StandardSize [= value]
A sintaxe da propriedade StandardSize tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso de inteiro especificando o tipo de ponteiro de
mouse exibido, conforme descrito em Configuraes.
Configuraes
As configuraes para value so:
Constante
Valor
Custom
0
Small
1
Large

Descrio
(Padro) Tamanho determinado pelo objeto.
Define PropertyPage StandardSize como 101
pixels de altura por 375 pixels de largura.
Define PropertyPage StandardSize como 179
pixels de altura por 375 pixels de largura.

Objeto Global
Um objeto Global um objeto de aplicativo que permite acessar propriedades e mtodos a nvel de aplicativo.
Sintaxe
Global
Comentrios
Global um tipo de dados Object. Visto que o objeto Global um objeto de aplicativo automaticamente referido, no
necessrio codificar uma referncia especfica para este objeto.

Propriedade App
Retorna o objeto App, um objeto global acessado com a palavra-chave App. Ela determina ou especifica informaes
sobre o ttulo do aplicativo, informaes de verso, o caminho e nome de seu arquivo executvel e arquivos da Ajuda, e se
uma ocorrncia anterior do aplicativo est sendo executada.
Sintaxe
App
Comentrios
O objeto App no tem eventos ou mtodos.

Propriedade Clipboard
Retorna um objeto Clipboard, que oferece acesso rea de transferncia do sistema.
Sintaxe
Clipboard
Comentrios
O objeto Clipboard usado para manipular texto e elementos grficos na rea de transferncia. Pode-se usar este objeto
para permitir a um usurio copiar, recortar e colar texto ou elementos grficos no seu aplicativo. Antes de copiar qualquer
material para o objeto Clipboard, deve-se limpar seu contedo executando um mtodo Clear como Clipboard.Clear.
Observe que o objeto Clipboard compartilhado por todos os aplicativos do Windows e, assim, o contedo est sujeito a
alteraes toda vez que se alterna para outro aplicativo.
O objeto Clipboard pode conter diversas partes de dados, desde que cada parte esteja em um formato diferente. Por
exemplo, pode-se usar o mtodo SetData para colocar um bitmap na rea de transferncia com o formato vbCFDIB e,
em seguida, usar o mtodo SetText com o formato vbCFText para colocar texto na rea de transferncia. Pode-se,
ento, usar o mtodo GetText para recuperar o texto ou o mtodo GetData para recuperar o elemento grfico. Os dados da
rea de transferncia sero perdidos quando outro conjunto de dados do mesmo formato for colocado na rea de
transferncia atravs de cdigo ou de um comando de menu.

Propriedade Forms
Retorna uma coleo Forms, que uma coleo cujos elementos representam cada formulrio carregado em um
aplicativo. A coleo inclui o formulrio MDI do aplicativo, formulrios MDI filha e formulrios no-MDI. A coleo Forms tem
uma nica propriedade, Count, que especifica o nmero de elementos na coleo.
Sintaxe

Funes Internas

262

Forms(index)
O espao reservado index representa um inteiro entre 0 e Forms.Count - 1.
Comentrios
Pode-se usar a coleo Forms para iterar por todos os formulrios carregados em um aplicativo. Ela identifica uma varivel
global intrnseca chamada Forms. Pode-se passar Forms(index) a uma funo cujo argumento seja especificado como
uma classe Forms.

Propriedade Printer
Retorna um objeto Printer, que permite comunicar-se com uma impressora do sistema (inicialmente a impressora padro
do sistema).
Sintaxe
Printer
Comentrios
Usam-se mtodos grficos para se desenhar texto e elementos grficos no objeto Printer. Uma vez que o objeto Printer
contm o resultado que se deseja imprimir, pode-se usar o mtodo EndDoc para enviar o resultado diretamente
impressora padro do aplicativo.
Deve-se verificar e possivelmente revisar o layout dos seus formulrios se eles forem impressos. Se utilizar o mtodo
PrintForm para imprimir um formulrio, por exemplo, imagens grficas podem ser recortadas na parte inferior da pgina e o
texto transferido para a pgina seguinte.

Propriedade Printers
Retorna uma coleo Printers que permite reunir informaes sobre todas as impressoras disponveis no sistema.
Sintaxe
Printers(index)
O espao reservado index representa um inteiro no intervalo de 0 a Printers.Count-1.
Comentrios
A coleo Printers permite consultar as impressoras disponveis, de modo que se possa especificar uma impressora
padro para o seu aplicativo. Por exemplo, caso se deseje descobrir quais das impressoras disponveis utiliza um driver de
impressora especfico. O cdigo abaixo pesquisa todas as impressoras disponveis para localizar a primeira impressora
com sua orientao de pgina definida como retrato e, em seguida, define a mesma como a impressora padro:
Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
' Definir a impressora como padro do sistema.
Set Printer = X
' Interomper a procura pela impressora.
Exit For
End If
Next
Designa-se uma das impressoras da coleo Printers como a impressora padro utilizando-se a instruo Set. O exemplo
anterior designa a impressora identificada pela varivel de objeto X, como impressora padro para o aplicativo.
Observao: Caso seja utilizada a coleo Printers para especificar uma determinada impressora, como em Printers(3),
pode-se somente acessar propriedades somente leitura. Para ler e gravar as propriedades de uma impressora individual,
deve-se primeiro tornar esta impressora a impressora padro do aplicativo.

Propriedade Screen
Retorna um objeto Screen, que permite manipular formulrios de acordo com seu posicionamento na tela e controlar o
ponteiro do mouse fora dos formulrios do seu aplicativo durante o tempo de execuo. O objeto Screen acessado com a
palavra-chave Screen.
Sintaxe
Screen
Comentrios
O objeto Screen a rea de trabalho inteira do Windows. Usando-se o objeto Screen, pode-se definir a propriedade
MousePointer do objeto Screen como o ponteiro de ampulheta enquanto um formulrio de janela restrita exibido.

Eventos Activate, Deactivate


Ativar ocorre quando um objeto torna-se a janela ativa.
Desativar ocorre quando um objeto no mais a janela ativa.

Sintaxe
Private Sub object_Activate( )
Private Sub object_Deactivate( )
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Um objeto pode tornar-se ativo pela ao do usurio como, por exemplo, clicar nele, ou usando-se os mtodos Show ou
SetFocus no cdigo.

Funes Internas

263

O evento Activate somente pode ocorrer quando um objeto est visvel. Por exemplo, um formulrio carregado com a
instruo Load no est visvel, a menos que seja usado o mtodo Show, ou que a propriedade Visible do formulrio seja
configurada como True.
Os eventos Activate e Deactivate somente ocorrem ao se mover o foco dentro do aplicativo. Mover o foco de e para um
objeto em outro aplicativo no dispara nenhum dos dois eventos. O evento Deactivate no ocorre ao se carregar um objeto.
O evento Activate ocorre antes do evento GotFocus; o evento LostFocus ocorre antes do evento Deactivate.
Estes eventos ocorrem para formulrios MDI filhovbvb somente quando o foco muda de um filho a outro. Em um objeto
MDIForm com dois formulrios filho, por exemplo, os formulrios filho recebem estes eventos quando o foco se move entre
eles. Entretanto, quando o foco se alterna de um formulrio filho para um formulrio filho no-MDI, o MDIForm pai recebe
os eventos Activate e Deactivate.
Se um arquivo .exe criado pelo Visual Basic exibe uma caixa de dilogo criada por um arquivo .dll tambm criado em Visual
Basic, o formulrio do arquivo .exe obter os eventos Deactivate e LostFocus. Isto pode ser inesperado, pois deve-se obter
o evento Deactivate:
Caso o objeto seja um componente fora de processo.
Caso o objeto no tenha sido escrito em Visual Basic.
No ambiente de desenvolvimento ao chamar-se uma DLL criada em Visual Basic.

Evento Change
Indica que o contedo de um controle foi alterado. Como e quando este evento ocorre com o controle:
ComboBox altera o texto na parte da caixa de texto do controle. Ocorre somente se a propriedade Style estiver

configurada como 0 (Dropdown Combo) ou 1 (Simple Combo) e o usurio altera o texto ou a configurao da propriedade
Text alterada atravs de cdigo.
DirListBox altera o diretrio selecionado. Ocorre quando o usurio clica duas vezes em um novo diretrio, ou quando se
modifica a configurao da propriedade Path atravs de cdigo.
DriveListBox altera a unidade de disco selecionada. Ocorre quando o usurio seleciona uma nova unidade de disco, ou
quando a configurao da propriedade Drive modificada atravs de cdigo.
HScrollBar e VScrollBar (barras de rolagem horizontal e vertical) movem a parte da caixa de rolagem da barra de
rolagem. Ocorre quando o usurio rola ou quando a configurao da propriedade Value modificada atravs de cdigo.
Label altera o contedo de Label. Ocorre quando um vnculo DDE atualiza dados, ou quando a configurao da
propriedade Caption alterada atravs de cdigo.
PictureBox altera o contedo de PictureBox. Ocorre quando um vnculo DDE atualiza dados, ou quando a configurao
da propriedade Picture modificada por meio de cdigo.
TextBox altera o contedo da caixa de texto. Ocorre quando um vnculo DDE atualiza dados, quando um usurio altera
o texto, ou quando a propriedades Text modificada atravs de cdigo.
Sintaxe
Private Sub object_Change([index As Integer])
A sintaxe do evento Change tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
index
Um inteiro que identifica exclusivamente um controle, caso ele esteja
em uma matriz de controle
Comentrios
O procedimento de evento Change pode sincronizar ou coordenar a exibio de dados entre controles. Por exemplo, podese usar um procedimento de evento Change de barra de rolagem para atualizar a configurao da propriedade Value da
barra de rolagem em um controle TextBox. Ou, pode-se usar um procedimento de evento Change para exibir dados e
frmulas em uma rea de trabalho e os resultados em outra rea.
Procedimentos de evento Change tambm so teis para atualizar propriedades em controles de sistema de arquivo
(DirListBox, DriveListBox e FileListBox). Por exemplo, pode-se atualizar a configurao da propriedade Path para que
um controle DirListBox reflita uma alterao na configurao da propriedade Drive de um controle DriveListBox.
Observao: Um procedimento de evento Change pode, algumas vezes, provocar um evento em cascata. Isto ocorre
quando o evento Change do controle altera o contedo do controle, por exemplo, configurando uma propriedade no cdigo
que determina o valor do controle, por exemplo como a configurao da propriedade Text de um controle TextBox. Para
evitar-se um evento em cascata:
Se possvel, evite escrever um procedimento de evento Change para um controle que altere contedo de controle. Caso tal
procedimento seja escrito, certifique-se de definir um sinalizador que impea mais alteraes enquanto as alteraes atuais
estiverem sendo feitas.
Evite criar dois ou mais controles cujos procedimentos de evento Change afetem um ao outro, por exemplo, dois controles
TextBox que atualizam um ao outro durante seus eventos Change.
Evite usar uma funo ou instruo MsgBox neste evento para controles HScrollBar e VScrollBar.

Evento Clic
Ocorre quando o usurio pressiona e, em seguida, solta o boto do mouse sobre um objeto. Pode tambm ocorrer quando
o valor de um controle alterado.
Para um objeto Form, este evento ocorre quando o usurio clica em uma rea vazia ou controle desativado. Para um
controle, este evento ocorre quando o usurio:
Clica em um controle com o boto direito ou esquerdo do mouse. Com um controle ChecBox, CommandButton, Listbox
ou OptionButton, o evento Clic ocorre somente quando o usurio clica o boto esquerdo do mouse.
Seleciona um item em um controle ComboBox ou ListBox, pressionando as teclas de direo, ou clicando o boto do
mouse.
Funes Internas

264

Pressiona a BARRA DE ESPAOS quando um controle CommandButton, OptionButton ou ChecBox tem o foco.
Pressiona ENTER quando um formulrio tem um controle CommandButton com sua propriedade Default configurada como

True.
Pressiona ESC quando um formulrio tem um boto Cancel um controle CommandButton com sua propriedade Cancel

configurada como True.


Pressiona um tecla de acesso de um controle. Por exemplo, se a legenda de um controle CommandButton "&Go",

pressionando-se ALT+G dispara-se o evento.


Pode-se ainda disparar o evento Clic no cdigo:
Configurando a propriedade Value de um controle CommandButton como True.
Configurando a propriedade Value de um controle OptionButton como True.
Alterando a configurao da propriedade Value de um controle ChecBox.
Sintaxe
Private Sub Form_Clic( )
Private Sub object_Clic([index As Integer])
A sintaxe do evento Clic tem estas partes:
Part
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
index
Um inteiro que identifica exclusivamente um controle, caso ele esteja
em uma matriz de controle.
Comentrios
Tipicamente, anexa-se um procedimento de evento Clic a um controle CommandButton, objeto Menu ou controle
PictureBox para executar comandos e aes do tipo comando. Para os outros controles aplicveis, usa-se este evento
para disparar aes em resposta a uma alterao no controle.
Pode-se usar a propriedade Value de um controle para testar o estado do controle a partir do cdigo. Clicando-se em um
controle, geram-se eventos MouseDown e MouseUp alm do evento Clic. A ordem em que estes trs eventos ocorrem varia
de controle para controle. Por exemplo, para os controles ListBox e CommandButton, os eventos ocorrem nesta ordem:
MouseDown, Clic, MouseUp. Mas, para os controles FileListBox, Label ou PictureBox, os eventos ocorrem nesta ordem:
MouseDown, MouseUp e Clic. Ao se anexar procedimentos de evento para estes eventos relacionados, certifique-se de que
suas aes no sejam conflitantes. Se a ordem de eventos for importante em seu aplicativo, teste o controle para
determinar a ordem dos eventos.
Observao:
Para distinguir entre os botes direito, esquerdo e central do mouse, use os eventos MouseDown e
MouseUp.
Se houver cdigo no evento Clic, o evento DblClic nunca ser desencadeado porque o evento Clic o primeiro evento a
disparar entre os dois. Como resultado, o clique do mouse interceptado pelo evento Clic, assim o evento DblClic nunca
ocorre.

Evento DragDrop
Ocorre quando uma operao de arrastar-e-soltar termina como resultado de se arrastar um controle sobre um objeto e
soltar o boto do mouse, ou usando-se o mtodo Drag com seu argumento action configurado como 2 (Soltar).
Sintaxe
Private Sub Form_DragDrop(source As Control, x As Single, y As Single)
Private Sub MDIForm_DragDrop(source As Control, x As Single, y As Single)
Private Sub object_DragDrop([index As Integer,]source As Control, x As Single, y As Single)
A sintaxe do evento DragDrop tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele
esteja em uma matriz de controle.
source
O controle que est sendo arrastado. Pode-se incluir propriedades e
mtodos no procedimento de evento com este argumento por
exemplo, Source.Visible = 0.
x, y
Um nmero que especifica a posio atual horizontal (x) e vertical (y)
do ponteiro do mouse dentro do formulrio ou controle-destino. Estas
coordenadas so sempre expressas em termos do sistema de
coordenadas do alvo, conforme configurado pelas propriedades
ScaleHeight, ScaleWidth, ScaleLeft e ScaleTop.
Comentrios
Use um procedimento de evento DragDrop para controlar o que acontece aps uma operao de arraste ter terminado. Por
exemplo, pode-se mover o controle de origem at um novo local, ou copiar um arquivo de um local para outro.
Quando controles mltiplos podem ser potencialmente usados em um argumento source:
Usa-se a palavra-chave TypeOf com a instruo If para determinar o tipo de controle usado com source.
Usa-se a propriedade Tag do controle para identific-lo e, em seguida, usa-se um procedimento de evento DragDrop.
Observao: Usa-se a propriedade DragMode e o mtodo Drag para especificar a maneira como o arraste iniciado.
Uma vez que o arraste tenha sido iniciado, pode-se manipular os eventos que precedem um evento DragDrop com um
procedimento de evento DragOver.

Funes Internas

265

Evento DragOver
Ocorre quando uma operao arrastar-e-soltar est sendo executada. Pode-se usar este evento para monitorar o ponteiro
do mouse medida que ele entra, sai ou permanece diretamente sobre um alvo vlido. A posio do ponteiro do mouse
determina o objeto de destino que recebe este evento.
Sintaxe
Private Sub Form_DragOver(source As Control, x As Single, y As Single, state As Integer)
Private Sub MDIForm_DragOver(source As Control, x As Single, y As Single, state As Integer)
Private Sub object_DragOver([index As Integer,]source As Control, x As Single, y As Single, state As Integer)
A sintaxe do evento DragOver tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele
esteja em uma matriz de controle.
source
O controle que est sendo arrastado. Pode-se referir a propriedades e
mtodos no procedimento de evento com este argumento por
exemplo, Source.Visible = False.
x, y
Um nmero que especifica a posio atual horizontal (x) e vertical (y)
do ponteiro do mouse dentro de um formulrio ou controle alvo. Estas
coordenadas so sempre expressas em termos do sistema de
coordenadas, conforme definido pelas propriedades ScaleHeight,
ScaleWidth, ScaleLeft e ScaleTop.
State
Um inteiro que corresponde ao estado de transio do controle que
est sendo arrastado em relao a um formulrio ou controle destino:
0 = Entrar (o controle de origem est sendo arrastado dentro do
alcance de um destino).
1 = Sair (o controle de origem est sendo arrastado para fora do
alcance de um destino).
2 = Sobre (o controle de origem est sendo movido de uma posio a
outra, dentro do destino).
Comentrios
Use um procedimento de evento DragOver para determinar o que acontece aps o arraste ter-se iniciado, e antes que um
controle seja solto sobre o destino. Por exemplo, pode-se verificar um intervalo de destino vlido, selecionando-se o destino
(definindo-se a propriedade BacColor ou ForeColor no cdigo) ou exibindo-se um ponteiro de arraste especial (definindose a propriedade DragIcon ou MousePointer no cdigo).
Use o argumento state para determinar as aes em pontos de transio importantes. Por exemplo, pode-se selecionar um
possvel destino quando state configurado como 0 (Entrar), e restaurar a aparncia anterior do objeto quando state est
configurado como 1 (Sair).
Quando um objeto recebe um evento DragOver enquanto state est definido como 0 (Entrar):
Se o controle de origem solto sobre o objeto, este objeto recebe um evento DragDrop.
Se o controle de origem no solto sobre o objeto, este objeto recebe outro evento DragOver quando state est
configurado como 1 (Sair).
Observao: Usa-se a propriedade DragMode e o mtodo Drag para especificar a maneira como o arraste iniciado.
Para obter sugestes de tcnicas com o argumento source, consulte "Comentrios" no tpico "Evento DragDrop".

Evento DropDown
Ocorre quando a parte da lista de um controle ComboBox est para ser exibida; este evento no ocorre se a propriedade
Style de um controle ComboBox est configurada como 1 (Caixa de combinao simples).
Sintaxe
Private Sub object_DropDown([index As Integer])
A sintaxe do evento DropDown tem estas partes:
Part
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele
esteja em uma matriz de controle.
Comentrios
Usa-se um procedimento de evento DropDown para efetuar atualizaes finais em uma lista ComboBox, antes que o
usurio efetue uma seleo. Isto permite adicionar ou remover itens da lista usando os mtodos AddItem ou RemoveItem.
Esta flexibilidade til quando se deseja alguma inter-relao entre controles por exemplo, caso aquilo que se deseja
carregar em uma lista ComboBox dependa do que o usurio seleciona em um grupo OptionButton.

Evento GotFocus
Ocorre quando um objeto recebe o foco, por ao do usurio, por exemplo, usando a tecla de tabulao ou clicando no
objeto, ou alterando o foco no cdigo atravs do mtodo SetFocus. Um formulrio somente recebe o foco quando todos os
controles visveis esto desativados.
Sintaxe
Private Sub Form_GotFocus( )
Private Sub object_GotFocus([index As Integer])

Funes Internas

266

A sintaxe do evento GotFocus tem estas partes:


Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
Comentrios
Tipicamente, usa-se o procedimento de evento GotFocus para especificar as aes que ocorrem quando um controle ou
formulrio recebe foco pela primeira vez. Por exemplo, anexando-se um procedimento de evento GotFocus a cada controle
de um formulrio, pode-se orientar o usurio exibindo-se curtas instrues ou mensagens de barra de status. Pode-se
ainda fornecer dicas visuais ativando, desativando ou exibindo outros controles que dependam do controle que tem o foco.
Observao: Um objeto somente pode receber o foco se suas propriedades Enabled e Visible estiverem definidas como
True. Para personalizar a interface de teclado em Visual Basic para mover o foco, configura-se a ordem de tabulao ou
especificam-se teclas de acesso para controles em um formulrio.

Eventos eyDown, eyUp


Ocorrem quando o usurio pressiona (eyDown) ou solta (eyUp) uma tecla, enquanto um objeto tem o foco. (Para interpretar
caracteres ANSI, usa-se o evento eyPress.)
Sintaxe
Private Sub Form_eyDown(eycode As Integer, shift As Integer)
Private Sub object_eyDown([index As Integer,]eycode As Integer, shift As Integer)
Private Sub Form_eyUp(eycode As Integer, shift As Integer)
Private Sub object_eyUp([index As Integer,]eycode As Integer, shift As Integer)
A sintaxe dos eventos eyDown e eyUp tem estas partes:
Part
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
eycode
Um cdigo de tecla, por exemplo, vbeyF1 (a tecla F1) ou vbeyHome (a
tecla HOME). Para especificar os cdigos de tecla, use as constantes
contidas na biblioteca de objetos do (VB)Visual Basic no Object
Browser.
shift
Um inteiro que corresponde ao estado das teclas SHIFT, CTRL e ALT no
momento do evento. O argumento shift um campo de bit com os bits
menos importantes correspondendo tecla SHIFT (bit 0), tecla CTRL (bit
1) e tecla ALT (bit 2 ). Estes bits correspondem, respectivamente, aos
valores 1, 2 e 4. Algum, todos ou nenhum dos bits podem estar
configurados, indicando que alguma, todas ou nenhuma das teclas est
pressionada. Por exemplo, se tanto CTRL quanto ALT estiverem
pressionadas, o valor de shift ser 6.

Comentrios
Em ambos os eventos, o objeto que tem o foco recebe todos os pressionamentos de tecla. Um formulrio somente pode ter
o foco se no contiver controles ativados e visveis. Embora os eventos eyDown e eyUp possam aplicar-se maioria das
teclas, eles so mais comumente usados para:
Teclas de caracteres estendidos como, por exemplo, teclas de funo.
Teclas de direo.
Combinaes de teclas com modificadores de teclado padro.
Distinguir entre o teclado numrico e as teclas numricas comuns.
Use os procedimentos de evento eyDown e eyUp se precisar responder tanto ao pressionamento quanto liberao de
uma tecla.
eyDown e eyUp no so chamados para:
A tecla ENTER se o formulrio tiver um controle CommandButton com a propriedade Default configurada como True.
A tecla ESC se o formulrio tiver um controle CommandButton com a propriedade Cancel configurada como True.
A tecla TAB.
eyDown e eyUp interpretam as maisculas e minsculas de cada caractere atravs de dois argumentos: eycode, que indica
a tecla fsica (retornando, assim, A e a como a mesma tecla) e shift, que indica o estado shift+tecla e, portanto, retorna A ou
a.
Caso seja necessrio testar o argumento shift, pode-se usar as constantes shift que definem os bits dentro de argumentos.
As constantes tm os valores abaixo:
Constante
Valor
Descrio
vbShiftMas
1
Mscara de bits da tecla SHIFT.
VbCtrlMas
2
Mscara de bits da tecla CTRL.
VbAltMas
4
Mscara de bits da tecla ALT.
As constantes funcionam como mscaras de bits que podem ser usadas para testar qualquer combinao de teclas.
Testa-se uma condio designando primeiro cada resultado a uma varivel inteira temporria e, em seguida, comparando
shift a uma mscara de bits. Usa-se o operador And com o argumento shift para testar se a condio maior que 0,
indicando que o modificador foi pressionado, como no exemplo abaixo:
ShiftDown = (Shift And vbShiftMas) > 0

Funes Internas

267

Em um procedimento, pode-se testar qualquer combinao de condies, como neste exemplo:


If ShiftDown And CtrlDown Then
Observao: Caso a propriedade eyPreview esteja configurada como True, um formulrio recebe estes eventos antes
que controles no formulrio os recebam. Utilize a propriedade eyPreview para criar rotinas globais de manipulao de
teclado.

Evento eyPress
Ocorre quando o usurio pressiona e solta uma tecla ANSI.
Sintaxe
Private Sub Form_eyPress(eyascii As Integer)
Private Sub object_eyPress([index As Integer,]eyascii As Integer)
A sintaxe do evento eyPress tem estas partes:
Part
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele
esteja em uma matriz de controle.
eyascii
Um inteiro que retorna um cdigo numrico de tecla ANSI padro.
eyascii passado como referncia; sua alterao envia um caractere
diferente ao objeto. Alterando-se eyascii para 0, cancela-se o
pressionamento de tecla, de modo que o objeto no recebe caractere
algum.
Comentrios
O objeto com o foco recebe o evento. Um formulrio somente pode receber o evento, se no tiver nenhum controle ativado
e visvel, ou se a propriedade eyPreview estiver definida como True. Um evento eyPress envolve qualquer caractere de
teclado imprimvel, a tecla CTRL combinada com um caractere do alfabeto padro ou um dos poucos caracteres especiais
como, por exemplo, a tecla ENTER ou BACSPACE. Um evento eyPress til para interceptar pressionamentos de teclas em
um controle TextBox ou ComboBox. Ele permite testar imediatamente pressionamentos de teclas para validade, ou para
formatar caracteres medida que so digitados. A alterao do valor do argumento eyascii altera o caractere exibido.
Pode-se converter o argumento eyascii em um caractere usando-se a expresso:
Chr(eyAscii)
Pode-se, em seguida, executar operaes com seqncias de caracteres e traduzir o caractere de volta para um nmero
ANSI que o controle possa interpretar usando a expresso:
eyAscii = Asc(char)
Usa-se os procedimentos de evento eyDown e eyUp para tratar todo pressionamento de tecla no reconhecido por eyPress
como, por exemplo, teclas de funo, teclas de edio, teclas de navegao e qualquer combinao destas com
modificadores de teclado. Diferente dos eventos eyDown e eyUp, o eyPress no indica o estado fsico do teclado; ao invs
ele passa um caractere.
eyPress interpreta maiscula e minscula de cada caractere como cdigos de tecla separados e, portanto, como dois
caracteres separados. eyDown e eyUp interpretam a maiscula e a minscula de cada caractere por meio de dois
argumentos: eycode, que indica a tecla fsica (retornando, assim A e a como a mesma tecla), e shift, que indica o estado de
shift+tecla e, portanto, retorna A ou a.
Caso a propriedade eyPreview esteja definida como True, um formulrio recebe o evento antes que os controles do
formulrio o receba. Utilize a propriedade eyPreview para criar rotinas globais de manipulao de teclado.
Observao: O nmero ANSI para a combinao de teclas CTRL+@ 0. Uma vez que o Visual Basic reconhece um valor
de eyascii de 0 como uma seqncia de caracteres de comprimento zero (""), evite usar CTRL+@ em seus aplicativos.

Evento LinClose
Ocorre quando termina uma conversao DDE. Qualquer um dos aplicativos em uma conversao DDE pode terminar a
conversao a qualquer momento.
Sintaxe
Private Sub Form_LinClose( )
Private Sub MDIForm_LinClose( )
Private Sub object_LinClose([index As Integer])
A sintaxe do evento LinClose tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
Comentrios
Tipicamente, usa-se um procedimento de evento LinClose para notificar o usurio de que a conversao DDE foi
encerrada. Pode-se ainda incluir informaes para a soluo de problemas no restabelecimento de uma conexo, ou onde
procurar ajuda. Para mensagens curtas utiliza-se a funo MsgBox.

Evento LinError
Ocorre quando existe um erro durante uma conversao DDE. Este evento somente reconhecido como resultado de um
erro relacionado com DDE que ocorra quando o cdigo do Visual Basic estiver sendo executado. O nmero do erro
passado como um argumento.

Funes Internas

268

Sintaxe
Private Sub Form_LinError(linerr As Integer)
Private Sub MDIForm_LinError(linerr As Integer)
Private Sub object_LinError([index As Integer,]linerr As Integer)
A sintaxe do evento LinError tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
linerr
Nmero de erro do erro relacionado com DDE, conforme descrito em
valores de retorno.
index
Um inteiro que identifica com exclusividade um controle, caso ele
esteja em uma matriz de controle.
Valores de retorno
A tabela abaixo lista todos os nmeros de erro retornados para o argumento linerr e uma curta explicao de cada erro:
Value
Descrio
1
O outro aplicativo pediu dados no formato errado. Este erro pode ocorrer
diversas vezes em seguida, enquanto o Visual Basic tenta achar um
formato que o outro aplicativo reconhea.
6
O aplicativo de destino tentou continuar uma conversao DDE aps
voc ter configurado a propriedade LinMode em seu formulrio de
origem como 0 (Nenhum).
7
Todos os vnculos de origem esto sendo usados (existe um limite de
128 vnculos por origem).
8
Para controles de destino: um vnculo automtico ou mtodo
LinRequest falhou ao atualizar os dados contidos no controle.
Para formulrios de origem: o destino tentou enviar dados a um controle
e a tentativa falhou.
11
Memria insuficiente para DDE.
Comentrios
Usa-se um procedimento de evento LinErros para notificar o usurio sobre um determinado erro que tenha ocorrido. Podese ainda incluir cdigo para corrigir o problema ou informaes para a soluo de problemas no restabelecimento de um
conexo, ou sobre onde procurar ajuda. Para mensagens curtas, utiliza-se a funo MsgBox.

Evento LinExecute
Ocorre quando uma seqncia de caracteres de comando enviada por um aplicativo de destino em uma conversao
DDE. O aplicativo de destino espera que o aplicativo de origem execute a operao descrita na seqncia de caracteres.
Sintaxe
Private Sub object_LinExecute(cmdstr As String, cancel As Integer)
A sintaxe do evento LinExecute tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
cmdstr
A expresso de seqncia de caracteres de comando enviada pelo
aplicativo de destino.
cancel
Um inteiro que informa o destino se a seqncia de caracteres de
comando foi aceita ou recusada. Definindo-se cancel como 0 informa-se
ao destino que a seqncia de caracteres de comando foi aceita.
Definindo-se cancel como qualquer valor diferente de zero informa-se ao
destino que a seqncia de caracteres de comando foi rejeitada. (O
padro configurado como -1, indicando cancel.)
Comentrios
No existe sintaxe obrigatria para cmdstr. A forma como o aplicativo responde a diferentes seqncias de caracteres um
problema do programador.
Caso no se tenha criado um procedimento de evento LinExecute, o Visual Basic rejeita seqncias de caracteres de
comando de aplicativos de destino.

Evento LinNotify
Ocorre quando a origem alterou os dados definidos pelo vnculo DDE se a propriedade LinMode do controle de destino
estiver configurada como 3 (Notificar).
Sintaxe
Private Sub object_LinNotify([index As Integer])
A sintaxe do evento LinNotify tem estas partes:
Part
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele
esteja em uma matriz de controle.
Comentrios

Funes Internas

269

Tipicamente, no evento LinNotify o cdigo notifica o usurio, obtm imediatamente os novos dados ou adia a obteno de
dados para mais tarde. Pode-se usar o mtodo LinRequest para obter os novos dados da origem.

Evento LinOpen
Ocorre quando uma conversao DDE est sendo iniciada.
Sintaxe
Private Sub Form_LinOpen(cancel As Integer)
Private Sub MDIForm_LinOpen(cancel As Integer)
Private Sub object_LinOpen([index As Integer,]cancel As Integer)
A sintaxe do evento LinOpen tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
cancel
Um inteiro que determina se a conversao DDE foi ou no
estabelecida. Deixando-se cancel configurado como 0 (o padro)
estabelece-se a conversao. Configurando-se cancel como qualquer
valor diferente de zero, recusa-se a conversao.
index
Um inteiro que identifica com exclusividade um controle, caso ele
esteja em uma matriz de controle.
Comentrios
Este evento ocorre para formulrios quando um aplicativo de destino est iniciando uma conversao DDE com o
formulrio. Ela ocorre em controles, quando um controle est iniciando uma conversao DDE com um aplicativo de
origem.

Evento Load
Ocorre quando um formulrio carregado. Para um formulrio de inicializao, ocorre quando um aplicativo inicia como
resultado de uma instruo Load, ou como resultado de uma referncia a propriedades ou controle de um formulrio nocarregado.
Sintaxe
Private Sub Form_Load( )
Private Sub MDIForm_Load( )
Comentrios
Tipicamente, usa-se um procedimento de evento Load para incluir cdigo de inicializao em um formulrio por exemplo,
cdigo que especifique as configuraes padro para controles, indica-se o contedo a ser carregado em controles
ComboBox ou ListBox, e inicializam-se variveis a nvel de formulrio.
O evento Load ocorre aps o evento Initialize.
Ao ser feita uma referncia no cdigo a uma propriedade de um formulrio no carregado, este automaticamente
carregado, mas no tornado automaticamente visvel, a menos que a propriedade MDIChild seja configurada como True.
Caso um objeto MDIForm no esteja carregado e um formulrio MDI filho esteja carregado, tanto o MDIForm quanto o
formulrio filho so automaticamente carregados, e ambos tornam-se visveis. Outros formulrios no so exibidos at que
se utilize o mtodo Show, ou se configure a propriedade Visible como True.
O cdigo abaixo em um evento MDIForm Load carrega automaticamente um formulrio MDI filho (pressupondo-se que
Form1 tenha sua propriedade MDIChild configurada como True):
Dim NewForm As New Form1
NewForm.Caption = "New Form" ' Carrega o formulrio por referncia.
Uma vez que todos os formulrios filhos tornam-se visveis ao serem carregados, a referncia propriedade Caption
carrega o formulrio e o torna visvel.
Observao: Quando so criados procedimentos para eventos relacionados como, por exemplo Activate, GotFocus, Paint
e Resize, certifique-se de que suas aes no entrem em conflito e que eles no provoquem eventos recursivos.

Evento LostFocus
Ocorre quando um objeto perde o foco, por ao do usurio, por exemplo, usando a tecla de tabulao ou clicando em
outro objeto, ou alterando o foco no cdigo usando o mtodo SetFocus.
Sintaxe
Private Sub Form_LostFocus( )
Private Sub object_LostFocus([index As Integer])
A sintaxe do evento LostFocus tem estas partes:
Parte
Descrio
object

Uma expresso de objeto que avalia para um objeto na lista Applies To.

index

Um inteiro que identifica com exclusividade um controle, caso ele esteja


em uma matriz de controle.

Comentrios
Um procedimento de evento LostFocus til principalmente para a verificao e atualizaes de validao. Usando-se
LostFocus, pode-se fazer com que a validao ocorra medida que o usurio move o foco para fora do controle. Outro uso
para este tipo de procedimento de evento permitir, ocultar e exibir outros objeto como em um procedimento de evento
GotFocus. Pode-se inverter ou alterar condies que so configuradas no procedimento de evento GotFocus do objeto.

Funes Internas

270

Caso um arquivo .exe criado pelo Visual Basic exiba uma caixa de dilogo criada por um arquivo .dll tambm criado em
Visual Basic, o formulrio do arquivo .exe obter eventos Deactivate e LostFocus. Isto pode ser inesperado, porque no se
deve obter o evento Deactivate:
Se o objeto for um componente fora de processo.
Se o objeto no tiver sido escrito em Visual Basic.
No ambiente de desenvolvimento ao se chamar uma DLL criada em Visual Basic.

Eventos MouseDown, MouseUp


Ocorre quando o usurio pressiona (MouseDown) ou libera (MouseUp) um boto de mouse.
Sintaxe
Private Sub Form_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)
Private Sub MDIForm_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)
Private Sub object_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)
Private Sub Form_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)
Private Sub MDIForm_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)
Private Sub object _MouseUp([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)
As sintaxes de evento MouseDown e MouseUp tm estas partes:
Part
Descrio
object
Retorna uma expresso de objeto que avalia para um objeto na lista
Applies To.
Index
Retorna um inteiro que identifica com exclusividade um controle que
esteja em um matriz de controle.
button
Retorna um inteiro que identifica o boto que foi pressionado
(MouseDown) ou liberado (MouseUp) para causar o evento. O
argumento button um campo de bit com bits correspondendo ao boto
esquerdo (bit 0), boto direito (bit 1) e boto central (bit 2). Estes bits
correspondem respectivamente aos valores 1, 2 e 4. Somente um dos
bits configurado, indicando o boto que causou o evento.
shift
Retorna um inteiro que corresponde ao estado das teclas SHIFT, CTRL e
ALT quando o boto especificado no argumento button est pressionado
ou solto. Um bit configurado se a tecla estiver pressionada. O
argumento shift um campo de bit, com os bits menos importantes
correspondendo tecla SHIFT (bit 0), tecla CTRL (bit 1) e tecla ALT (bit
2 ). Estes bits correspondem, respectivamente, aos valores 1, 2 e 4. O
argumento shift indica o estado destas teclas. Algum, todos ou nenhum
dos bits pode ser definido, indicando que alguma, todas ou nenhuma
das teclas est pressionada. Por exemplo, se tanto CTRL quando ALT
estiverem pressionadas, o valor de shift ser 6.
x, y
Retorna um nmero que especifica a localizao atual do ponteiro do
mouse. Os valores x e y so sempre expressos em termos do sistema
de coordenadas definido pelas propriedades ScaleHeight, ScaleWidth,
ScaleLeft e ScaleTop do objeto.
Comentrios
Usa-se um procedimento de evento MouseDown ou MouseUp para especificar aes que ocorrero quando um
determinado boto do mouse pressionado ou solto. Diferente dos eventos Clic e DblClic, os eventos MouseDown e
MouseUp permitem distinguir entre os botes direito, esquerdo e central do mouse. Pode-se ainda escrever cdigo para
combinaes de mouse e teclado que utilizem os modificadores de teclado SHIFT, CTRL e ALT.
Aplicam-se tanto aos eventos Clic quando DblClic:
Se um boto de mouse est pressionado enquanto o ponteiro est sobre um formulrio ou controle, este objeto "captura" o
mouse e recebe todos os eventos de mouse at, e incluindo, o ltimo evento MouseUp. Isto implica em que as
coordenadas de ponteiro de mouse x, y retornadas por um evento de mouse podem no estar sempre na rea interna do
objeto que os recebe.
Se os botes do mouse forem pressionados em seguida, o objeto que captura o mouse aps o primeiro pressionamento
recebe todos os eventos de mouse, at que todos os botes sejam liberados.
Caso seja necessrio testar os argumentos button ou shift, pode-se usar as constantes listadas na biblioteca de objetos
(VB) do Visual Basic no Object Browser para definir os bits dentro do argumento:
Constante (Boto)
Valor
Descrio
vbLeftButton
1
O boto esquerdo est pressionado
vbRightButton
2
O boto direito est pressionado
vbMiddleButton
4
O boto central est pressionado
Constante (Shift)
vbShiftMas
VbCtrlMas
VbAltMas

Valor
1
2
4

Descrio
A tecla SHIFT est pressionada.
A tecla CTRL est pressionada.
A tecla ALT est pressionada.

As constantes funcionam ento como mscaras de bits que podem ser usadas para se testar qualquer combinao de
botes sem ter que calcular o valor exclusivo do campo de bit para cada combinao.

Funes Internas

271

Observao:
Pode-se usar um procedimento de evento MouseMove para responder a um evento causado pela
movimentao do mouse. O argumento button para MouseDown e MouseUp diferem do argumento button usado para
MouseMove. Para MouseDown e MouseUp, o argumento button indica exatamente um boto por evento, ao passo que
para MouseMove, ele indica o estado atual de todos os botes.

Evento MouseMove
Ocorre quando o usurio move o mouse.
Sintaxe
Private Sub Form_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
Private Sub MDIForm_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
Private Sub object_MouseMove([index As Integer,] button As Integer, shift As Integer, x As Single, y As Single)
A sintaxe do evento MouseMove tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
button
Um inteiro que corresponde ao estado dos botes do mouse onde um
bit configurado se o boto estiver pressionado. O argumento button
um campo de bit com bits correspondendo ao boto esquerdo (bit 0),
boto direito (bit 1) e boto central (bit 2). Estes bits correspondem,
respectivamente, aos valores 1, 2 e 4. Ele indica o estado completo dos
botes do mouse; algum, todos ou nenhum destes trs bits pode ser
definido, indicando que algum, todos ou nenhum dos botes do mouse
est pressionado.
shift
Um inteiro que corresponde ao estado das teclas SHIFT, CTRL e ALT. Um
bit configurado se a tecla estiver pressionada. O argumento shift um
campo de bit com os bits menos importantes correspondendo tecla
SHIFT (bit 0), tecla CTRL (bit 1) e tecla ALT (bit 2 ). Estes bits
correspondem, respectivamente, aos valores 1, 2 e 4. O argumento shift
indica o estado destas teclas. Algum, todos ou nenhum dos bits pode
ser definido, indicando que alguma, todas ou nenhuma das teclas est
pressionada. Por exemplo, se tanto CTRL quando ALT estiverem
pressionadas, o valor de shift ser 6.
x, y
Um nmero que especifica a localizao atual do ponteiro do mouse. Os
valores x e y so sempre expressos em termos do sistema de
coordenadas configurado pelas propriedades ScaleHeight, ScaleWidth,
ScaleLeft e ScaleTop do objeto.
Comentrios
O evento MouseMove gerado continuamente, medida que o ponteiro do mouse se move pelos objetos. A menos que
outro objeto tenha capturado o mouse, um objeto reconhece um evento MouseMove sempre que a posio do mouse est
dentro de suas bordas.
Caso seja necessrio testar os argumentos button ou shift, pode-se usar constantes listadas na biblioteca de objetos (VB)
do Visual Basic no Object Browser para definir os bits dentro do argumento:
Constante (Boto)
Valor
Descrio
vbLeftButton
1
O boto esquerdo est pressionado.
vbRightButton
2
O boto direito est pressionado.
vbMiddleButton
4
O boto central est pressionado.
Constante (Shift)
vbShiftMas
vbCtrlMas
vbAltMas

Valor
1
2
4

Descrio
A tecla SHIFT est pressionada.
A tecla CTRL est pressionado.
A tecla ALT est pressionada.

As constantes, portanto, funcionam como mscaras de bits que podem ser usadas para se testar qualquer combinao de
botes sem ter que calcular o valor exclusivo dos bits do campo para cada combinao.
Testa-se uma condio designando-se primeiro cada resultado a uma varivel inteira temporria e, em seguida,
comparando-se os argumentos button ou shift a uma mscara de bits. Usa-se o operador And com cada um dos
argumentos para testar se a condio maior que zero, indicando que a tecla ou boto est pressionado, como neste
exemplo:
LeftDown = (Button And vbLeftButton) > 0
CtrlDown = (Shift And vbCtrlMas) > 0
A seguir, em um procedimento, pode-se testar qualquer combinao de condies, como neste exemplo:
If LeftDown And CtrlDown Then
Observao: Pode-se usar procedimentos de evento MouseDown e MouseUp para responder a eventos causados pelo
pressionamento e liberao de botes de mouse.
O argumento button para MouseMove diferente do argumento button para MouseDown e MouseUp. Para MouseMove, o
argumento button indica o estado atual de todos os botes; um nico evento MouseMove pode indicar que algum, todos ou
nenhum boto est pressionado. Para MouseDown e MouseUp, o argumento button indica exatamente um boto por
evento.

Funes Internas

272

A qualquer momento em que se mova uma janela dentro de um evento MouseMove, pode-se provocar um evento em
cascata. Eventos MouseMove so gerados quando a janela se move sob o ponteiro. Um evento MouseMove pode ser
gerado, mesmo que o mouse esteja perfeitamente estacionrio.

Evento Paint
Ocorre quando parte ou todo um objeto exibido aps ter sido movido ou ampliado, ou aps uma janela que o estava
cobrindo ter sido movida.
Sintaxe
Private Sub Form_Paint( )
Private Sub object_Paint([index As Integer])
A sintaxe do evento Paint tem estas partes:
Part
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
Comentrios
O procedimento de evento Paint til quando se tem resultados de mtodos grficos no cdigo. Com o procedimento
Paint, pode-se assegurar que tal resultado seja regenerado quando necessrio.
O evento Paint chamado quando o mtodo Refresh utilizado. Caso a propriedade AutoRedraw esteja configurada
como True, a regenerao ou redesenho automtico, assim nenhum evento Paint necessrio.
Caso a propriedade ClipControls esteja configurada como False, os mtodos grficos no evento Paint afetam somente
reas recm-expostas do formulrio; caso contrrio, os mtodos grficos regeneram todas as reas do formulrio no
cobertas por controles (exceto controles Image, Label, Line e Shape).
Usar um mtodo Refresh em um procedimento de evento Resize regenera o objeto inteiro, toda vez que o usurio
redimensiona o formulrio.
Observao: Usar o procedimento de evento Paint para determinadas tarefas pode provocar um evento em cascata. Em
geral, evita-se usar um procedimento de evento Paint para fazer o que se segue:
Mover ou dimensionar um formulrio ou controle.
Alterar qualquer varivel que afete o tamanho ou aparncia como, por exemplo, configurar a propriedade BacColor de um
objeto.
Chamar um mtodo Refresh.
Um procedimento de evento Resize pode ser mais adequado para algumas destas tarefas.

Evento PathChange
Ocorre quando o caminho alterado configurando-se a propriedade FileName ou Path no cdigo.
Sintaxe
Private Sub object_PathChange([index As Integer])
A sintaxe do evento PathChange tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
Comentrios
Pode-se usar um procedimento de evento PathChange para responder a alteraes de caminho em um controle
FileListBox. Ao designar-se uma seqncia de caracteres contendo um novo caminho propriedade FileName, o controle
FileListBox chama o evento PathChange.

Evento PatternChange
Ocorre quando o padro de listagem de arquivos como, por exemplo, "*.*", alterado pela configurao da propriedade
FileName ou Pattern no cdigo.
Sintaxe
Private Sub object_PatternChange([index As Integer])
A sintaxe do evento PatternChange tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
Comentrios
Pode-se usar um procedimento de evento para responder a alteraes de padro em um controle FileListBox. Ao se
atribuir uma seqncia de caracteres contendo um novo padro propriedade FileName, FileListBox aciona o evento
PathChange.

Evento QueryUnload
Ocorre antes que um formulrio ou aplicativo seja fechado. Quando um objeto MDIForm fechado, o evento QueryUnload
ocorre primeiro para o formulrio MDI e, em seguida, para todos os formulriosl MDI filhos. Se nenhum formulrio cancelar
o evento QueryUnload, o evento Unload ocorrer primeiro para todos os outros formulrios e, em seguida, em um
Funes Internas

273

formulrio MDI. Quando um formulrio filho ou objeto Form fechado, o evento QueryUnload naquele formulrio ocorre
antes do evento Unload do formulrio.
Sintaxe
Private Sub Form_QueryUnload(cancel As Integer, unloadmode As Integer)
Private Sub MDIForm_QueryUnload(cancel As Integer, unloadmode As Integer)
A sintaxe do evento QueryUnload tem estas partes:
Parte
Descrio
cancel
Um inteiro. A configurao deste argumento como qualquer valor
diferente de 0, interrompe o evento QueryUnload em todos os
formulrios carregados e impede o fechamento do formulrio e do
aplicativo.
Unloadmode
Um valor ou constante indicando a causa do evento QueryUnload,
conforme descrito em valores de retorno.
Valores de retorno
O argumento unloadmode retorna os valores abaixo:
Constante
Valor
Descrio
vbFormControlMenu
0
O usurio escolheu o comando Close no menu
Control do formulrio.
VbFormCode
1
A instruo Unload acionada a partir de cdigo.
VbAppWindows
2
A sesso de ambiente operacional atual do
Microsoft Windows est terminando.
VbAppTasManager
3
O Gerenciador de Tarefas do Microsoft Windows
est fechando o aplicativos.
vbFormMDIForm
4
Um formulrio MDI filho est fechando porque o
formulrio MDI est sendo fechado.
Estas constantes esto includas na biblioteca de objetos (VB) do Visual Basic no Object Browser.
Comentrios
Este evento tipicamente usado para certificar-se de que no existam tarefas inacabadas nos formulrios includos em um
aplicativo, antes que este seja fechado. Por exemplo, caso um usurio ainda no tenha salvo novos dados em qualquer
formulrio, seu aplicativo poder pedir ao usurio que salve os dados.
Quando um aplicativo fecha, pode-se utilizar o procedimento de evento QueryUnload ou Unload para configurar a
propriedade Cancel como True, interrompendo o processo de fechamento. Entretanto, o evento QueryUnload ocorre em
todos os formulrios antes que qualquer um seja descarregado, e o evento Unload ocorre medida que cada formulrio
descarregado.

Evento Resize
Ocorre quando um objeto exibido pela primeira vez, ou quando o estado da janela de um objeto se altera. (Por exemplo,
um formulrio maximizado, minimizado ou restaurado.)
Sintaxe
Private Sub Form_Resize( )
Private Sub object_Resize(height As Single, width As Single)
A sintaxe do evento Resize tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
height
Nmero especificando a nova altura do controle.
Width
Nmero especificando a nova largura do controle.
Comentrios
Usa-se o procedimento de evento Resize para mover ou redimensionar controles quando o formulrio pai
redimensionado. Pode-se tambm usar este procedimento de evento para recalcular variveis e propriedades como, por
exemplo, ScaleHeight e ScaleWidth, que podem depender do tamanho do formulrio. Caso se queira que os elementos
grficos mantenham tamanhos proporcionais ao formulrio ao serem redimensionados, aciona-se o evento Paint utilizandose o mtodo Refresh em um procedimento de evento Resize.
Sempre que a propriedade AutoRedraw configurada como False e o formulrio redimensionado, o Visual Basic
tambm chama os eventos relacionados, Resize e Paint, nesta ordem. Ao se anexar procedimentos a estes eventos
relacionados, certifique-se de que suas aes no entrem em conflito.
Quando a propriedade SizeMode de um controle de recipiente OLE configurada como 2 (Autosize), o controle
automaticamente dimensionado de acordo com o tamanho de exibio do objeto contido no controle. Caso o tamanho de
exibio do objeto seja alterado, o controle automaticamente redimensionado para ajustar-se ao objeto. Quando isto
ocorre, o evento Resize acionado para o objeto, antes que o controle do recipiente OLE seja redimensionado. As partes
height e width indicam o tamanho ideal para se exibir o objeto (este tamanho determinado pelo aplicativo que o criou).
Pode-se dimensionar o controle de maneira diferente alterando-se os valores das partes height e width no evento Resize.

Evento RowColChange
Ocorre quanto a clula atual muda para uma clula diferente.
Sintaxe
Private Sub object_RowColChange ([index As Integer, lastrow As String, lastcol As Integer])
A sintaxe do evento RowColChange tem estas partes:
Parte
Descrio
Funes Internas

274

object
index
lastrow
lastcol

Uma expresso de objeto que avalia para um objeto na lista Applies To.
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
(Para controle DBGrid) Uma expresso de seqncia de caracteres
especificando a posio anterior da linha.
(Para controle DBGrid) Um inteiro especificando a posio anterior da
coluna.

Comentrios
Este evento ocorre toda vez que o usurio clica em uma clula diferente da clula atual, ou quando se altera por meio de
programa a clula atual dentro de uma seleo usando as propriedades Col e Row.
O evento SelChange tambm ocorre quando o usurio clica em uma nova clula, mas no ocorre quando se altera por
meio do programa o intervalo selecionado, sem alterar a clula atual.
Para o controle DBGrid, a posio da clula atual fornecida pelas propriedades Boomar e ColIndex. A posio anterior
da clula especificada por lastrow e lastcol. Caso os dados sejam editados em seguida, movida a posio da clula atual
para uma nova linha, os eventos de atualizao para a linha original so terminados antes que outra clula torne-se a
clula atual.

Evento Scroll
Ocorre quando a caixa de rolagem em um controle ScrollBar, ou um objeto que contm uma barra de rolagem
reposicionado ou rolado horizontal e verticalmente.
Sintaxe
Private Sub dbgrid_Scroll([cancel As Integer])
Private Sub object_Scroll( )
A sintaxe do evento Scroll tem estas partes:
Part
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
cancel
Determina se a operao de rolagem bem sucedida, e se ScrollBar
ou DBGrid so regeneradas, conforme descrito em Comentrios.
Comentrios
Para um controle DBGrid, este evento ocorre quando o usurio rola a grade horizontal ou verticalmente, mas antes que a
grade seja regenerada para exibir os resultados da operao de rolagem.
Para um controle ComboBox, este evento somente ocorre quando as barras de rolagem na parte drop-down do controle
so manipuladas.
Configurar cancel como True provoca falha na operao de rolagem de DBGrid e no ocorre a operao de regenerao.
Caso o mtodo Refresh seja acionado dentro deste evento, a grade regenerada em sua nova disposio (rolada),
mesmo que cancel esteja configurado como True. Entretanto, neste caso, a grade novamente regenerada porque a
operao de rolagem falha, e ela volta sua posio anterior.
Pode-se usar este evento para realizar clculos ou para manipular controles que devem ser coordenados com alteraes
em curso nas barras de rolagem. Ao contrrio, utiliza-se o evento Change quando se deseja que ocorra uma atualizao
apenas uma vez, aps a alterao do controle ScrollBar.
Observao: Evite usar uma instruo ou funo MsgBox neste evento.

Evento SelChange
Ocorre quando o intervalo atual se altera para uma clula ou intervalo diferente de clulas.
Sintaxe
Private Sub DBGrid_SelChange ([cancel As Integer])
Private Sub object_SelChange( )
A sintaxe do evento SelChange tem estas partes:
Part
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.

cancel

Determina se a seleo volta posio anterior ocorrncia do evento.

Comentrios
O evento SelChange ocorre sempre que o usurio clica em uma clula diferente da clula atual, e medida que um usurio
arrasta para selecionar um novo intervalo de clulas. Um usurio tambm pode selecionar um intervalo de clulas
pressionando a tecla SHIFT e usando as teclas de direo.
Pode-se disparar este evento via cdigo para um controle DBGrid, alterando-se a rea selecionada usando as
propriedades SelStartCol e SelEndCol.
O evento RowColChange tambm ocorre quando um usurio clica em uma nova clula, mas no ocorre enquanto um
usurio arrasta a seleo pelo controle DBGrid, ou quando se altera a seleo por meio do programa, sem mover a clula
atual.
A configurao de cancel como True no controle DBGrid faz com que a seleo retorne clula ou intervalo ativo antes da
ocorrncia do evento.

Funes Internas

275

Evento Timer
Ocorre quando um intervalo predefinido para um controle Timer tenha decorrido. A freqncia do intervalo armazenada
na propriedade Interval do controle, que especifica a durao do tempo em milisegundos.
Sintaxe
Private Sub object_Timer([index As Integer])
A sintaxe do evento Timer tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade um controle, caso ele esteja
em uma matriz de controle.
Comentrios
Usa-se este procedimento de evento para informar ao Visual Basic o que fazer aps cada intervalo do controle Timer ter
decorrido. Quando se est trabalhando com o evento Timer:
A propriedade Interval especifica o intervalo entre eventos Timer em milisegundos.
Toda vez que a propriedade Enabled do controle Timer definida como True e a propriedade Interval maior que 0, o
evento Timer aguarda pelo perodo especificado na propriedade Interval.

Evento Unload
Ocorre quando um formulrio est para ser removido da tela. Quando este formulrio recarregado, o contedo de todos
os seus controles reinicializado. Este evento desencadeado por um usurio fechando o formulrio com o comando
Close do menu Control, ou com uma instruo Unload.
Sintaxe
Private Sub object_Unload(cancel As Integer)
A sintaxe do evento Unload tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
Cancel

Inteiro que determina se o formulrio removido da tela. Se cancel for


0, o formulrio ser removido. A configurao de cancel como qualquer
valor diferente de zero impede a remoo do formulrio.

Comentrios
A configurao de cancel como qualquer valor diferente de zero impede que o formulrio seja removido, mas no
interrompe outros eventos como, por exemplo, sair do ambiente operacional do Microsoft Windows. Usa-se o evento
QueryUnload para impedir a sada do Windows.
Usa-se um procedimento de evento Unload para verificar se o formulrio deve ser descarregado, ou para especificar aes
que se queira que ocorram quando o formulrio for descarregado. Pode-se ainda incluir qualquer cdigo de validao a
nvel de formulrio que seja necessrio para fechar o formulrio ou salvar os dados nele contidos para um arquivo.
O evento QueryUnload ocorre antes do evento Unload. O evento Unload ocorre antes do evento Terminate.
O evento Unload pode ser provocado pelo uso da instruo Unload ou pela escolha pelo usurio do comando Close em
um menu Controle de formulrio, saindo do aplicativo com o boto Finalizar tarefa na Lista de tarefas do Windows,
fechando o formulrio MDI do qual filho o formulrio atual, ou saindo do ambiente operacional do Microsoft Windows
enquanto o aplicativo est sendo executado.

Funes Internas

276

Exemplo de eventos Activate, Deactivate


Este exemplo atualiza o texto na barra de status para exibir a legenda do formulrio ativo. Para testar este exemplo, crie um
objeto Form (Form1) e um novo objeto MDIForm (MDIForm1). No MDIForm1, desenhe um controle PictureBox contendo
um controle Label. Em Form1, configure a propriedade MDIChild como True. Cole o cdigo do procedimento de evento
MDIForm_Load na seo Declarations do objeto MDIForm. Cole o cdigo do procedimento de evento Form_Activate na
seo Declarations do formulrio filho MDI e, em seguida, pressione F5.
Private Sub MDIForm_Load ()
Form1.Caption = "Form #1"
' Definir a legenda de Form1.
Dim NewForm As New Form1
' Criar um novo formulrio filho.
Load NewForm
NewForm.Caption = "Form #2" ' Definir a legenda do novo formulrio.
NewForm.Show
' Exibir o novo formulrio.
End Sub
Private Sub Form_Activate ()
' Definir o texto da barra de status.
MDIForm1.Label1.Caption = "Current form: " & Me.Caption
End Sub

Exemplo de evento Change


Este exemplo exibe a configurao numrica da propriedade Value de uma barra de rolagem horizontal em um controle
TextBox. Para testar este exemplo, crie um formulrio com um controle TextBox e um controle HScrollBar e, em seguida,
cole o cdigo na seo Declarations de um formulrio que contenha uma barra de rolagem horizontal (controle HScrollBar)
e um controle TextBox. Pressione F5 e clique na barra de rolagem horizontal.
Private Sub Form_Load ()
HScroll1.Min = 0
' Definir Minimum.
HScroll1.Max = 1000
' Definir Maximum.
HScroll1.LargeChange = 100 ' Definir LargeChange.
HScroll1.SmallChange = 1
' Definir SmallChange.
End Sub
Private Sub HScroll1_Change ()
Text1.Text = HScroll1.Value
End Sub

Exemplo de evento Clic


Neste exemplo, cada vez que um controle PictureBox clicado ele se move diagonalmente pelo formulrio. Para testar
este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha um controle PictureBox posicionado no
canto inferior esquerdo do formulrio e, em seguida, pressione F5 e clique em PictureBox.
Private Sub Picture1_Clic ()
Picture1.Move Picture1.Left + 750, Picture1.Top - 550
End Sub

Exemplo de evento DragDrop


Este exemplo demonstra o efeito visual de se soltar um controle PictureBox sobre outro controle PictureBox. Para testar
este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha trs controles PictureBox. Defina a
propriedade DragMode de Picture1 e Picture2 como 1 (Automtico). Use a propriedade Picture para atribuir bitmaps a
Picture1 e Picture2 e, em seguida, pressione F5 e arraste Picture1 ou Picture2 sobre Picture3.
Private Sub Picture3_DragDrop (Source As Control, X as Single, Y As Single)
If TypeOf Source Is PictureBox Then
' Definir o bitmap Picture3 ao mesmo controle de origem.
Picture3.Picture = Source.Picture
End If
End Sub

Exemplo de evento DragOver


Este exemplo demonstra uma maneira de indicar um alvo vlido para soltar. O ponteiro transforma-se, da seta padro para
um cone especial quando um controle TextBox arrastado sobre um controle PictureBox. O ponteiro retorna ao padro
quando a origem arrastada para qualquer outro lugar. Para testar este exemplo, cole o cdigo na seo Declarations de
um formulrio que contenha um pequeno TextBox e um PictureBox. Defina a propriedade DragMode do controle TextBox
como 1 e, em seguida, pressione F5 e arraste o TextBox sobre PictureBox.
Private Sub Picture1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
Select Case State
Case vbEnter
' Carregar o cone.
Source.DragIcon = LoadPicture("ICONS\ARROWS\POINT03.ICO")
Case vbLeave
Source.DragIcon = LoadPicture()
' Descarregar o cone.
End Select
End Sub

Funes Internas

277

Private Sub Picture1_DragDrop (Source As Control, X As Single, Y As Single)


Source.DragIcon = LoadPicture() ' Descarregar o cone.
End Sub

Exemplo de evento DropDown


Este exemplo atualiza um controle ComboBox com base na seleo do usurio em um grupo de botes de opo. Para
testar este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha um controle ComboBox e dois
controles OptionButton. Defina a propriedade Name de ambos os controles OptionButton como OptionGroup e, em
seguida, pressione F5 e clique nos controles OptionButton. O controle ComboBox reflete diferentes couriers, dependendo
do OptionButton selecionado.
Private Sub Form_Load ()
Combo1.Text = "" ' Limpar caixa de combinao.
End Sub
Private Sub Combo1_DropDown ()
Combo1.Clear
' Excluir itens existentes.
If OptionGroup(0).Value = True Then
Combo1.AddItem "Gray Goose Express", 0
Combo1.AddItem "Wild Fargo Carriers", 1
Else
Combo1.AddItem "Summit Technologies Overnight"
End If
End Sub

Exemplo de evento GotFocus


Este exemplo exibe uma mensagem de barra de status quando um boto em um grupo OptionButton recebe o foco. Para
testar este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha dois controles OptionButton e
um controle Label. Defina a propriedade Name para ambos os controles OptionButton como OptionGroup e, em seguida,
pressione F5 e clique nos controles OptionButton.
Private Sub Form_Load ()
Label1.AutoSize = True
End Sub
Private Sub OptionGroup_GotFocus (Index As Integer)
Select Case Index
Case 0
Label1.Caption = "Option 1 has the focus."
Case 1
Label1.Caption = "Option 2 has the focus."
End Select
End Sub
Private Sub OptionGroup_LostFocus (Index As Integer)
Label1.Caption = ""
End Sub

Exemplo de eventos eyDown, eyUp


Este exemplo demonstra um identificador genrico de teclado que responde tecla F2 e a todas as combinaes de tecla
ALT, SHIFT e CTRL associadas. As constantes de tecla esto listadas na biblioteca de objetos (VB) do Visual Basic no Object
Browser. Para testar este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha um controle
TextBox e, em seguida, pressione F5 e pressione F2 com diversas combinaes das teclas ALT, SHIFT e CTRL.
Private Sub Text1_eyDown (eyCode As Integer, Shift As Integer)
Dim ShiftDown, AltDown, CtrlDown, Txt
ShiftDown = (Shift And vbShiftMas) > 0
AltDown = (Shift And vbAltMas) > 0
CtrlDown = (Shift And vbCtrlMas) > 0
If eyCode = vbeyF2 Then ' Exibe as combinaes de teclas.
If ShiftDown And CtrlDown And AltDown Then
Txt = "SHIFT+CTRL+ALT+F2."
ElseIf ShiftDown And AltDown Then
Txt = "SHIFT+ALT+F2."
ElseIf ShiftDown And CtrlDown Then
Txt = "SHIFT+CTRL+F2."
ElseIf CtrlDown And AltDown Then
Txt = "CTRL+ALT+F2."
ElseIf ShiftDown Then
Txt = "SHIFT+F2."
ElseIf CtrlDown Then
Txt = "CTRL+F2."
ElseIf AltDown Then
Txt = "ALT+F2."
ElseIf SHIFT = 0 Then
Funes Internas

278

Txt = "F2."
End If
Text1.Text = "You pressed. " & Txt
End If
End Sub

Exemplo de evento eyPress


Este exemplo converte o texto inserido em um controle TextBox em maisculas. Para testar este exemplo, cole o cdigo na
seo Declarations de um formulrio que contenha um TextBox e, em seguida, pressione F5 e digite alguma coisa no
TextBox.
Private Sub Text1_eyPress (eyAscii As Integer)
Char = Chr(eyAscii)
eyAscii = Asc(UCase(Char))
End Sub

Exemplo de evento LinError


Este exemplo anexado a um controle TextBox, MyTextBox, que trata erros selecionados. O procedimento exibe uma
mensagem (adaptada da lista de erros no tpico de evento LinErros) com base no nmero de erro passado como
argumento LinErr. Pode-se adaptar este cdigo para um formulrio de origem substituindo Form_LinError por
MyTextBox_LinError. Este exemplo apenas para ilustrao.
Private Sub MyTextBox_LinError (LinErr As Integer)
Dim Msg
Select Case LinErr
Case 1
Msg = "Data in wrong format."
Case 11
Msg = "Out of memory for DDE."
End Select
MsgBox Msg, vbExclamation, "MyTextBox"
End Sub

Exemplo de evento LinExecute


Este exemplo define um conjunto de comandos para destinos usarem em conversao DDE que ser respondida por seu
aplicativo. Este exemplo somente para ilustrao.
Private Sub Form_LinExecute (CmdStr As String, Cancel As Integer)
Cancel = False
Select Case LCase(CmdStr)
Case "{big}"
WindowState = 2 ' Maximizar window.
Case "{little}"
WindowState = 1 ' Minimizar window.
Case "{hide}"
Visible = False ' Ocultar formulrio.
Case "{view}"
Visible = True
' Exibir formulrio.
Case Else
Cancel = True
' A execuo no permitida.
End Select
End Sub

Exemplo de evento LinNotify


Este exemplo est anexado a um controle PictureBox, Picture1, que tem suas propriedades LinTopic e LinItem definidos
para especificar um elemento grfico na origem, e sua propriedade LinMode definida como 3 (Notificar). Quando a origem
altera estes dados, o procedimento atualiza imediatamente o controle PictureBox somente se PictureBox est no
formulrio ativo; caso contrrio ele define um sinalizador de varivel. Este exemplo somente para ilustrao.
Private Sub Picture1_LinNotify ()
If Screen.ActiveForm Is Me Then
Picture1.LinRequest
' A figura est no formulrio ativo, portanto atualize.
Else
NewDataFlag = True ' Pressupe-se que seja uma varivel em nvel de mdulo.
End If
End Sub

Exemplo de evento Load


Este exemplo carrega itens em um controle ComboBox quando um formulrio carregado. Para testar este exemplo, cole
o cdigo na seo Declarations de um formulrio que contenha uma ComboBox e, em seguida, pressione F5.
Private Sub Form_Load ()
Combo1.AddItem "Mozart"
' Adicionar itens lista.
Combo1.AddItem "Beethoven"
Combo1.AddItem "Roc 'n Roll"
Combo1.AddItem "Reggae"
Funes Internas

279

Combo1.ListIndex = 2
End Sub

' Definir a seleo padro.

Funes Internas

280

Exemplo de evento LostFocus


Este exemplo altera a cor de um controle TextBox quando ele recebe ou perde o foco (selecionado com o mouse ou com a
tecla TAB) e exibe o texto adequado. Para testar este exemplo, cole o cdigo na seo Declarations de um formulrio que
contenha dois controles TextBox e um controle Label e, em seguida, pressione F5 e mova o foco entre Text1 e Text2.
Private Sub Text1_GotFocus ()
' Mostrar o foco com vermelho.
Text1.BacColor = RGB(255, 0, 0)
Label1.Caption = "Text1 has the focus."
End Sub
Private Sub Text1_LostFocus ()
' Mostre a perda do foco com azul.
Text1.BacColor = RGB(0, 0, 255)
Label1.Caption = "Text1 doesnt have the focus."
End Sub

Exemplo de eventos MouseDown, MouseUp


Este exemplo demonstra um aplicativo de pintura simples. O procedimento de evento MouseDown funciona com um
procedimento de evento MouseMove relacionado, para permitir a pintura quando qualquer boto do mouse pressionado e
arrastado. O procedimento de evento MouseUp desativa a pintura. Para testar este exemplo, cole o cdigo na seo
Declarations de um formulrio e, em seguida, pressione F5, clique no formulrio e mova o mouse enquanto o boto do
mouse est pressionado.
Dim PaintNow As Boolean
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As
Single, Y As Single)
PaintNow = True ' Ativar a pintura.
End Sub
Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
PaintNow = False ' Desativar a pintura.
End Sub
Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
If PaintNow Then
PSet (X, Y)
' Desenhar um ponto.
End If
End Sub
Private Sub Form_Load ()
DrawWidth = 10
' Usar um pincel mais largo.
ForeColor = RGB(0, 0, 255)
' Definir a cor da pintura.
End Sub

Exemplo de evento MouseMove


Este exemplo demonstra um aplicativo simples de pintura. O procedimento de evento MouseDown funciona com um
procedimento de evento MouseMove para permitir a pintura quando qualquer boto do mouse estiver pressionado. O
procedimento de evento MouseUp desativa a pintura. Para testar este exemplo, cole o cdigo na seo Declarations de um
formulrio e, em seguida, pressione F5, clique no formulrio e mova o mouse enquanto o boto do mouse est pressionado.
Dim PaintNow As Boolean ' Declara varivel.
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
PaintNow = True ' Pincel ativado.
End Sub
Private Sub Form_MouseUp (Button As Integer, X As Single, Y As Single)
PaintNow = False ' Desativar pintura.
End Sub
Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
If PaintNow Then
PSet (X, Y)
' Desenhar um ponto.
End If
End Sub
Private Sub Form_Load ()
DrawWidth = 10
' Usar pincel mais largo.
ForeColor = RGB(0, 0, 255)
' Definir a cor de desenho.
End Sub

Funes Internas

281

Exemplo de evento Paint


Este exemplo desenha um diamante que intercepta o ponto mdio de cada lado de um formulrio e se ajusta
automaticamente, medida que o formulrio redimensionado. Para testar este exemplo, cole o cdigo na seo
Declarations de um formulrio e, em seguida, pressione F5 e redimensione o formulrio.
Private Sub Form_Paint ()
Dim HalfX, HalfY ' Declarar variveis.
HalfX = ScaleLeft + ScaleWidth / 2 ' Definir com metade da largura.
HalfY = ScaleTop + ScaleHeight / 2 ' Definir como metade da altura.
' Desenhar um diamante.
Line (ScaleLeft, HalfY) - (HalfX, ScaleTop)
Line -(ScaleWidth + ScaleLeft, HalfY)
Line -(HalfX, ScaleHeight + ScaleTop)
Line -(ScaleLeft, HalfY)
End Sub
Private Sub Form_Resize
Refresh
End Sub

Exemplo de evento PathChange


Este exemplo demonstra como atualizar um controle Label para refletir o caminho atual at um controle FileListBox.
Clicando-se duas vezes em um nome de diretrio, exibida uma lista dos arquivos do diretrio na FileListBox; ela tambm
exibe o caminho completo do diretrio no controle Label. Para testar este exemplo, cole o cdigo na seo Declarations de
um formulrio que contenha o controle Label, um controle DirListBox e um controle FileListBox, e, em seguida, pressione
F5. Clique duas vezes em um diretrio para alterar o caminho.
Private Sub File1_PathChange ()
Label1.Caption = "Path: " & Dir1.Path ' Mostrar o caminho em Label.
End Sub
Private Sub Dir1_Change ()
File1.Path = Dir1.Path
End Sub

' Definir o caminho do arquivo.

Private Sub Form_Load ()


Label1.Caption = "Path: " & Dir1.Path ' Mostrar o caminho em Label.
End Sub

Funes Internas

282

Exemplo de evento PatternChange


Este exemplo atualiza um controle FileListBox contendo arquivos que correspondem ao padro inserido em um controle
TextBox. Caso um caminho completo seja inserido na TextBox, por exemplo, C:\BIN\*.EXE, o texto automaticamente
dividido nos componentes padro e caminho. Para testar este exemplo, cole o cdigo na seo Declarations de um
formulrio que contenha um controle TextBox, um controle Label, um controle FileListBox e um controle
CommandButton e, em seguida, pressione F5 e digite um padro vlido de arquivo em TextBox.
Private Sub Form_Load ()
Command1.Default = True
' Definir a propriedade Default.
Command1.Caption = "O"
' Definir Caption.
End Sub
Private Sub Command1_Clic () ' Boto O clicado.
' O texto dividido nos componentes caminho e padro.
File1.FileName = Text1.Text
Label1.Caption = "Path: " & File1.Path
End Sub
Private Sub File1_PatternChange ()
Text1.Text = File1.Pattern ' Definir o Text como o novo padro.
End Sub

Exemplo de evento QueryUnload


Este exemplo utiliza um objeto MDIForm contendo dois formulrios filhos MDI. Ao se escolher o comando Close no menu
Control para fechar o formulrio, uma mensagem exibida diferente da que seria exibida se fosse escolhido o comando
Exit do menu File. Para testar este exemplo, crie um MDIForm e, em seguida, utilize o Menu Editor para criar um menu
File contendo um comando Exit chamado FileExit. Certifique-se de que este item de menu esteja ativo. No Form1, defina a
propriedade MDIChild como True. Cole o cdigo nas sees Declarations dos respectivos formulrios e, em seguida,
pressione F5 para executar o programa.
' Colar na seo Declarations de MDIForm1.
Private Sub MDIForm_Load ()
Dim NewForm As New Form1 ' Nova ocorrncia de Form1.
NewForm.Caption = "Form2" ' Definir a legenda e exibir.
End Sub
Private Sub FileExit_Clic ()
Unload MDIForm1
' Sair do aplicativo.
End Sub
Private Sub MDIForm_QueryUnload (Cancel As Integer, UnloadMode As Integer)
Dim Msg' Declarar a varivel.
' Definir o texto da mensagem.
Msg = "Do you really want to exit the application?"
' Se o usurio clica no boto No, encerre QueryUnload.
If MsgBox(Msg, vbQuestion + vbYesNo, Me.Caption) = vbNo Then Cancel = True
End Sub
' Colar na seo Declarations de Form1.
Private Sub Form_QueryUnload (Cancel As Integer, UnloadMode As Integer)
Dim Msg' Declarar a varivel.
If UnloadMode > 0 Then
' Se estiver saindo do aplicativo.
Msg = "Do you really want to exit the application?"
Else
' Se estiver fechando o formulrio.
Msg = "Do you really want to close the application?"
End If
' Se o usurio clicar no boto No, interrompa QueryUnload.
If MsgBox(Msg, vbQuestion + vbYesNo, Me.Caption) = vbNo Then Cancel = True
End Sub

Exemplo de evento Resize


Este exemplo redimensiona automaticamente um controle TextBox para preencher o formulrio sempre que o formulrio
for redimensionado. Para testar este exemplo, cole o cdigo na seo Declarations de um formulrio de propriedade
MultiLine que contenha uma TextBox. Defina a propriedade MultiLine do controle TextBox como True, sua propriedade
ScrollBars como 3 e sua propriedade BorderStyle como 0; em seguida, pressione F5 e redimensione o formulrio.
Private Sub Form_Load ()
Text1.Text = ""
' Limpar o texto.
End Sub
Private Sub Form_Resize ()
Text1.Move 0,0, ScaleWidth, ScaleHeight
End Sub

Funes Internas

283

Exemplo de evento Scroll


Este exemplo altera o tamanho de um controle Shape para corresponder ao valor de uma barra de rolagem horizontal
(HScrollBar) medida que voc arrasta a caixa de rolagem pela barra de rolagem. Para testar este exemplo, cole o cdigo
na seo Declarations de um formulrio contendo um controle Shape, um controle Label e um controle HScrollBar. Defina
a propriedade Index do controle Shape como 0 para criar uma matriz de controle. A seguir, pressione F5 e mova a barra de
rolagem.
Private Sub Form_Load ()
' Mover e dimensionar o primeiro controle Shape.
Shape1(0).Move HScroll1.Left, HScroll1.Top * 1.5, HScroll1.Width, HScroll1.Height
Label1.Caption = "" ' Definir a legenda de Label.
Load Shape1(1) ' Criar um segundo Shape.
' Mover e dimensionar o segundo controle Shape.
Shape1(1).Move Shape1(0).Left, Shape1(0).Top, 1, Shape1(0).Height
Shape1(1).BacStyle = 1 ' Definir BacStyle como Opaco.
Shape1(1).Visible = True ' Exibir a segunda Shape.
HScroll1.Min = 1 ' Definir os valores da barra de rolagem.
HScroll1.Max = HScroll1.Width
End Sub
Private Sub HScroll1_Change ()
Label1.Caption = "Changed"
End Sub

' Exibir mensagem aps a alterao.

Private Sub HScroll1_Scroll ()


Shape1(1).BacColor = &HFF0000 ' Definir a cor de Shape como Azul.
Label1.Caption = "Changing" ' Exibir mensagem durante a rolagem.
Shape1(1).Width = HScroll1.Value ' Dimensionar Shape como Scroll Value.
End Sub

Exemplo de evento Timer


Este exemplo demonstra um relgio digital. Para testar este exemplo, cole o cdigo na seo Declarations de um formulrio
que contenha um controle Label e um controle Timer e, em seguida, pressione F5.
Private Sub Form_Load ()
Timer1.Interval = 1000
' Definir o intervalo de Timer.
End Sub
Private Sub Timer1_Timer ()
Label1.Caption = Time
End Sub

' Atualizar a exibio da hora.

Este exemplo move um controle PictureBox por um formulrio. Para testar este exemplo, cole o cdigo na seo
Declarations de um formulrio que contenha um controle Timer e um controle PictureBox e, em seguida, pressione F5.
Para um efeito visual melhor, pode-se atribuir um bitmap PictureBox usando a propriedade Picture.
Dim DeltaX, DeltaY As Integer ' Declarar variveis.
Private Sub Timer1_Timer ()
Picture1.Move Picture1.Left + DeltaX, Picture1.Top + DeltaY
If Picture1.Left < ScaleLeft Then DeltaX = 100
If Picture1.Left + Picture1.Width > ScaleWidth + ScaleLeft Then
DeltaX = -100
End If
If Picture1.Top < ScaleTop Then DeltaY = 100
If Picture1.Top + Picture1.Height > ScaleHeight + ScaleTop Then
DeltaY = -100
End If
End Sub
Private Sub Form_Load ()
Timer1.Interval = 1000
' Definir Interval.
DeltaX = 100 ' Inicializar variveis.
DeltaY = 100
End Sub

Exemplo de evento Unload


Este exemplo demonstra um procedimento simples para fechar um formulrio ,enquanto so apresentadas ao usurio
diversas caixas de mensagem. Em um aplicativo real, pode-se adicionar chamadas a procedimentos Sub de uso geral que
emulem o processamento dos comandos Exit, Save e Save As do menu File do Visual Basic. Para testar este exemplo, cole
o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5. Uma vez que o formulrio tenha sido
exibido, pressione ALT+F4 para fech-lo.
Private Sub Form_Unload (Cancel As Integer)
Dim Msg, Response ' Declarar variveis.
Msg = "Save Data before closing?"

Funes Internas

284

Response = MsgBox(Msg, vbQuestion + vbYesNoCancel, "Save Dialog")


Select Case Response
Case vbCancel ' No permitir o fechamento.
Cancel = -1
Msg = "Command has been closed."
Case vbYes
' Digite o cdigo para salvar dados aqui.
Msg = "Data saved."'
Case vbNo
Msg = "Data not saved."
End Select
MsgBox Msg, vbOOnly, "Confirm" ' Exibir mensagem.
End Sub

Evento ItemChec
Ocorre quando a propriedade Style de um controle ListBox configurada como 1 (caixas de seleo) e a caixa de seleo
de um item no controle ListBox est selecionada ou limpa.
Sintaxe
Private Sub object_ItemChec([index As Integer])
A sintaxe do evento ItemChec tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
index
Um inteiro que identifica com exclusividade o item na caixa de listagem
que foi clicado.
Comentrios
Observao: O evento ItemChec no ocorre quando um item de lista est apenas selecionado; ao invs, ele ocorre
quando a caixa de seleo do item da lista est selecionada ou em branco.
O evento ItemChec tambm pode ocorrer por meio de programa sempre que um elemento em uma matriz Selected da
ListBox alterado (e sua propriedade Style configurada como 1.)
O evento ItemChec ocorre antes do evento Clic.

Objeto Screen
Manipula formulrios de acordo com sua posio na tela e controla o ponteiro do mouse fora dos formulrios de seu
aplicativo durante o tempo de execuo. O objeto Screen acessado com a palavra-chave Screen.
Sintaxe
Screen
Comentrios
O objeto Screen a rea de trabalho inteira do Windows. Usando o objeto Screen, voc pode configurar a propriedade
MousePointer do objeto Screen como a ampulheta ponteiro enquanto um formulrio de janela estrita exibido.

Mtodo Refresh
Fora uma atualizao grfica completa de um formulrio ou controle.
Sintaxe
object.Refresh
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Use o mtodo Refresh quando quiser:
Exibir completamente um formulrio enquanto outro formulrio est sendo carregado.
Atualizar o contedo de uma caixa de listagem do sistema de arquivos como, por exemplo, o controle FileListBox.
Atualizar as estruturas de dados de um controle Data.
Refresh no pode ser usada em formulrios MDI, mas pode ser usado em formulrios MDI filho. Voc no pode usar
Refresh em controles Menu ou Timer.
Geralmente, a pintura de um formulrio ou controle tratada automaticamente enquanto nenhum evento est ocorrendo.
Entretanto, podem ocorrer situaes onde voc deseje que o formulrio ou controle seja atualizado imediatamente. Por
exemplo, se voc usar uma caixa de listagem de arquivo, uma caixa de listagem de diretrio ou uma caixa de listagem de
drive para exibir o status atual da estrutura do diretrio, voc pode usar Refresh para atualizar a lista toda vez que ocorrer
uma alterao na estrutura do diretrio.
Voc pode usar o mtodo Refresh em um controle Data para abrir ou reabrir o banco de dados (se as configuraes da
propriedade DatabaseName, ReadOnly, Exclusive ou Connect tiverem sofrido alterao) e recriar o dynaset na
propriedade Recordset do controle.

Exemplo do mtodo Refresh


Este exemplo usa o mtodo Refresh para atualizar um controle FileListBox medida que arquivos de teste so criados.
Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio com um controle FileListBox
chamado File1 e, em seguida, execute o exemplo e clique no formulrio.
Private Sub Form_Clic ()
' Declarar variveis.
Funes Internas

285

Dim FilName, Msg as String, I as Integer


File1.Pattern = "TestFile.*" ' Definir o padro do arquivo.
For I = 1 To 8 ' Executar oito vezes.
FilName = "TESTFILE." & I
' Criar um arquivo vazio.
Open FilName For Output As FreeFile
File1.Refresh' Atualizar a caixa de listagem de arquivos.
Close ' Fechar o arquivo.
Next I
Msg = "Escolher O para remover os arquivos de teste criados."
MsgBox Msg ' Exibir a mensagem.
ill "TESTFILE.*" ' Remover os arquivos de teste.
File1.Refresh' Atualizar a caixa de listagem de arquivos.
End Sub

Mtodo SetFocus
Move o foco para o controle ou formulrio especificado.
Sintaxe
object.SetFocus
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O objeto precisa ser um objeto Form, objeto MDIForm ou controle que possa receber o foco. Aps acionar o mtodo
SetFocus, qualquer entrada do usurio direcionada ao formulrio ou controle especfico.
Voc somente pode mover o foco para um formulrio ou controle visvel quando um formulrio e controles em um
formulrio no esto visveis, at que o evento Load do formulrio tenha terminado, voc no pode usar o mtodo
SetFocus para mover o foco para o formulrio que est sendo carregado em seu prprio evento Load, a menos que
primeiro voc utilize o mtodo Show para exibir o formulrio, antes que o procedimento de evento Form_Load tenha
terminado.
Voc tambm no pode mover o foco para um formulrio ou controle se a propriedade Enabled estiver configurada como
False. Se a propriedade Enabled estiver configurada como False durante o tempo de criao, voc deve primeiro
configur-la como True antes que ela possa receber o foco, usando o mtodo SetFocus.

Evento DblClic
Ocorre quando o usurio pressiona e solta o boto do mouse e, em seguida, pressiona e solta novamente sobre um objeto.
Para um formulrio, o evento DblClic ocorre quando o usurio clica duas vezes em um controle desativado ou rea vazia de
um formulrio. Para um controle, ele ocorre quando o usurio:
Clica duas vezes em um controle com o boto esquerdo do mouse.
Clica duas vezes em um item em um controle ComboBox cuja propriedade Style esteja configurada como 1 (Simples) ou
em um controle FileListBox, ListBox, DBCombo ou DBList.
Sintaxe
Private Sub Form_DblClic ( )
Private Sub object_DblClic (index As Integer)
Parte

Descrio

object

Uma expresso de objeto que avalia para um objeto na lista Applies To.

index

Identifica o controle se ele estiver em uma matriz de controle.

Comentrios
O argumento Index identifica com exclusividade um controle se ele estiver em uma matriz de controle. Voc pode usar um
procedimento de evento DblClic para uma ao implcita como, por exemplo, clicar duas vezes em um cone para abrir uma
janela ou documento. Voc tambm pode usar este tipo de procedimento para executar mltiplas etapas com uma nica
ao, como clicar duas vezes para selecionar um item em uma caixa de listagem e para fechar a caixa de dilogo.
Para produzir estes efeitos de atalho em Visual Basic, voc pode usar um procedimento de evento DblClic para uma caixa
de listagem ou arquivo de caixa de listagem em conjunto com um boto padro um controle CommandButton com sua
propriedade Default configurada como True. Como parte do procedimento de evento DblClic para a caixa de listagem, voc
simplesmente chama o evento Clic do boto padro.
Para aqueles objetos que recebem eventos de mouse, os eventos ocorrem nesta ordem: MouseDown, MouseUp, Clic,
DblClic e MouseUp.
Se DblClic no ocorrer dentro do limite de tempo de dupla clicagem do sistema, o objeto reconhecer outro evento Clic. O
limite de tempo de dupla clicagem pode variar porque o usurio pode configurar a velocidade de dupla clicagem no Painel
de controle. Quando voc est anexando procedimentos para estes eventos relacionados, certifique-se de que suas aes
no entrem em conflito. Os controles que no recebem eventos DblClic podem receber dois cliques ao invs de um DblClic.
Observao:
Para distinguir entre os botes esquerdo, direito e central do mouse, use os eventos MouseDown e
MouseUp.
Se existir cdigo no evento Clic, o evento DblClic nunca ser disparado.

Exemplo do evento DblClic


Funes Internas

286

Este exemplo exibe um item de lista selecionado em um controle TextBox quando o controle CommandButton clicado
ou quando um item de lista clicado duas vezes. Para experimentar este exemplo, cole o cdigo na seo Declarations de
um objeto Form que contenha um controle ListBox, um controle TextBox e um controle CommandButton. Em seguida,
execute o exemplo e clique no controle CommandButton ou clique duas vezes em um item do controle ListBox.
Private Sub Form_Load ()
List1.AddItem "John" ' Adicionar entradas na caixa de listagem.
List1.AddItem "Paul"
List1.AddItem "George"
List1.AddItem "Ringo"
End Sub
Private Sub List1_DblClic ()
Command1.Value = True ' Disparar o evento Clic.
End Sub
Private Sub Command1_Clic ()
Text1.Text = List1.Text ' Exibir a seleo.
End Sub

Propriedade HelpFile (App, CommonDialog, MenuLine)


Especifica o caminho e o nome de um arquivo da Ajuda do Microsoft Windows usado pelo seu aplicativo para exibir a
Ajuda ou documentao on-line.
Sintaxe
object.HelpFile[ = filename]
A sintaxe da propriedade HelpFile tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
filename
Uma expresso de seqncia de caracteres especificando o
caminho e nome de arquivo do arquivo da Ajuda do Windows para
seu aplicativo.
Comentrios
Se voc criou um arquivo da Ajuda do Windows para o seu aplicativo e configurou a propriedade HelpFile do aplicativo, o
Visual Basic chama automaticamente a Ajuda quando o usurio pressiona a tecla F1. Se existir um nmero de contexto na
propriedade HelpContextID para o controle ativo ou para o formulrio ativo, a Ajuda exibir um tpico correspondente ao
contexto da Ajuda atual. De outra forma, ela exibir a tela de contedo principal.
Voc tambm pode usar a propriedade HelpFile para determinar qual arquivo da Ajuda ser exibido quando o usurio
pedir Ajuda no Object Browser para um componente ActiveX.
Observao: Criar um arquivo da Ajuda exige o Microsoft Windows Help Compiler, que est disponvel com o Visual
Basic, Professional Edition.

Exemplo da propriedade HelpFile


Este exemplo usa tpicos no arquivo do Visual Basic Help e demonstra como especificar nmeros de contexto para tpicos
da Ajuda . Para experimentar este exemplo, cole o cdigo na seo Declarations de um objeto Form que contenha um
controle TextBox e um controle Frame com um controle OptionButton dentro dele. Execute o exemplo. Uma vez que o
programa esteja sendo executado, mova o foco at um dos componentes e pressione F1.
' Os nmeros de contexto efetivos do arquivo do Visual Basic Help.
' Definir constantes.
Const winPictureBox = 2016002
Const winCommandButton = 2007557
Private Sub Form_Load ()
App.HelpFile = "VB5.HLP"
Text1.HelpContextID = winPictureBox
Form1.HelpContextID = winCommandButton
End Sub

Objeto Clipboard
Proporciona o acesso rea de transferncia do sistema.
Sintaxe
Clipboard
Comentrios
O objeto Clipboard usado para manipular texto e elementos grficos na rea de transferncia. Voc pode usar este
objeto para permitir que um usurio copie, recorte e cole texto ou elementos grficos em seu aplicativo. Antes de copiar
qualquer material para o objeto Clipboard, voc deve limpar seu contedo executando um mtodo Clear como, por
exemplo, Clipboard.Clear.
Funes Internas

287

Observe que o objeto Clipboard compartilhado por todos os aplicativos do Windows e, portanto, o contedo est sujeito a
alterao quando se alterna para outro aplicativo.
O objeto Clipboard pode conter diversos fragmentos de dados, desde que cada fragmento esteja em um formato diferente.
Por exemplo voc pode usar o mtodo SetData para colocar um bitmap na rea de transferncia com o formato vbCFDIB
e, em seguida, usar o mtodo SetText com o formato vbCFText para colocar texto na rea de transferncia. Em seguida,
voc pode usar o mtodo GetText para recuperar o texto ou o mtodo GetData para recuperar o elemento grfico. Dados
na rea de transferncia estaro perdidos quando outro conjunto de dados do mesmo formato for colocado na rea de
transferncia atravs de cdigo ou de um comando de menu.

Objeto Printer, Coleo Printers


O objeto Printer permite que voc se comunique com uma impressora do sistema (inicialmente a impressora padro do
sistema).
A coleo Printers permite que voc reuna informaes sobre as impressoras disponveis no sistema.
Sintaxe
Printer
Printers(index)
O espao reservado index representa um nmero inteiro com um intervalo de 0 a Printers.Count-1.
Comentrios
Use mtodos grficos para desenhar texto ou elementos grficos no objeto Printer. Uma vez que o objeto Printer contm o
resultado que voc deseja imprimir, voc pode usar o mtodo EndDoc para enviar o resultado diretamente impressora
padro do aplicativo.
Voc deve verificar, e possivelmente revisar o layout de seus formulrios se voc os imprime. Se voc usa o mtodo
PrintForm para imprimir um formulrio, por exemplo, imagens grficas podem ser recortadas na parte inferior da pgina, e
o texto transportando para a pgina seguinte.
A coleo Printers permite que voc consulte as impressoras disponveis, de modo que se possa especificar uma
impressora padro para seu aplicativo. Por exemplo, caso voc queira descobrir qual das impressoras disponveis utiliza
um driver de impressora especfico. O cdigo abaixo pesquisa todas as impressoras disponveis para localizar a primeira
impressora com sua orientao de pgina configurada como retrato, e a define como impressora padro:
Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
' Configurar impressora como padro do sistema.
Set Printer = X
' Encerrar a procura de impressora.
Exit For
End If
Next
Voc designa uma das impressoras da coleo Printers como impressora padro usando a instruo Set. O exemplo
anterior designa a impressora identificada pela varivel de objeto X, a impressora padro do aplicativo.
Observao: Se voc usa a coleo Printers para especificar uma determinada impressora, como em Printers(3), voc
somente pode acessar propriedades somente para leitura. Para ler e gravar as propriedades de uma impressora individual,
voc deve primeiro tornar esta impressora a impressora padro do aplicativo.

Objeto Font
O objeto Font contm informaes necessrias para formatar o texto para ser exibido na interface de um aplicativo ou para
resultado impresso.
Sintaxe
Font
Comentrios
Com freqncia, voc identifica um objeto Font usando a propriedade Font de um objeto que exibe texto (por exemplo, um
objeto Form ou o objeto Printer).
Voc no pode criar um objeto Font usando cdigo do tipo Dim X As New Font. Se voc deseja criar um objeto Font, deve
usar o objeto StdFont assim:
Dim X As New StdFont
Se voc coloca um controle TextBox chamado Text1 em um formulrio, pode alterar dinamicamente seu objeto Font para
outro usando a instruo Set, como no exemplo abaixo:
Dim X As New StdFont
X.Bold = True
X.Name = "Arial"
Set Text1.Font = X

Instruo Load
Carrega um formulrio ou controle na memria.
Sintaxe
Load object

Funes Internas

288

O espao reservado object o nome de um objeto Form, objeto MDIForm ou elemento de matriz de controle a ser
carregado.
Comentrios
Voc no precisa usar a instruo Load com formulrios, a menos que queira carregar um formulrio sem exibi-lo.
Qualquer referncia a um formulrio (exceto em uma instruo Set ou If...TypeOf) carrega-o automaticamente, se ele ainda
no tiver sido carregado. Por exemplo, o mtodo Show carrega um formulrio antes de exibi-lo. Uma vez que o formulrio
tenha sido carregado, suas propriedades e controles podem ser alterados pelo aplicativo, esteja o formulrio visvel ou no.
Sob determinadas circunstncias, voc pode carregar todos os seus formulrios durante a inicializao e os exibir
posteriormente, medida que forem necessrios.
Quando o Visual Basic carrega um objeto Form, ele configura as propriedades do formulrio como seus valores iniciais e,
em seguida, executa o procedimento de evento Load. Quando o aplicativo iniciado, o Visual Basic carrega
automaticamente e exibe o formulrio de inicializao do aplicativo.
Se voc carrega um Form cuja propriedade MDIChild esteja configurada como True (em outras palavras, o formulrio filho)
antes de carregar um MDIForm, o MDIForm automaticamente carregado antes do formulrio filho. Formulrios MDI filho
no podem ser ocultados e, assim, so imediatamente visveis aps o final do procedimento de evento Form_Load.
As caixas de dilogo padro produzidas por funes do Visual Basic como, por exemplo MsgBox e InputBox no precisam
ser carregadas, exibidas ou descarregadas, mas podem simplesmente ser acionadas de maneira direta.

Exemplo da instruo Load


Este exemplo usa a instruo Load para carregar um objeto Form. Para experimentar este exemplo, cole o cdigo na
seo Declarations de um objeto Form e, em seguida, execute o exemplo e clique no objeto Form.
Private Sub Form_Clic ()
Dim Answer, Msg as String' Declarar varivel.
Unload Form1
' Descarregar o formulrio.
Msg = "Form1 foi descarregado. Escolha Yes para carregar e "
Msg = Msg & "exibir o formulrio. Escolha No para carregar o formulrio "
Msg = Msg & "e deix-lo invisvel."
Answer = MsgBox(Msg, vbYesNo) ' Obter a resposta do usurio.
If Answer = vbYes Then
' Avaliar a resposta.
Show ' Se for Yes, exibir o formulrio.
Else
Load Form1 ' Se for No, apenas carregue-o.
Msg = "Form1 est agora carregado. Escolha O para exib-lo."
MsgBox Msg ' Exibir mensagem.
Show ' Exibir o formulrio.
End If
End Sub

Instruo Unload
Descarrega um formulrio ou controle da memria.
Sintaxe
Unload object
O espao reservado object o nome de um objeto Form ou elemento de matriz de controle a ser descarregado.
Comentrios
A descarga de um formulrio ou controle pode ser necessria ou conveniente em alguns casos em que a memria usada
necessria para alguma outra coisa ou quando voc precisa reconfigurar propriedades como seus valores originais.
Antes que um formulrio seja descarregado, ocorrer o procedimento de evento Query_Unload, seguido do procedimento
de evento Form_Unload. Configurar o argumento cancel como True em qualquer um destes eventos impede que o
formulrio seja descarregado. Para objetos MDIForm o procedimento de evento Query_Unload do objeto MDIForm ocorre
seguido do procedimento de evento Query_Unload e procedimento de evento Form_Unload para cada formulrio MDI filhoe
finalmente o procedimento de evento Form_Unload do objeto MDIForm.
Quando um formulrio descarregado, todos os controles colocados no formulrio durante o tempo de execuo no so
mais acessveis. Os controles colocados no formulrio durante o tempo de criao permanecem intactos; qualquer
alterao durante o tempo de execuo para aqueles controles e suas propriedades so perdidas quando o formulrio
recarregado. Todas as alteraes de propriedades de formulrio tambm se perdem. O acesso a qualquer controle no
formulrio provoca sua recarga.
Observao: Quando um formulrio descarregado, somente o componente exibido descarregado. O cdigo associado
ao mdulo de formulrio permanece na memria.
Somente elementos de matriz de controle adicionados a um formulrio durante o tempo de execuo podem ser
descarregados com a instruo Unload. As propriedades de controles descarregados so reinicializadas quando os
controles so recarregados.

Exemplo da instruo Unload


Este exemplo utiliza a instruo Unload para descarregar um objeto Form. Para experimentar este exemplo, cole o cdigo
na seo Declarations de um objeto Form e, em seguida, execute o exemplo e clique no objeto Form.
Private Sub Form_Clic ()
Dim Answer, Msg ' Declarar varivel.
Unload Form1
' Descarregar o formulrio.

Funes Internas

289

Msg = "Form1 foi descarregado. Escolha Yes para carregar e "


Msg = Msg & "exibir o formulrio. Escolha No para carregar o formulrio "
Msg = Msg & "e deix-lo invisvel."
Answer = MsgBox(Msg, vbYesNo) ' Obter a resposta do usurio.
If Answer = vbYes Then
' Avaliar a resposta.
Show ' Se Yes, exibir o formulrio.
Else
Load Form1 ' Se No, apenas carregue-o.
Msg = "Form1 est agora carregado. Escolha O para exibi-lo."
MsgBox Msg ' Exibir a mensagem.
Show ' Exibir o formulrio.
End If
End Sub

Funo LoadPicture
Carrega um elemento grfico na propriedade Picture de um formulrio, controle PictureBox ou controle Image.
Sintaxe
LoadPicture([stringexpression])
O argumento stringexpression o nome de um arquivo de elementos grficos a ser carregado.
Comentrios
Os formatos grficos reconhecidos pelo Visual Basic incluem arquivos de bitmap (.bmp), arquivos de cones (.ico), arquivos
codificados run-length (.rle), metarquivos (.wmf), metarquivos aprimorados (.emf), arquivos GIF e arquivos JPEG (.jpg).
Os elementos grficos so apagados de formulrios, caixas de figura e controles de imagem atribuindo LoadPicture sem
argumento.
Para carregar elementos grficos para exibio em um controle PictureBox, controle Image ou como segundo plano de um
formulrio, o valor de retorno de LoadPicture deve ser atribudo propriedade Picture do objeto onde a figura exibida.
Por exemplo:
Set Picture = LoadPicture("PARTY.BMP")
Set Picture1.Picture = LoadPicture("PARTY.BMP")
Para designar um cone a um formulrio, configure o valor de retorno da funo LoadPicture como a propriedade Icon do
objeto Form:
Set Form1.Icon = LoadPicture("MYICON.ICO")
Os cones tambm podem ser atribudos propriedade DragIcon de todos os controles, exceto controles Timer e controles
Menu. Por exemplo:
Set Command1.DragIcon = LoadPicture("MYICON.ICO")
Carregue um arquivo de elementos grficos na rea de transferncia usando LoadPicture como a seguir:
Clipboard.SetData LoadPicture("PARTY.BMP")

Exemplo da funo LoadPicture


Este exemplo usa a funo LoadPicture para carregar uma figura na propriedade Picture de um formulrio e apagar a
figura do objeto Form. Para experimentar este exemplo, cole o cdigo na seo Declarations de um objeto Form e, em
seguida, execute o exemplo e clique no objeto Form.
Private Sub Form_Clic ()
Dim Msg as String
' Declarar variveis.
On Error Resume Next
' Configurar o tratamento de erro.
Height = 3990
Width = 4890' Configurar a altura e largura.
Set Picture = LoadPicture("PAPER.BMP")
' Carregar o bitmap.
If Err Then
Msg = "No foi possvel encontrar o arquivo .BMP."
MsgBox Msg ' Exibir as mensagem de erro.
Exit Sub ' Sair se ocorrer erro.
End If
Msg = "Escolher O para limpar o bitmap do formulrio."
MsgBox Msg
Set Picture = LoadPicture()
' Limpar o formulrio.
End Sub

Instruo SavePicture
Salva um elemento grfico da propriedade Picture ou Image de um objeto ou controle (se algum estiver associado a ele)
em um arquivo.
Sintaxe
SavePicture picture, stringexpression
Funes Internas

290

A sintaxe da instruo SavePicture tem estas partes:


Parte
Descrio
picture
Controle Picture ou Image de onde o arquivo de elementos
grficos deve ser criado.
Stringexpression
Nome de arquivo do arquivo de elementos grficos a ser salvo.
Comentrios
Se um elemento grfico foi carregado de um arquivo para a propriedade Picture de um objeto durante o tempo de criao
ou durante o tempo de execuo e ele um bitmap, cone, metarquivo ou metarquivo aprimorado, ele ento salvo usando
o mesmo formato que o arquivo original. Se ele for um arquivo GIF ou JPEG, ele salvo como um arquivo de bitmap.
Elementos grficos em uma propriedade Image so sempre salvos como arquivos de bitmap (.bmp), independente dos
formatos originais.

Exemplo da instruo SavePicture


Este exemplo usa a instruo SavePicture para salvar um elemento grfico desenhado na propriedade Picture de um
objeto Form. Para experimentar este exemplo, cole o cdigo na seo Declarations de um objeto Form e, em seguida,
execute o exemplo e clique no objeto Form.
Private Sub Form_Clic ()
' Declarar variveis.
Dim CX, CY, Limit, Radius as Integer, Msg as String
ScaleMode = vbPixels ' Configurar a escala como pixels.
AutoRedraw = True ' Ativar o AutoRedraw.
Width = Height ' Alterar largura para corresponder altura.
CX = ScaleWidth / 2 ' Configurar a posio X.
CY = ScaleHeight / 2 ' Configurar a posio Y.
Limit = CX ' Limitar o tamanho de crculos.
For Radius = 0 To Limit
' configurar o raio.
Circle (CX, CY), Radius, RGB(Rnd * 255, Rnd * 255, Rnd * 255)
DoEvents
' Passar a outro processamento.
Next Radius
Msg = "Escolha O para salvar os elementos grficos deste formulrio "
Msg = Msg & "em um arquivo de bitmap."
MsgBox Msg
SavePicture Image, "TEST.BMP" ' Salvar a figura em um arquivo.
End Sub

Mtodo Circle
Desenha um crculo, elipse ou arco em um objeto.
Sintaxe
object.Circle [Step] (x, y), radius, [color, start, end, aspect]
A sintaxe do mtodo Circle tem os seguintes qualificadores de objeto e partes.
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o Form com o foco seja object.
Step
Opcional. Palavra-chave especificando que o centro do
crculo, elipse ou arco relativo s coordenadas atuais
fornecidas pelas propriedades CurrentX e CurrentY de
object.
(x, y)
Obrigatrio. Valores Single indicando as coordenadas do
ponto central do crculo, elipse ou arco. A propriedade
ScaleMode de object determina a unidade de medida a ser
usada.
radius
Obrigatrio. Valor Single indicando o raio do crculo, elipse
ou arco. A propriedade ScaleMode de object determina a
unidade de medida usada.
color
Opcional. Valor inteiro Long indicando a cor RGB do
contorno do crculo. Se omitido, o valor da propriedade
ForeColor usado. Voc pode usar a funo RGB ou a
funo QBColor para especificar a cor.
start, end
Opcional. Valores de preciso simples. Quando um arco,
crculo parcial ou elipse desenhado, start e end especificam
(em radianos) as posies de incio e fim do arco. O intervalo
para ambos -2 pi radianos a 2 pi radianos. O valor padro
para start 0 radianos; o padro para end 2 * pi radianos.
aspect
Opcional. Valor de preciso simples indicando a relao de
aspecto do crculo. O valor padro 1.0, que produz um
Funes Internas

291

crculo perfeito (no-elptico) em qualquer tela.


Comentrios
Para preencher um crculo, configure as propriedades FillColor e FillStyle do objeto no qual desenhado o crculo ou
elipse. Somente figuras fechadas podem ser preenchidas. Figuras fechadas incluem crculos, elipses ou pedaos de pizza
(arcos com linhas de raio em ambas as extremidades).
Ao desenhar um crculo parcial ou elipse, se start for negativo, Circle desenha um raio at start, e trata o ngulo como
positivo; se end for negativo, Circle desenha um raio at end e trata o ngulo como positivo. O mtodo Circle sempre
desenha em sentido anti-horrio (positivo).
A espessura da linha usada para desenhar o crculo, elipse ou arco depende da configurao da propriedade DrawWidth. A
maneira como o crculo desenhado em segundo plano depende da configurao das propriedades DrawMode e
DrawStyle.
Ao desenhar pedaos de pizza, para traar um raio com ngulo 0 (produzindo um segmento de linha horizontal direita)
especifique um nmero negativo muito pequeno para start, ao invs de zero.
Voc pode omitir um argumento no meio da sintaxe, mas precisa incluir a vrgula do argumento antes de incluir o prximo
argumento. Se omitir um argumento opcional, omita a virgula que acompanha o ltimo argumento especificado.
Quando Circle executado, as propriedades CurrentX e CurrentY so configuradas como ponto central especificado
pelos argumentos.
Este mtodo no pode ser usado em um bloco WithEnd With.

Exemplo do mtodo Circle


Este exemplo usa o mtodo Circle para desenhar alguns crculos concntricos no centro de um formulrio. Para
experimentar este exemplo, cole o cdigo na seo General de um formulrio. Em seguida, pressione F5 e clique no
formulrio.
Sub Form_Clic ()
Dim CX, CY, Radius, Limit ' Declarar varivel.
ScaleMode = 3 ' Configurar a escala como pixels.
CX = ScaleWidth / 2 ' Configurar a posio X.
CY = ScaleHeight / 2 ' Configurar a posio Y.
If CX > CY Then Limit = CY Else Limit = CX
For Radius = 0 To Limit
' configurar o raio.
Circle (CX, CY), Radius,RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next Radius
End Sub

Mtodo Line
Desenha linhas e retngulos em um objeto.
Sintaxe
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
A sintaxe do mtodo Line tem os seguintes qualificadores de objeto e partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se o objeto for omitido, presume-se
que o Form com o foco seja object.
Step
Opcional. Palavra-chave especificando que as coordenadas
de ponto de partida so relativas posio grfica atual
fornecida pelas propriedades CurrentX e CurrentY.
(x1, y1)
Opcional. Valores Single indicando as coordenadas do ponto
inicial da linha ou retngulo. A propriedade ScaleMode
determina a unidade de medida usada. Se omitida, a linha se
inicia na posio indicada por CurrentX e CurrentY.
Step
Opcional. Palavra-chave especificando que as coordenadas
de ponto final so relativas ao ponto inicial da linha.
(x2, y2)
Obrigatria. Valores Single indicando as coordenadas do
ponto final para a linha que est sendo desenhada.
color
Opcional. Valor inteiro Long indicando o valor RGB usado
para desenhar a linha. Se for omitida, ser usada a
configurao da propriedade ForeColor. Voc pode usar a
funo RGB ou a funo QBColor para especificar a cor.
B
Opcional. Se includo faz com que a caixa seja desenhada
usando as coordenadas para especificar cantos opostos da
caixa.
F
Opcional. Se for usada a opo B, a opo F especifica que
a caixa preenchida com a mesma cor usada para desenhar
a caixa. Voc no pode usar F sem B. Se B for usado sem F,
a caixa preenchida com a FillColor e FillStyle atuais. O
valor padro para FillStyle transparente.

Funes Internas

292

Comentrios
Para desenhar linhas interligadas, comece uma linha subseqente no ponto final da linha anterior.
A espessura da linha desenhada depende da configurao da propriedade DrawWidth. A maneira como uma linha ou caixa
desenhada em segundo plano depende da configurao das propriedades DrawMode e DrawStyle.
Quando Line executado, as propriedades CurrentX e CurrentY so configuradas como o ponto final especificado pelos
argumentos.
Este mtodo no pode ser usado em um bloco WithEnd With.

Exemplo do mtodo Line


Este exemplo usa o mtodo Line para desenhar caixas concntricas em um formulrio. Para experimentar este exemplo,
cole o cdigo na seo General de um formulrio. Em seguida, pressione F5 e clique no formulrio.
Sub Form_Clic ()
Dim CX, CY, F, F1, F2, I ' Declarar variveis
ScaleMode = 3 ' Configurar ScaleMode como pixels.
CX = ScaleWidth / 2 ' Obter o centro horizontal.
CY = ScaleHeight / 2 ' Obter o centro vertical.
DrawWidth = 8 ' Configurar DrawWidth.
For I = 50 To 0 Step -2
F = I / 50' Executar clculos
F1 = 1 - F: F2 = 1 + F ' provisrios.
Forecolor = QBColor(I Mod 15) ' Definir a cor de primeiro plano.
Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF
Next I
DoEvents
' Passar a outro processamento.
If CY > CX Then ' Configurar DrawWidth.
DrawWidth = ScaleWidth / 25
Else
DrawWidth = ScaleHeight / 25
End If
For I = 0 To 50 Step 2 ' Montar loop.
F = I / 50' Executar clculos
F1 = 1 - F: F2 = 1 + F ' provisrios.
Line (CX * F1, CY)-(CX, CY * F1) ' Desenhar superior esquerda.
Line -(CX * F2, CY) ' Desenhar superior direita.
Line -(CX, CY * F2) ' Desenhar inferior direita.
Line -(CX * F1, CY) ' Desenhar inferior esquerda.
Forecolor = QBColor(I Mod 15) ' Alterar a cor a cada vez.
Next I
DoEvents
' Passar a outro processamento.
End Sub

Mtodo PSet
Configura um ponto em um objeto como uma cor especificada.
Sintaxe
object.PSet [Step] (x, y), [color]
A sintaxe do mtodo PSet tem os seguintes qualificadores de objeto e partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o Form com o foco seja object.
Step
Opcional. Palavra-chave especificando que as coordenadas
so relativas posio atual dos elementos grficos dadas
pelas propriedades CurrentX e CurrentY.
(x, y)
Obrigatrio. Valores Single indicando as coordenadas
horizontal (eixo de x) e vertical (eixo de y) do ponto a ser
configurado.
color
Opcional. Valor inteiro Long indicando a cor RGB
especificada para o ponto. Se omitido ser usada a
configurao atual da propriedade ForeColor. Voc pode
usar a funo RGB ou a funo QBColor para especificar a
cor.
Comentrios
O tamanho do ponto desenhado depende da configurao da propriedade DrawWidth. Quando DrawWidth 1, PSet
configura a cor especificada para um nico pixel. Quando DrawWidth maior que 1, o ponto centrado nas coordenadas
especificadas.
A maneira como o ponto desenhado depende da configurao das propriedades DrawMode e DrawStyle.
Quando PSet executado, as propriedades CurrentX e CurrentY so configuradas como o ponto especificado pelos
argumentos.

Funes Internas

293

Para apagar um nico pixel com o mtodo PSet, especifique as coordenadas do pixel e use a configurao da propriedade
BacColor como argumento color.
Este mtodo no pode ser usado em um bloco WithEnd With.

Exemplo do mtodo PSet


Este exemplo usa o mtodo PSet para desenhar confete em um formulrio. Para experimentar este exemplo, cole o cdigo
na seo General de um formulrio. Em seguida, pressione F5 e clique no formulrio.
Sub Form_Clic ()
Dim CX, CY, Msg, XPos, YPos ' Declarar variveis.
ScaleMode = 3 ' Configurar ScaleMode como
' pixels.
DrawWidth = 5 ' Configurar DrawWidth.
ForeColor = QBColor(4) ' Configurar o primeiro plano como vermelho.
FontSize = 24
' Configurar o tamanho do ponto.
CX = ScaleWidth / 2 ' Obter o centro horizontal.
CY = ScaleHeight / 2 ' Obter o centro vertical.
Cls ' Limpar o formulrio.
Msg = "Feliz Ano Novo!"
CurrentX = CX - TextWidth(Msg) / 2 ' Posio Horizontal.
CurrentY = CY - TextHeight(Msg) ' Posio vertical.
Print Msg
' Imprimir mensagem.
Do
XPos = Rnd * ScaleWidth ' Obter posio horizontal.
YPos = Rnd * ScaleHeight ' Obter posio vertical.
PSet (XPos, YPos), QBColor(Rnd * 15)
' Desenhar confete.
DoEvents
' Passar a outro
Loop
' processamento.
End Sub

Mtodo AddItem
Adiciona um item a um controle ListBox ou ComboBox, ou adiciona uma linha a um controle MS Flex Grid. No suporta
argumentos nomeados.
Sintaxe
object.AddItem item, index
A sintaxe do mtodo AddItem tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um objeto na
lista Applies To.
item
Obrigatrio. Expresso de seqncia de caracteres especificando o
item a ser adicionado ao objeto. Somente para o controle MS Flex
Grid, use o caractere de tabulao (cdigo de caractere 90) para
separar seqncias de caracteres mltiplas que voc deseja inserir
em cada coluna de uma linha recm-adicionada.
index
Opcional. Nmero inteiro especificando a posio dentro do objeto
onde o novo item ou linha est colocado. Para o primeiro item em um
controle ListBox ou ComboBox ou para a primeira linha em um
controle MS Flex Grid, index 0.
Comentrios
Se voc fornece um valor vlido para index, item colocado naquela posio dentro de object. Se index omitido, item
adicionado na posio classificada adequada (se a propriedade Sorted estiver configurada como True) ou ao final da lista
(se Sorted for configurado como False).
Um controle ListBox ou ComboBox que seja acoplado a um controle Data no suporta o mtodo AddItem.

Mtodo Arrange
Organiza as janelas ou cones em um objeto MDIForm. No suporta argumentos nomeados.
Sintaxe
object.Arrange arrangement
A sintaxe do mtodo Arrange tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
arrangement
Obrigatrio. Um valor ou constante que especifica como
organizar janelas ou cones em um objeto MDIForm,
conforme descrito em Configuraes.
Configuraes

Funes Internas

294

As configuraes para arrangement so:


Constante
Valor
Descrio
vbCascade
0
Coloca em cascata todos os formulrios MDI
filho no minimizados
vbTileHorizontal
1
Coloca lado a lado horizontalmente todos os
MDI filho no minimizados
vbTileVertical
2
Coloca lado a lado verticalmente todos os
formulrios MDI filho no minimizados
vbArrangeIcons
3
Organiza cones para formulrios MDI filho
minimizados
Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Janelas ou cones so organizados, mesmo se o objeto MDIForm est minimizado. Os resultados so visveis quando
MDIForm maximizado.

Mtodo Clear (Clipboard, ComboBox, ListBox)


Limpa o contedo de uma ListBox, ComboBox ou a rea de transferncia do sistema.
Sintaxe
object.Clear
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Um controle ListBox ou ComboBox acoplado a um controle Data no suporta o mtodo Clear.

Mtodo Cls
Limpa elementos grficos e texto gerado durante o tempo de execuo de um Form ou PictureBox.
Sintaxe
object.Cls
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To. Se object
omitido, pressupe-se que o Form com o foco object.
Comentrios
Cls limpa texto e elementos grficos gerados durante o tempo de execuo por instrues grficas ou de impresso.
Bitmaps de segundo plano configurados usando a propriedade Picture e os controles colocados em um Form durante o
tempo de criao no so afetados por Cls. Elementos grficos e texto colocado em um Form ou PictureBox enquanto a
propriedade AutoRedraw configurada como True no so afetados se AutoRedraw for configurado como False antes
que Cls seja acionado. Isto , voc pode manter texto e elementos grficos em um Form ou PictureBox manipulando a
propriedade AutoRedraw do objeto no qual voc est trabalhando.
Aps Cls ter sido acionado, as propriedades CurrentX e CurrentY do objeto so reconfiguradas como 0.

Mtodo Drag
Inicia, encerra ou cancela uma operao de arraste de qualquer controle, exceto os controles Line, Menu, Shape, Timer
ou CommonDialog. No suporta argumentos nomeados.
Sintaxe
object.Drag action
A sintaxe do mtodo Drag tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, o objeto cujo
procedimento de evento contenha o mtodo Drag ser
assumido.
action
Opcional. Uma constante ou valor que especifica a ao a
ser executada, conforme descrito em Configuraes. Se
action for omitido, o padro iniciar o arraste do objeto.
Configuraes
As configuraes para action so:
Constante
Valor
vbCancel
0
vbBeginDrag
1
vbEndDrag
2

Descrio
Cancela a operao de arraste
Inicia o arraste de object
Encerra o arrastar-e-soltar o object

Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Somente se exige o uso do mtodo Drag para controlar uma operao de arrastar-e-soltar quando a propriedade
DragMode do objeto configurada como Manual (0). Entretanto, voc pode usar Drag em um objeto cuja propriedade
DragMode est configurada como Automatic (1 ou vbAutomatic).

Funes Internas

295

Se voc deseja que o ponteiro do mouse altere sua forma, enquanto o objeto est sendo arrastado, use qualquer uma das
propriedades DragIcon ou MousePointer. A propriedade MousePointer somente usada se nenhum DragIcon for
especificado.
Em verses anteriores do Visual Basic, Drag era um mtodo assncrono onde as instrues subseqentes eram acionadas,
apesar da ao Drag no ter sido encerrada.

Mtodo EndDoc
Encerra uma operao de impresso enviada ao objeto Printer, liberando o documento para o spooler ou dispositivo de
impresso.
Sintaxe
object.EndDoc
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Se EndDoc for imediatamente acionada aps o mtodo NewPage, nenhuma pgina em branco adicional impressa.

Funo GetAutoServerSettings
Retorna informaes sobre o estado do registro de um componente ActiveX.
Sintaxe
object.GetAutoServerSettings([progid], [clsid])
A sintaxe da funo GetAutoServerSettings tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um objeto
na lista Applies To.
progid
Opcional. Uma expresso de variante especificando a ProgID do
componente.
clsid
Opcional. Uma expresso de variante especificando a CLSID do
componente.
Valores de retorno
A funo GetAutoServerSettings retorna uma Variant que contm uma matriz de valores sobre o componente ActiveX em
particular. Os valores de ndice e descries so:
Valor
Descrio
1
Verdadeiro se o componente ActiveX for remotamente registrado.
2
Nome da mquina remota.
3
Nome do protocolo RPC.
4
Nvel de autenticao RPC.
Comentrios
Se um valor estiver faltando ou no estiver disponvel, ele ser uma seqncia de caracteres vazia. Se ocorrer um erro
durante o mtodo, o valor de retorno ser uma Variant do tipo Empty.

Mtodo GetData
Retorna um elemento grfico do objeto Clipboard. No suporta argumentos nomeados.
Sintaxe
object.GetData (format)
A sintaxe do mtodo GetData tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
format
Opcional. Uma constante ou valor que especifica o formato
de elementos grficos do Clipboard, conforme descrito em
Configuraes. A constante ou valor deve estar entre
parnteses. Se format for 0 ou omitido, GetData usa
automaticamente o formato adequado.
Configuraes
As Configuraes de format so:
Constante
Valor
vbCFBitmap
2
vbCFMetafile
3
vbCFDIB
8
vbCFPalette
9

Descrio
Bitmap (arquivos .bmp)
Metarquivo (arquivos .wmf)
Bitmap independente de dispositivo (DIB)
Paleta de cores

Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Se nenhum elemento grfico no objeto Clipboard corresponde ao formato esperado, nada retornado. Se somente uma
paleta de cores estiver presente no objeto Clipboard, um DIB de tamanho mnimo (1 x 1) ser criado.

Funes Internas

296

Mtodo GetFormat
Retorna um nmero inteiro indicando se um item no objeto Clipboard corresponde a um formato especificado. No suporta
argumentos nomeados.
Sintaxe
object.GetFormat (format)
A sintaxe do mtodo GetFormat tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
format
Obrigatrio. Um valor ou objeto que especifica o formato do
objeto Clipboard conforme descrito em Configuraes. O
valor ou constante deve estar entre parnteses.
Configuraes
As configuraes para format so:
Constante
Valor
vbCFLin
&HBF00
vbCFText
1
vbCFBitmap
2
vbCFMetafile
3
vbCFDIB
8
vbCFPalette
9

Descrio
Informaes de conversao DDE
Texto
Bitmap (arquivos .bmp)
Metarquivo (arquivos .wmf)
Bitmap independente de dispositivo (DIB)
Paleta de cores

Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
O mtodo GetFormat retorna True se um item no objeto Clipboard corresponde ao formato especificado. Caso contrrio,
ele retorna False.
Para os formatos vbCFDIB e vbCFBitmap, no importa a paleta de cores usada no Clipboard quando o elemento grfico
exibido.

Mtodo GetText
Retorna uma seqncia de caracteres de texto a partir do objeto Clipboard. No suporta argumentos nomeados.
Sintaxe
object.GetText (format)
A sintaxe do mtodo GetText tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
format
Opcional. Um valor ou constante que especifica o formato do
objeto Clipboard, conforme descrito em Configuraes. O
valor ou constante deve estar entre parnteses.
Configuraes
As configuraes para format so:
Constante
Valor
vbCFLin
&HBF00
vbCFText
1
vbCFRTF
&HBF01

Descrio
Informaes de conversao DDE
(Padro) texto
Rich Text Format (arquivo .rtf)

Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Se nenhuma seqncia de caracteres de texto no objeto Clipboard corresponde ao formato esperado, ser retornada uma
seqncia de caracteres de comprimento zero ("").

Mtodo Hide
Oculta um objeto MDIForm ou Form mas no o descarrega.
Sintaxe
object.Hide
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To. Se object for
omitido, pressupe-se que o formulrio com o foco seja object.
Comentrios
Quando um formulrio est oculto, ele removido da tela e sua propriedade Visible configurada como False. Os
controles de um formulrio oculto no esto acessveis ao usurio, mas eles esto disponveis para o aplicativo do Visual
Basic em execuo, para outros processos que possam estar se comunicando com o aplicativo atravs de DDE e para
eventos do controle Timer.

Funes Internas

297

Quando um formulrio est oculto, o usurio pode interagir com o aplicativo at que todo o cdigo no procedimento de
evento que provocou a ocultao do formulrio tenha encerrado sua execuo.
Se o formulrio no est carregado quando o mtodo Hide acionado, este mtodo carrega o formulrio, mas no o exibe.

Mtodo illDoc
Encerra imediatamente o trabalho de impresso atual.
Sintaxe
object.illDoc
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Se o gerenciador de impresso do sistema operacional est manipulando um trabalho de impresso (o gerenciador de
impresso est sendo executado e tem impresso em segundo plano ativada), illDoc exclui o trabalho de impresso atual,
e a impressora nada recebe.
Se o gerenciador de impresso no estiver manipulando o trabalho de impresso (impresso em segundo plano no est
ativada) alguns, ou todos os dados, podem ser enviados impressora antes que illDoc possa estar efetivo. Neste caso, o
driver de impressora reconfigura a impressora assim que possvel, e encerra o trabalho de impresso.

Mtodo LinExecute
Envia uma seqncia de caracteres de comando ao aplicativo de origem em uma conversao DDE. No suporta
argumentos nomeados.
Sintaxe
object.LinExecute string
A sintaxe do mtodo LinExecute tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
string
Obrigatrio. Expresso de seqncia de caracteres contendo
um comando reconhecido pelo aplicativo de origem.
Comentrios
O valor efetivo de string varia dependendo do aplicativo de origem. Por exemplo, o Microsoft Excel e Microsoft Word for
Windows aceitam seqncias de caracteres de comando que consistem em seus comandos de macro colocados entre
colchetes ([ ]). Para visualizar seqncias de caracteres de comando aceitas por um aplicativo de origem, consulte a
documentao do aplicativo.

Mtodo LinPoe
Transfere o contedo de um controle Label, PictureBox ou TextBox para o aplicativo de origem em uma conversao
DDE.
Sintaxe
object.LinPoe
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O object o nome de um Label, PictureBox ou TextBox envolvido em uma conversao DDE como um destino. Se object
for um Label, LinPoe transfere o contedo da propriedade Caption para a origem. Se object for uma PictureBox, LinPoe
transfere o contedo da propriedade Picture para a origem. Se object for uma TextBox, LinPoe transfere o contedo da
propriedade Text para a origem.
Tipicamente, as informaes em uma conversao DDE fluem da origem para o destino. Entretanto, LinPoe permite que
um objeto de destino fornea dados origem. Nem todos os aplicativos de origem aceitam informaes fornecidas desta
forma; se o aplicativo de origem no aceita os dados, ocorre um erro.

Mtodo LinRequest
Pede ao aplicativo de origem em uma conversao DDE que atualize o contedo de um controle Label, PictureBox ou
TextBox.
Sintaxe
object.LinRequest
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O object o nome de um Label, PictureBox ou TextBox envolvido em uma conversao DDE como um destino.
LinRequest faz com que o aplicativo de origem envie os dados mais atuais a object, atualizando a configurao da
propriedade Caption se object for um Label, a configurao da propriedade Picture se object for uma PictureBox, ou a
configurao da propriedade Text se object for uma TextBox.
Se a propriedade LinMode de object for configurada como Automatic (1 ou vbLinAutomatic), o aplicativo de origem
atualiza automaticamente object e LinRequest no necessrio. Se a propriedade LinMode de object for configurada
como Manual (2 ou vbLinManual), o aplicativo de origem somente atualiza object quando LinRequest for usado. Se a

Funes Internas

298

propriedade LinMode de object for configurada como Notify (3 ou vbLinNotify), a origem notifica o destino que os dados se
alteraram acionando o evento LinNotify. O destino deve, ento, usar LinRequest para atualizar os dados.

Mtodo LinSend
Transfere o contedo de um controle PictureBox para o aplicativo de destino em uma conversao DDE.
Sintaxe
object.LinSend
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O object deve ser um objeto PictureBox em um objeto Form que seja uma origem em uma conversao DDE.
Quando outros aplicativos estabelecem vnculos automticos com um Form em seu aplicativo, o Visual Basic os notifica
quando o contedo de uma TextBox ou um Label no Form se altera. Entretanto, o Visual Basic no notifica
automaticamente um aplicativo de destino DDE quando a configurao da propriedade Picture de uma PictureBox em um
Form de origem se altera. Como a quantidade de dados em um elemento grfico pode ser muito grande, e porque
raramente faz sentido atualizar uma aplicativo de destino, visto que cada pixel na figura se altera, o Visual Basic exige que
voc use o mtodo LinSend para notificar explicitamente os aplicativos DDE de destino quando o contedo de uma
PictureBox se altera.

Funo LoadResData
Carrega dados de diversos tipos possveis de um arquivo de recursos (.res) e retorna uma matriz Byte.
Sintaxe
LoadResData(index, format)
A sintaxe da funo LoadResData tem estas partes:
Parte
Descrio
index
Obrigatrio. Nmero inteiro ou seqncia de caracteres
especificando o identificador (ID) dos dados contidos no
arquivo de recursos. O recurso cuja ID 1 reservado para
o cone do aplicativo.
format
Obrigatrio. O valor que especifica o formato original dos
dados que esto sendo retornados, conforme descrito em
Configuraes. O valor tambm pode ser o nome da
seqncia de caracteres de um recurso definido pelo usurio.
Configuraes
As configuraes para format so:
Configurao
Descrio
1
Recurso de cursor
2
Recurso de bitmap
3
Recurso de cone
4
Recurso de menu
5
Caixa de dilogo
6
Recurso de seqncia de caracteres
7
Recurso de diretrio de fonte
8
Recurso de fonte
9
Tabela de aceleradores
10
Recurso definido pelo usurio
12
Cursor de grupo
14
cone de grupo
Comentrios
Os dados que LoadResData carrega do arquivo de recursos pode ter at 64.
Usar LoadResData com um tipo de recurso bitmap, cone ou cursor retorna uma seqncia de caracteres contendo os bits
efetivos no recurso. Se voc deseja usar o verdadeiro bitmap, cone ou recurso, use a funo LoadResPicture.
Usar LoadResData til para localizar um aplicativo do Visual Basic porque os recursos que precisam ser traduzidos esto
isolados em um arquivo de recursos e no h necessidade de acessar o cdigo fonte ou recompilar o aplicativo.

Funo LoadResPicture
Carrega um bitmap, cone, ou cursor de um arquivo de recursos (.res).
Sintaxe
LoadResPicture(index, format)
A sintaxe da funo LoadResPicture tem estas partes:
Parte
Descrio
index
Obrigatrio. Nmero inteiro ou seqncia de caracteres
especificando o identificador (ID) dos dados no arquivo de
recursos. O recurso cuja ID 1 est reservado para o cone
do aplicativo.

Funes Internas

299

format

Obrigatrio. Valor ou constante que especifica o formato dos


dados que esto sendo retornados, conforme descrito em
Configuraes.

Configuraes
As configuraes para format so:
Constante
Valor
VbResBitmap
vbResIcon
vbResCursor

0
1
2

Descrio
Recurso de bitmap
Recurso de cone
Recurso de cursor

Comentrios
Voc pode usar a funo LoadResPicture ao invs de referir-se a elementos grficos armazenados na propriedade
Picture de um Form ou controles.
Armazenar bitmaps, cones ou cursores e acess-los individualmente na medida das necessidades no arquivo de recurso,
ao invs de todos de uma vez quando um Form carregado.
Usar LoadResPicture til para localizar um aplicativo do Visual Basic, pois os recursos que se precisa traduzir esto
isolados em um arquivo de recursos e no h necessidade de se acessar cdigo ou recompilar o aplicativo.

Funo LoadResString
Carrega uma seqncia de caracteres a partir de um arquivo de recursos (.res).
Sintaxe
LoadResString(index)
A sintaxe da funo LoadResString tem estas partes:
Parte
Descrio
index
Obrigatrio. Nmero inteiro especificando o identificador (ID)
dos dados contidos no arquivo de recursos. O recurso cuja ID
1 reservado para o cone do aplicativo.
Comentrios
Voc pode usar a funo LoadResString ao invs de literais de seqncia de caracteres em seu cdigo. Armazenar longas
seqncias de caracteres de dados, e acess-las individualmente no arquivo de recursos medida que forem necessrias,
melhora o tempo de carga, pois voc pode carreg-las individualmente medida que forem necessrios a partir do arquivo
de recursos, ao invs de todos de uma s vez quando o formulrio carregado.
Usar LoadResString til para localizar um aplicativo do Visual Basic, pois os recursos que precisam ser traduzidos esto
isolados em um arquivo de recursos e no h necessidade de acessar cdigo fonte ou recompilar o aplicativo.

Mtodo Move
Move um MDIForm, Form ou controle. No suporta argumentos nomeados.
Sintaxe
object.Move left, top, width, height
A sintaxe do mtodo Move tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um objeto
na lista Applies To. Se object for omitido pressupe-se que o
formulrio com o foco seja object.
Left
Obrigatrio. Valor de preciso simples indicando a coordenada
horizontal da borda esquerda de object.
Top
Opcional. Valor de preciso simples indicando a coordenada
vertical (eixo de y) para a borda superior de object.
width
Opcional. Valor de preciso simples indicando a nova largura
de object.
height
Opcional. Valor de preciso simples indicando a nova altura de
object.
Comentrios
Somente o argumento left obrigatrio. Entretanto, para especificar quaisquer outros argumentos, voc deve especificar
todos os argumentos que aparecem na sintaxe antes do argumento que voc deseja especificar. Por exemplo, voc no
pode especificar width sem especificar left e top. Qualquer argumento antes dele que no seja especificado permanece
inalterado.
Para formulrios e controles em um controle Frame, o sistema de coordenadas sempre em twips. Mover um formulrio na
tela ou mover um controle em um Frame sempre relativo origem (0,0) que o canto superior esquerdo. Ao mover um
controle em um objeto Form ou em uma PictureBox (ou um formulrio MDI filho em um objeto MDIForm), o sistema de
coordenadas do objeto recipiente usado. O sistema de coordenadas ou unidade de medida configurado com a
propriedade ScaleMode durante o tempo de criao. Voc pode alterar o sistema de coordenadas durante o tempo de
execuo com o mtodo Scale.

Funes Internas

300

Mtodo NewPage
Fecha a pgina atual e avana at a pgina seguinte no objeto Printer.
Sintaxe
object.NewPage
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
NewPage avana uma nova pgina impressa e reconfigura a posio de impresso como o canto superior esquerdo da
nova pgina. Ao ser acionado, NewPage incrementa em 1 a propriedade Page do objeto Printer.

Mtodo PaintPicture
Desenha o contedo de um arquivo de elementos grficos (.bmp, .wmf, .emf, .ico ou .dib) em um Form, PictureBox ou
Printer. No suporta argumentos nomeados.
Sintaxe
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
A sintaxe do mtodo PaintPicture tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um objeto na
lista Applies To. Se object for omitido, pressupe-se que o objeto
Form com o foco seja object.
Picture
Obrigatrio. A origem do elemento grfico a ser desenhado em
object. Deve ser a propriedade Picture de um Form ou
PictureBox.
x1, y1
Obrigatrio. Valores de preciso simples indicando as
coordenadas de destino (eixo de x e eixo de y) em object para a
picture a ser desenhada. A propriedade ScaleMode de object
determina a unidade de medida usada.
Width1
Opcional. Valor de preciso simples indicando a largura de destino
de picture. A propriedade ScaleMode de object determina a
unidade de medida usada. Se a largura de destino for maior ou
menor que a largura de origem (width2), picture esticada ou
comprimida para ajustar-se. Se omitida, ser usada a largura de
origem.
Height1
Opcional. Valor de preciso simples indicando a altura de destino
de picture. A propriedade ScaleMode de object determina a
unidade de medida usada. Se a altura de destino for maior ou
menor que a altura de origem (height2), picture esticada ou
comprimida para ajustar-se. Se for omitida, ser utilizada a altura
de origem.
x2, y2
Opcional. Valores de preciso simples indicando as coordenadas
(eixo de x e eixo de y) de uma rea de recorte dentro de picture. A
propriedade ScaleMode de object determina a unidade de medida
usada. Se for omitida, pressupe-se que seja 0.
Width2
Opcional. Valor de preciso simples indicando a largura de origem
de uma rea de recorte em picture. A propriedade ScaleMode de
object determina a unidade de medida usada. Se for omitida, a
largura total de origem ser usada.
Height2
Opcional. Valor de preciso simples indicando a altura de origem
de uma rea de recorte em picture. A propriedade ScaleMode de
object determina a unidade de medida usada. Se for omitida, ser
usada a altura de origem completa.
Opcode
Opcional. Valor ou cdigo Long que somente usado com
bitmaps. Ele define uma operao voltada para bits (por exemplo,
vbMergeCopy ou vbSrcAnd) que executada sobre picture ao
ser desenhada em object. Para uma lista completa de constantes
de operador voltada para bits, consulte o tpico RasterOp
Constants no Visual Basic Help.
Comentrios
Voc pode girar horizontalmente ou verticalmente um bitmap usando valores negativos para a altura de destino (height1)
e/ou a largura de destino (width1).
Voc pode omitir tantos argumentos de preenchimento quantos queira. Se voc omitir um argumento de preenchimento ou
argumentos opcionais no use qualquer vrgula aps o ltimo que voc especifica. Se deseja especificar um argumento
opcional, voc deve especificar todos os argumentos opcionais que aparecem na sintaxe antes dele.

Funes Internas

301

Mtodo Point
Retorna, como nmero inteiro longo, a cor RGB (vermelho-verde-azul) do ponto especificado em um Form ou PictureBox.
No suporta argumentos nomeados.
Sintaxe
object.Point(x, y)
A sintaxe do mtodo Point tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o objeto Form com o foco seja object.
x, y
Obrigatrio. Valores de preciso simples indicando as
coordenadas horizontal (eixo de x) e vertical (eixo de y) do
ponto na propriedade ScaleMode do Form ou PictureBox.
Os valores devem ser colocados entre parnteses.
Comentrios
Se o ponto referido pelas coordenadas x e y estiver fora de object, o mtodo Point retorna -1.

Mtodo PopupMenu
Exibe um menu pop-up em um objeto MDIForm ou Form no local atual do mouse, ou em coordenadas especficas. No
suporta argumentos nomeados.
Sintaxe
object.PopupMenu menuname, flags, x, y, boldcommand
A sintaxe do mtodo PopupMenu tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o formulrio com o foco seja object.
Menuname
Obrigatrio. O nome do menu pop-up a ser exibido. O menu
especificado deve ter pelo menos um submenu.
Flags
Opcional. Um valor ou constante que especifica a localizao
e comportamento de um menu pop-up, conforme descrito em
Configuraes.
X
Opcional. Especifica a coordenada de x onde o menu pop-up
exibido. Se for omitido, ser usada a coordenada do
mouse.
Y
Opcional. Especifica a coordenada de y onde o menu pop-up
exibido. Se for omitido, ser usada a coordenada do
mouse.
boldcommand
Opcional. Especifica o nome de um controle de menu no
menu pop-up para exibir sua legenda em texto negrito. Se for
omitido, nenhum controle do menu pop-up aparecer em
negrito.
Configuraes
As configuraes para flags so:
Constante (localizao)
vbPopupMenuLeftAlign

Valor
0

vbPopupMenuCenterAlign

vbPopupMenuRightAlign

Constante (comportamento)
vbPopupMenuLeftButton

Valor
0

vbPopupMenuRightButton

Descrio
(Padro) O lado esquerdo do
menu pop-up est localizado
em x.
O
menu
pop-up
est
centralizado em x.
O lado direito do menu pop-up
est localizado em x.
Descrio
(Padro) Um item no menu
pop-up reage a um clique de
mouse somente quando voc
usa o boto esquerdo do
mouse.
Um item no menu pop-up
reage a um clique de mouse
quando voc usa o boto
direito ou o boto esquerdo do
mouse.

Funes Internas

302

Observao: O parmetro flags no tem efeito algum sobre aplicativos que so executados sob o Microsoft Windows
verso 3.0 ou anterior. Para especificar dois flags, combine uma constante para cada grupo usando o operador Or.
Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Voc especifica a unidade de medida para as coordenadas x e y usando a propriedade ScaleMode. As coordenadas x e y
definem onde a pop-up exibida em relao ao formulrio especificado. Se as coordenadas x e y no esto includas, o
menu pop-up exibido na localizao atual do ponteiro do mouse.
Quando voc exibe um menu pop-up, o cdigo que aparece aps a chamada do mtodo PopupMenu no executado at
que o usurio escolha um comando no menu (caso em que o cdigo para aquele evento Clic do comando executado
antes do cdigo posterior instruo PopupMenu) ou cancela o menu. Alm disso, somente um menu pop-up pode ser
exibido em um determinado momento; portanto, chamadas a este mtodo so ignoradas se um menu pop-up j estiver
sendo exibido, ou se um menu pull-down estiver aberto.

Mtodo PrintForm
Envia uma imagem bit-por-bit de um objeto Form impressora.
Sintaxe
object.PrintForm
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To. Se object for
omitido, pressupe-se que o Form com o foco seja object.
Comentrios
PrintForm imprime todos os objetos visveis e bitmaps do objeto Form. PrintForm tambm imprime elementos grficos
adicionados a um objeto Form ou controle PictureBox durante o tempo de execuo se a propriedade AutoRedraw True
quando os elementos grficos so desenhados.
A impressora usada por PrintForm determinada pelas configuraes do Painel de controle do sistema operacional.

Mtodo RemoveItem
Remove um item de uma ListBox ou controle ComboBox ou uma linha do e um controle MS Flex Grid. No suporta
argumentos nomeados.
Sintaxe
object.RemoveItem index
A sintaxe do mtodo RemoveItem tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
index
Obrigatrio. Nmero inteiro representando a posio dentro
do objeto do item ou linha a ser removida. Para o primeiro
item em uma ListBox ou ComboBox ou para a primeira
linha em um controle MS Flex Grid, index = 0.
Comentrios
Uma ListBox ou ComboBox que seja acoplada a um controle Data no suporta o mtodo RemoveItem.

Mtodo Scale
Define o sistema de coordenadas para um Form, PictureBox ou Printer. No suporta argumentos nomeados.
Sintaxe
object.Scale (x1, y1) - (x2, y2)
A sintaxe do mtodo Scale tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o objeto Form com o foco seja object.
x1, y1
Opcional. Valores de preciso simples indicando as
coordenadas horizontal (eixo de x) e vertical (eixo de y) que
definem o canto superior esquerdo de object. Os valores
devem ser colocados entre parnteses. Se for omitido, o
segundo conjunto de coordenadas tambm deve ser omitido.
x2, y2
Opcional. Valores de preciso simples indicando as
coordenadas horizontal e vertical que definem o canto inferior
direito de object. Os valores devem ser colocados entre
parnteses. Se omitido, o primeiro conjunto de coordenadas
tambm deve ser omitido.
Comentrios
O mtodo Scale permite reconfigurar o sistema de coordenadas como qualquer escala escolhida. Scale afeta o sistema de
coordenadas tanto para as instrues de elementos grficos durante o tempo de execuo quanto a colocao de
controles.

Funes Internas

303

Se voc usa Scale sem argumentos (ambos os conjuntos de coordenadas omitidos), ele reconfigura o sistema de
coordenadas para twips.

Mtodos ScaleX, ScaleY


Converte o valor da largura e altura de um Form, PictureBox ou Printer de uma unidade de medida da propriedade
ScaleMode para outra. No suporta argumentos nomeados.
Sintaxe
object.ScaleX (width, fromscale, toscale)
object.ScaleY (height, fromscale, toscale)
As sintaxes de mtodo ScaleX e ScaleY tm estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido pressupe-se
que o objeto Form com o foco seja object.
width
Obrigatrio. Especifica o nmero de unidades de medida de
object a serem convertidas.
height
Obrigatrio. Especifica o nmero de unidades de medida de
object a serem convertidas.
fromscale
Opcional. Uma constante ou valor especificando o sistema de
coordenadas de onde width ou height de object deve ser
convertidos, conforme descrito em Configuraes. Os valores
possveis de fromscale so os mesmos que a propriedade
ScaleMode, mais um novo valor de HiMetric.
toscale
Opcional. Uma constante ou valor especificando o sistema de
coordenadas para o qual width ou height de object devem ser
convertidos, conforme descrito em Configuraes. Os valores
possveis de toscale so os mesmos que para a propriedade
ScaleMode, mais o novo valor de HiMetric.
Configuraes
As configuraes para fromscale e toscale so:
Constante
Valor
Descrio
vbUser
0
Definida pelo usurio: indica que a largura e
altura de object esto definidas como um valor
personalizado.
vbTwips
1
Twip (1440 twips por polegada lgica; 567
twips por centmetro lgico).
vbPoints
2
Ponto (72 pontos por polegada lgica).
vbPixels
3
Pixel (menor unidade de monitor ou resoluo
de impressora).
vbCharacters
4
Caractere (horizontal = 120 twips por unidade;
vertical = 240 twips por unidade).
vbInches
5
Polegada.
vbMillimeters
6
Milmetro.
vbCentimeters
7
Centmetro.
vbHimetric
8
HiMetric. Se fromscale for omitido, pressupese que HiMetric seja o padro.
vbContainerPosition
9
Determina a posio do controle.
vbContainerSize
10
Determina o tamanho do controle.
Comentrios
Os mtodos ScaleX e ScaleY tomam um valor (width ou height), com sua unidade de medida especificada por fromscale, e
o convertem para o valor correspondente na unidade de medida especificada por toscale.
Voc tambm pode usar ScaleX e ScaleY com o mtodo PaintPicture.

Mtodo SetAutoServerSettings
Define os valores de registro de Remote Automation para atender os requisitos de ActiveX e Remote Automation, incluindo
definies de configurao e acesso a servidor remoto.
Sintaxe
object. SetAutoServerSettings(remote, [progid], [clsid], [servername], [protocol], [authentication])
A sintaxe do mtodo SetAutoServerSettings tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um objeto
na lista Applies To.
remote
Obrigatrio. Boolean. True se o servidor for remoto, False se for
local.
progid
Opcional. Uma expresso de variante especificando a ProgID do
servidor.
Funes Internas

304

clsid
servername
protocol
authentication

Opcional. Uma expresso de variante especificando o CLSID do


servidor.
Opcional. Uma expresso de variante especificando o nome da
mquina servidor.
Opcional. Uma expresso de variante especificando o nome RPC
do protocolo a ser utilizado.
Opcional. A expresso de variante especificando o nvel de
autenticao RPC.

Valores de retorno
O mtodo SetAutoServerSettings retorna os seguintes cdigos de erro:
Valor
Descrio
0
1
2
3
4
5
6
7
8

Nenhum erro.
Ocorreu erro durante o tempo de execuo desconhecido.
Nenhum protocolo foi especificado.
Nenhum nome de mquina servidora foi especificado.
Ocorreu um erro ao ler no registro.
Ocorreu um erro ao gravar no registro.
Ambos os parmetros ProgID e CLSID faltavam.
No existe servidor local (tanto em processo quanto entre processos,
16 bits ou 32 bits).
Ocorreu um erro ao procurar as DLLs Proxy, verifique se elas foram
corretamente instaladas.

Comentrios
O mtodo SetAutoServerSettings toma a CLSID ou a ProgID e configura as informaes do registro como local ou
remoto, dependendo do valor do parmetro remote. Se tanto uma CLSID quanto uma ProgID so passadas ao mtodo, o
CLSID tem precedncia.

Mtodo SetData
Coloca uma figura no objeto Clipboard usando o formato grfico especificado. No suporta argumentos nomeados.
Sintaxe
object.SetData data, format
A sintaxe do mtodo SetData tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
data
Obrigatrio. Um elemento grfico a ser colocado no objeto
Clipboard.
format
Opcional. Uma constante ou valor que especifica um dos
formatos de objeto Clipboard reconhecidos pelo Visual
Basic, conforme descrito em Configuraes. Se format for
omitido, SetData determina automaticamente o formato.
Configuraes
As configuraes para format so:
Constante
Valor
vbCFBitmap
2
vbCFMetafile
3
vbCFDIB
8
vbCFPalette

Descrio
Bitmap (arquivos .bmp)
Metarquivos (arquivos .wmf)
Bitmap independente de
(DIB)
Paleta de cores

dispositivo

Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Voc define o elemento grfico que deve ser colocado no objeto Clipboard com a funo LoadPicture ou a propriedade
Picture de um Form, Image ou PictureBox.

Mtodo SetText
Coloca uma seqncia de caracteres de texto no objeto Clipboard usando o formato de objeto Clipboard especificado.
No suporta argumentos nomeados.
Sintaxe
object.SetText data, format
A sintaxe do mtodo SetText tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
data
Obrigatrio. Dados de seqncia de caracteres a serem

Funes Internas

305

Format

colocado na rea de transferncia.


Opcional. Uma constante ou valor que especifica um dos
formatos reconhecidos pelo Visual Basic, conforme descrito
em Configuraes.

Configuraes
As configuraes para format so:
Constante
Valor
vbCFLin
&HBF00
vbCFRTF
vbCFText

&HBF01
1

Descrio
Informaes de conversao
DDE
RichText Format
(Padro) texto

Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.

Mtodo Show
Exibe o objeto MDIForm ou Form. No suporta argumentos nomeados.
Sintaxe
object.Show style, ownerform
A sintaxe do mtodo Show tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o formulrio associado ao mdulo do formulrio ativo
seja object.
style
Opcional. Nmero inteiro que determina se o formulrio tem
janela restrita ou no. Se style for 0, o formulrio no tem
janela restrita; se style for 1, o formulrio tem janela restrita.
ownerform
Opcional. Uma expresso de seqncia de caracteres que
especifica o componente que "proprietrio" do formulrio
em exibio. Para formulrio padro do Visual Basic, use a
palavra-chave Me
Comentrios
Se o formulrio especificado no estiver carregado quando o mtodo Show acionado, o Visual Basic o carrega
automaticamente.
Quando Show exibe um formulrio sem janela restrita, o cdigo subseqente executado como ele encontrado. Quando
Show exibe um formulrio de janela restrita, nenhum cdigo subseqente executado at que o formulrio seja ocultado
ou descarregado.
Quando Show exibe um formulrio de janela restrita, nenhuma entrada (teclado ou clique de mouse) pode ocorrer, exceto
em objetos no formulrio de janela restrita. O programa deve ocultar ou descarregar um formulrio de janela restrita
(normalmente em resposta a alguma ao de usurio) antes que entrada em outro formulrio possa ocorrer. Um MDIForm
no pode ser de janela restrita.
Embora outros formulrios em seu aplicativo estejam desativados quando um formulrio de janela restrita exibido, os
outros aplicativos no esto.
O formulrio de inicializao de um aplicativo automaticamente exibido aps seu evento Load ter sido acionado.
Aqui est um exemplo de como o argumento ownerform usado com o mtodo Show:
Private Sub cmdShowResults_Clic()
' Exibir um formulrio de janela restrita chamado frmResults.
frmResults.Show vbModal, Me
End Sub

Mtodo TextHeight
Retorna a altura de uma seqncia de caracteres de texto como ela seria impressa na fonte atual de um Form, PictureBox
ou Printer. No suporta argumentos nomeados.
Sintaxe
object.TextHeight(string)
A sintaxe do mtodo TextHeight tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o objeto Form com o foco seja object.
String
Obrigatrio. Uma expresso de seqncia de caracteres que
avalia para uma seqncia de caracteres cuja altura de texto
determinada. A expresso de seqncia de caracteres deve
estar entre parnteses.
Comentrios

Funes Internas

306

A altura expressa em termos da configurao da propriedade ScaleMode ou sistema de coordenadas do mtodo Scale
vlidas para object. Use TextHeight para determinar a quantidade de espao vertical exigido para exibir o texto. A altura
retornada inclui o espao normal que precede o texto, acima e abaixo, de modo que voc pode usar a altura para calcular e
posicionar linhas mltiplas de texto dentro de object.
Se string contm retornos de linha, TextHeight retorna a altura acumulada das linhas, incluindo o espao que precede cada
linha, acima e abaixo.

Mtodo TextWidth
Retorna a largura de uma seqncia de caracteres de texto, como ela seria impressa na fonte atual de um Form,
PictureBox ou Printer. No suporta argumentos nomeados.
Sintaxe
object.TextWidth(string)
A sintaxe do mtodo TextWidth tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o Form com o foco seja object.
String
Obrigatrio. Uma expresso de seqncia de caracteres que
avalia para uma seqncia de caracteres cuja largura
determinada. A expresso de seqncia de caracteres deve
estar entre parnteses.
Comentrios
A largura expressa em termos da configurao da propriedades ScaleMode ou do sistema de coordenadas do mtodo
Scale vlidos para object. Use TextWidth para determinar a quantidade de espao horizontal exigido para exibir o texto. Se
string contm retornos de linha incorporados, TextWidth retorna a largura da linha mais longa.

Mtodo ZOrder
Coloca um MDIForm, Form ou controle especificado frente ou atrs na ordem-z dentro de seu nvel grfico. No suporta
argumentos nomeados.
Sintaxe
object.ZOrder position
A sintaxe do mtodo ZOrder tem estas partes:
Parte
Descrio
object
Opcional. Uma expresso de objeto que avalia para um
objeto na lista Applies To. Se object for omitido, pressupe-se
que o formulrio com o foco seja object.
Position
Opcional. Nmero inteiro indicando a posio de object em
relao a outras ocorrncias do mesmo object. Se a posio
for 0 ou omitida, object posiciona na frente, na ordem-z. Se
a posio for 1, object posicionado atrs na ordem-z.
Comentrios
A ordem-z de objetos pode ser definida durante o tempo de criao escolhendo o comando de menu Bring To Front ou
Send To Bac no menu Edit.
Dentro de um objeto MDIForm, ZOrder envia formulrios MDI filho para a frente ou para trs da rea MDI cliente,
dependendo do valor de position. Para um MDIForm ou objeto Form, ZOrder envia o formulrio para a frente ou para trs
da tela, dependendo do valor de position. Como resultado, os formulrios podem ser exibidos frente ou atrs de outros
aplicativos em execuo.
Trs camadas grficas so associadas a formulrios e recipientes. A camada de trs o espao de desenho onde os
resultados dos mtodos grficos so exibidos. A seguir est a camada mdia onde os objetos grficos e os controles Label
so exibidos. A camada frontal onde todos os controles no-grficos como CommandButton, ChecBox ou ListBox so
exibidos. Qualquer coisa contida em uma camada mais prxima do primeiro plano cobre tudo o que est contido na(s)
camada(s) atrs dele. ZOrder dispe os objetos somente dentro da camada onde o objeto exibido.

Exemplo do mtodo AddItem


Este exemplo utiliza o mtodo AddItem para adicionar 100 itens a uma caixa de listagem. Para experimentar este exemplo,
cole o cdigo na seo Declarations de um formulrio contendo um controle ListBox chamado List1 e, em seguida,
pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Entry, I, Msg ' Declarar variveis.
Msg = "Choose O to add 100 items to your list box."
MsgBox Msg ' Exibir mensagem.
For I = 1 To 100 ' Contar de 1 a 100.
Entry = "Entry " & I
' Criar entrada.
List1.AddItem Entry ' Adicionar a entrada.
Next I

Funes Internas

307

Msg = "Choose O to remove every other entry."


MsgBox Msg ' Exibir mensagem.
For I = 1 To 50
' Determinar como
List1.RemoveItem I ' remover um em cada dois
Next I ' itens.
Msg = "Choose O to remove all items from the list box."
MsgBox Msg ' Exibir mensagem.
List1.Clear ' Limpar a caixa de listagem.
End Sub

Exemplo do mtodo Arrange


Este exemplo usa o mtodo Arrange para organizar janelas e cones em um formulrio MDI. Para experimentar este
exemplo, cole o cdigo na seo Declarations de um formulrio MDI chamado MDIForm1 que tenha um formulrio MDI filho
(chamado Form1, com sua propriedade MDIChild definida como True) e uma caixa de figura no formulrio MDI (chamado
Picture1). Pressione F5 e clique em qualquer lugar na caixa de figura para ver os efeitos do mtodo Arrange.
Const FORMCOUNT = 5
Dim F(1 To FORMCOUNT) As New Form1
Private Sub MDIForm_Load ()
Dim I
' Declarar a varivel local.
Load Form1 ' Carregar o Form1 original.
For I = 1 To FORMCOUNT
F(I).Caption = "Form" & I + 1 ' Alterar a legenda em cpias.
Next I
End Sub
Private Sub Picture1_Clic ()
Static ClicCount ' Declarar as variveis.
Dim I, PrevWidth, Start
ClicCount = ClicCount + 1 ' Incrementar o contador de cliques.
Select Case ClicCount
Case 1
MDIForm1.Arrange 1 ' Organizar lado a lado horizontalmente.
Case 2
MDIForm1.Arrange 2 ' Organizar lado a lado verticalmente.
Case 3 ' Minimizar cada formulrio.
PrevWidth = MDIForm1.Width
' Obter a largura do formulrio MDI.
MDIForm1.Width = PrevWidth / 2 ' Dividi-lo na metade.
Form1.WindowState = 1 ' Minimizar o original.
For I = 1 To FORMCOUNT ' Olhar cada ocorrncia de F.
F(I).WindowState = 1 ' Minimizar cada cpia de F.
Next I
Start = Timer
Do
Loop Until Timer = Start + 5
MDIForm1.Width = PrevWidth
' Redimensionar ao tamanho original.
MDIForm1.Arrange 3 ' Organizar os cones.
End Select
End Sub

Exemplo do mtodo Clear


Este exemplo usa o mtodo Clear para limpar todos os itens de uma caixa de listagem. Para experimentar este exemplo,
cole o cdigo na seo Declarations de um formulrio com um controle ListBox chamado List1 e, em seguida, pressione
F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Entry, I, Msg ' Declarar as variveis.
Msg = "Choose O to remove every other entry."
MsgBox Msg ' Exibir mensagem.
For I = 1 To 100 ' Contar de 1 a 100.
Entry = "Entry " & I
' Criar entrada.
List1.AddItem Entry ' Adicionar a entrada.
Next I
Msg = "Choose O to remove every other entry."
MsgBox Msg ' Exibir mensagem.
For I = 1 To 50
' Determinar como
List1.RemoveItem I ' remover um em cada dois
Next I ' itens.
Msg = "Choose O to remove all items from the list box."
MsgBox Msg ' Exibir mensagem.
List1.Clear ' Limpar a caixa de listagem.

Funes Internas

308

End Sub
Este exemplo usa o mtodo Clear para limpar o objeto Clipboard. Para experimentar este exemplo, cole o cdigo na seo
Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Const CF_BITMAP = 2
' Definir o formato de bitmap.
Dim Msg' Declarar a varivel.
On Error Resume Next
' Configurar o tratamento de erro.
Msg = "Choose O to load a bitmap onto the Clipboard."
MsgBox Msg ' Exibir mensagem.
Clipboard.Clear ' Limpar Clipboard.
Clipboard.SetData LoadPicture("PAPER.BMP") ' Obter bitmap.
If Err Then
Msg = "Can't find the .BMP file."
MsgBox Msg ' Exibir mensagem de erro.
Exit Sub
End If
Msg = "A bitmap is now on the Clipboard. Choose O to copy "
Msg = Msg & "the bitmap from the Clipboard to the form."
MsgBox Msg ' Exibir mensagem.
Picture = Clipboard.GetData() ' Copiar da rea de transferncia.
Msg = "Choose O to clear the picture."
MsgBox Msg ' Exibir mensagem.
Picture = LoadPicture()
' Limpar a figura.
End Sub

Exemplo do mtodo Cls


Este exemplo usa o mtodo Cls para excluir informaes impressas de um formulrio. Para experimentar este exemplo,
cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Msg' Declarar varivel.
AutoRedraw = -1 ' Ativa AutoRedraw.
ForeColor = QBColor(15) ' Configurar o primeiro plano como branco.
BacColor = QBColor(1)
' Configurar o segundo plano como azul.
FillStyle = 7 ' Configurar hachura diagonal.
Line (0, 0)-(ScaleWidth, ScaleHeight), , B ' Colocar uma caixa no formulrio.
Msg = "This is information printed on the form bacground."
CurrentX = ScaleWidth / 2 - TextWidth(Msg) / 2 ' Configura a posio X.
CurrentY = 2 * TextHeight(Msg) ' Configurar a posio Y.
Print Msg
' Imprimir mensagem em formulrio.
Msg = "Choose O to clear the information and bacground "
Msg = Msg & "pattern just displayed on the form."
MsgBox Msg ' Exibir mensagem.
Cls ' Limpar o segundo plano do formulrio.
End Sub

Exemplo do mtodo Drag


Este exemplo utiliza o mtodo Drag para arrastar o nome do arquivo de um arquivo bitmap (.bmp) para uma caixa de figura
onde o bitmap exibido. Para experimentar este exemplo, cole todo o cdigo na seo Declarations de um formulrio que
contenha controles DriveListBox, DirListBox, FileListBox, PictureBox e Label. Use os nomes padro para todos os
controles. Dimensione e posicione todos os controles de modo que eles possam ser facilmente vistos e utilizados. O
tamanho e posio do rtulo no importante pois ele alterado durante o tempo de execuo. Quando o programa se
inicia, voc pode pesquisar seu sistema de arquivo e carregar quaisquer bitmaps. Uma vez que tenha localizado um bitmap
que queira exibir, clique no nome do arquivo daquele bitmap e arraste-o para a caixa de figura.
Private Sub Form_Load ()
Picture1.AutoSize = -1' Ativar o AutoSize.
Label1.Visible = 0 ' Tornar o rtulo invisvel .
File1.Pattern = "*.BMP; *.ICO; *.WMF"' Definir padres de arquivo.
End Sub
Private Sub Dir1_Change () ' Qualquer alterao em Dir1
File1.Path = Dir1.Path ' refletida em File1.
End Sub
Private Sub Drive1_Change ()
Dir1.Path = Drive1.Drive
End Sub

' Qualquer alterao em Drive1


' refletida em Dir1.

Private Sub File1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)


Dim DY ' Declarar varivel.
Funes Internas

309

DY = TextHeight("A") ' Obter a altura de uma linha.


Label1.Move File1.Left, File1.Top + Y - DY /2, File1.Width, DY
Label1.Drag ' Arrastar o contorno do rtulo.
End Sub
Private Sub Dir1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
' Alterar o ponteiro para no-soltar.
If State = 0 Then Source.MousePointer = 12
' Usar o ponteiro de mouse padro.
If State = 1 Then Source.MousePointer = 0
End Sub
Private Sub Drive1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
' Alterar ponteiro para no-soltar.
If State = 0 Then Source.MousePointer = 12
' Usar o ponteiro de mouse padro.
If State = 1 Then Source.MousePointer = 0
End Sub
Private Sub Form_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
' Alterar o ponteiro para no-soltar.
If State = 0 Then Source.MousePointer = 12
' Usar o ponteiro de mouse padro.
If State = 1 Then Source.MousePointer = 0
End Sub
Private Sub File1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
On Error Resume Next
If State = 0 And Right$(File1.Filename,4) = ".ICO" Then
Label1.DragIcon = LoadPicture(File1.Path + "\" + File1.Filename)
If Err Then MsgBox "The icon file can't be loaded."
ElseIf State = 1 Then
Label1.DragIcon = LoadPicture () ' Usar o cone no-arrastar.
End If
End Sub
Private Sub Picture1_DragDrop (Source As Control, X As Single, Y As Single)
On Error Resume Next
Picture1.Picture = LoadPicture(File1.Path + "\" + File1.Filename)
If Err Then MsgBox "The picture file can't be loaded."
End Sub

Exemplo do mtodo EndDoc


Este exemplo usa o mtodo EndDoc para encerrar um documento aps imprimir duas pginas, cada uma delas com uma
linha centralizada de texto indicando o nmero da pgina. Para experimentar este exemplo, cole o cdigo na seo
Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim HWidth, HHeight, I, Msg ' Declarar as variveis.
On Error GoTo ErrorHandler
' Configurar manipulador de erro.
Msg = "This is printed on page"
For I = 1 To 2 ' Configura duas iteraes.
HWidth = Printer.TextWidth(Msg) / 2
' Obter meia largura.
HHeight = Printer.TextHeight(Msg) /2
' Obter meia altura.
Printer.CurrentX = Printer.ScaleWidth / 2 - HWidth
Printer.CurrentY = Printer.ScaleHeight / 2 - HHeight
Printer.Print Msg & Printer.Page & "."
' Imprimir.
Printer.NewPage ' Enviar nova pgina.
Next I
Printer.EndDoc ' Impresso est concluda.
Msg = "Two pages, each with a single, centered line of text, "
Msg = Msg & "have been sent to your printer."
MsgBox Msg ' Exibir mensagem.
Exit Sub
ErrorHandler:
MsgBox "There was a problem printing to your printer."
Exit Sub
End Sub

Exemplo do mtodo GetData


Este exemplo usa o mtodo GetData para copiar um bitmap do objeto Clipboard para um formulrio. Para experimentar
este exemplo, cole o cdigo na seo Declarations de um formulrio, pressione F5 e clique no formulrio.
Funes Internas

310

Private Sub Form_Clic ()


Const CF_BITMAP = 2
' Definir o formato bitmap.
Dim Msg' Declara varivel.
On Error Resume Next
' Configurar o tratamento de erro.
Msg = "Choose O to load a bitmap onto the Clipboard."
MsgBox Msg ' Exibir mensagem.
Clipboard.Clear ' Limpar a rea de transferncia.
Clipboard.SetData LoadPicture("PAPER.BMP") ' Obter o bitmap.
If Err Then
Msg = "Can't find the .bmp file."
MsgBox Msg ' Exibir mensagem de erro.
Exit Sub
End If
Msg = "A bitmap is now on the Clipboard. Choose O to copy "
Msg = Msg & "the bitmap from the Clipboard to the form "
MsgBox Msg ' Exibir mensagem.
Picture = Clipboard.GetData() ' Copiar da rea de transferncia.
Msg = "Choose O to clear the form."
MsgBox Msg ' Exibir mensagem.
Picture = LoadPicture()
' Limpar o formulrio.
End Sub

Exemplo do mtodo GetFormat


Este exemplo usa o mtodo GetFormat para determinar o formato dos dados no objeto Clipboard. Para experimentar este
exemplo, cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
' Definir formatos de bitmap.
Dim ClpFmt, Msg ' Declarar variveis.
On Error Resume Next
' Configurar tratamento de erro.
If Clipboard.GetFormat(vbCFText) Then ClpFmt = ClpFmt + 1
If Clipboard.GetFormat(vbCFBitmap) Then ClpFmt = ClpFmt + 2
If Clipboard.GetFormat(vbCFDIB) Then ClpFmt = ClpFmt + 4
If Clipboard.GetFormat(vbCFRTF) Then ClpFmt = ClpFmt + 8
Select Case ClpFmt
Case 1
Msg = "The Clipboard contains only text."
Case 2, 4, 6
Msg = "The Clipboard contains only a bitmap."
Case 3, 5, 7
Msg = "The Clipboard contains text and a bitmap."
Case 8, 9
Msg = "The Clipboard contains only rich text."
Case Else
Msg = "There is nothing on the Clipboard."
End Select
MsgBox Msg ' Exibir mensagem.
End Sub

Funes Internas

311

Exemplo do mtodo GetText


Este exemplo usa o mtodo GetText para copiar uma seqncia de caracteres de texto do objeto Clipboard para uma
varivel de seqncia de caracteres. Para experimentar este exemplo, cole o cdigo na seo Declarations de um
formulrio com um controle TextBox chamado Text1 e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim I, Msg, Temp ' Declarar variveis.
On Error Resume Next
' Configurar tratamento de erro.
Msg = "Type anything you lie into the text box below."
Text1.Text = InputBox(Msg) ' Obter o texto do usurio.
Msg = "Choose O to copy the contents of the text box "
Msg = Msg & "to the Clipboard."
MsgBox Msg ' Exibir mensagem.
Clipboard.Clear ' Limpar a rea de transferncia.
Clipboard.SetText Text1.Text ' Colocar texto na rea de transferncia.
If Clipboard.GetFormat(vbCFText) Then
Text1.Text = ""
' Limpar a caixa de texto.
Msg = "The text is now on the Clipboard. Choose O "
Msg = Msg & "to copy the text from the Clipboard bac "
Msg = Msg & "to the text box."
MsgBox Msg ' Exibir mensagem.
Temp = Clipboard.GetText(vbCFText)
' Obter o texto da rea de transferncia .
For I = Len(Temp) To 1 Step -1 ' Inverter o texto.
Text1.Text = Text1.Text & Mid(Temp, I, 1)
Next I
Else
Msg = "There is no text on the Clipboard."
MsgBox Msg ' Exibir mensagem de erro.
End If
End Sub

Exemplo do mtodo Hide


Este exemplo usa o mtodo Hide para ocultar um formulrio. Para experimentar este exemplo, cole o cdigo na seo
Declarations de um formulrio no-MDI e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Msg' Declarar varivel.
Hide
' Ocultar formulrio.
Msg = "Choose O to mae the form reappear."
MsgBox Msg ' Exibir mensagem.
Show ' Mostrar o formulrio novamente.
End Sub

Exemplo do mtodo illDoc


Este exemplo usa o mtodo illDoc para finalizar o trabalho atual de impresso. Para experimentar este exemplo, cole o
cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic()
For i = 1 To 40
Printer.CurrentX = 1440 ' Configurar a margem esquerda.
Printer.CurrentY = (i * 300) ' Avanar a pgina para a prxima linha.
Printer.Print "This is line" & Str$(i) & " of text."
On Error Resume Next
' Capturar qualquer erro de impressora.
If i = 26 Then
Printer.illDoc ' Finalizar abruptamente o trabalho de impresso.
Printer.EndDoc
End
End If
Next i
End Sub

Exemplo do mtodo LinExecute


Este exemplo estabelece um vnculo DDE com o Microsoft Excel, coloca alguns valores em clulas na primeira linha de
uma nova planilha e transforma os valores em grficos. LinExecute envia ao Microsoft Excel o comando para ativar uma
planilha, selecionar alguns valores e transform-los em grfico. Para experimentar este exemplo, o Microsoft Excel deve
estar instalado em seu computador e na instruo de caminho de seu arquivo Autoexec.bat. Cole o cdigo na seo
Declarations de um formulrio que contenha um controle TextBox com o nome padro Text1 e, em seguida, pressione F5 e
clique no formulrio.
Private Sub Form_Clic ()
Dim Cmd, I, Q, Row, Z
' Declarar variveis.
Q = Chr(34) ' Definir aspas.
' Criar uma seqncia de caracteres contendo comandos de macro do Microsoft Excel.
Cmd = "[ACTIVATE(" & Q &"SHEET1" & Q & ")]"

Funes Internas

312

Cmd = Cmd & "[SELECT(" & Q & "R1C1:R5C2" & Q & ")]"
Cmd = Cmd & "[NEW(2,1)][ARRANGE.ALL()]"
If Text1.LinMode = vbNone Then
Z = Shell("Excel", 4) ' Iniciar o Microsoft Excel.
Text1.LinTopic = "Excel|Sheet1" ' Definir tpico de vinculao.
Text1.LinItem = "R1C1"
' Definir o item de vinculao.
Text1.LinMode = vbLinManual ' Definir o modo de vinculao.
End If
For I = 1 To 5
Row = I ' Definir o nmero da linha.
Text1.LinItem = "R" & Row & "C1"' Definir o item de vinculao.
Text1.Text = Chr(64 + I)
' Colocar valor em Text.
Text1.LinPoe ' Enviar o valor clula.
Text1.LinItem = "R" & Row & "C2"' Definir o item de vinculao.
Text1.Text = Row ' Colocar o valor em Text.
Text1.LinPoe ' Enviar o valor clula.
Next I
On Error Resume Next
Text1.LinExecute Cmd
' Executar os comandos do Microsoft Excel.
MsgBox "LinExecute DDE demo with Microsoft Excel finished.", 64
End
End Sub

Exemplo do mtodo LinPoe


Este exemplo estabelece um vnculo DDE com o Microsoft Excel, coloca alguns valores em clulas na primeira linha de
uma nova planilha e transforma os valores em grfico. LinPoe envia os valores a serem transformados em grfico
planilha do Microsoft Excel. Para experimentar este exemplo, o Microsoft Excel deve estar instalado e na instruo de
caminho de seu arquivo Autoexec.bat. Cole o cdigo na seo Declarations de um formulrio que contenha uma caixa
TextBox com o nome padro Text1 e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Cmd, I, Q, Row, Z
' Declarar variveis.
Q = Chr(34) ' Definir aspas.
' Criar uma seqncia de caracteres contendo comandos de macro do Microsoft Excel.
Cmd = "[ACTIVATE(" & Q &"SHEET1" & Q & ")]"
Cmd = Cmd & "[SELECT(" & Q & "R1C1:R5C2" & Q & ")]"
Cmd = Cmd & "[NEW(2,1)][ARRANGE.ALL()]"
If Text1.LinMode = vbNone Then
Z = Shell("Excel", 4) ' Iniciar o Microsoft Excel.
Text1.LinTopic = "Excel|Sheet1" ' Definir tpico de vinculao.
Text1.LinItem = "R1C1"
' Definir o item de vinculao.
Text1.LinMode = vbLinManual ' Definir o modo de vinculao.
End If
For I = 1 To 5
Row = I ' Definir nmero de linha.
Text1.LinItem = "R" & Row & "C1"' Definir o item de vinculao.
Text1.Text = Chr(64 + I)
' Colocar valor em Text.
Text1.LinPoe ' Enviar o valor clula.
Text1.LinItem = "R" & Row & "C2"' Definir o item de vinculao.
Text1.Text = Row ' Colocar valor em Text.
Text1.LinPoe ' Enviar valor clula.
Next I
Text1.LinExecute Cmd
' Executar os comandos do Microsoft Excel.
On Error Resume Next
MsgBox "LinPoe DDE demo with Microsoft Excel finished.", 64
End
End Sub

Exemplo do mtodo LinRequest


Este exemplo utiliza LinRequest para atualizar o contedo de uma caixa de texto com os valores contidos em uma planilha
do Microsoft Excel. Para experimentar este exemplo, voc deve ter o Microsoft Excel em execuo em seu computador.
Coloque alguns dados nas primeiras clulas da primeira coluna na planilha padro (Sheet1.xls). Cole o cdigo na seo
Declarations de um formulrio que tenha um controle TextBox chamado Text1 e, em seguida, pressione F5 e clique no
formulrio.
Private Sub Form_Clic ()
If Text1.LinMode = vbNone Then
' Testar o modo de vinculao.
Text1.LinTopic = "Excel|Sheet1" ' Definir o tpico de vinculao.
Text1.LinItem = "R1C1"
' Definir o item de vinculao.
Text1.LinMode = vbLinManual ' Definir o modo de vinculao.
Text1.LinRequest ' Atualizar a caixa de texto.
Else
If Text1.LinItem = "R1C1" Then
Funes Internas

313

Text1.LinItem = "R2C1"
Text1.LinRequest ' Atualizar a caixa de texto.
Else
Text1.LinItem = "R1C1"
Text1.LinRequest ' Atualizar a caixa de texto.
End If
End If
End Sub

Exemplo do mtodo Move


Este exemplo usa o mtodo Move para mover um formulrio pela tela. Para experimentar este exemplo, cole o cdigo na
seo Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Inch, Msg
' Declarar variveis.
Msg = "Choose O to resize and move this form by "
Msg = Msg & "changing the value of properties."
MsgBox Msg ' Exibir mensagem.
Inch = 1440 ' Definir polegadas em twips.
Width = 4 * Inch ' Definir a largura.
Height = 2 * Inch ' Definir a altura.
Left = 0 ' Definir a esquerda como origem.
Top = 0 ' Definir a parte superior como origem.
Msg = "Now choose O to resize and move this form "
Msg = Msg & "using the Move method."
MsgBox Msg ' Exibir mensagem.
Move Screen.Width - 2 * Inch, Screen.Height - Inch, 2 * Inch, Inch
End Sub

Exemplo do mtodo NewPage


Este exemplo usa o mtodo NewPage para iniciar uma nova pgina de impresso aps imprimir uma linha de texto nica,
centralizada em uma pgina. Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio e, em
seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim HWidth, HHeight, I, Msg ' Declarar variveis.
On Error GoTo ErrorHandler
' Definir manipulador de erro.
Msg = "This is printed on page"
For I = 1 To 2 ' Configurar duas iteraes.
HWidth = Printer.TextWidth(Msg) / 2
' Obter uma metade de largura.
HHeight = Printer.TextHeight(Msg) /2
' Obter uma metade de altura.
Printer.CurrentX = Printer.ScaleWidth / 2 - HWidth
Printer.CurrentY = Printer.ScaleHeight / 2 - HHeight
Printer.Print Msg & Printer.Page & "."
' Imprime.
Printer.NewPage ' Enviar nova pgina.
Next I
Printer.EndDoc ' Impresso terminada.
Msg = "Two pages, each with a single, centered line of text, "
Msg = Msg & "have been sent to your printer."
MsgBox Msg ' Exibir mensagem.
Exit Sub
ErrorHandler:
MsgBox "There was a problem printing to your printer."
Exit Sub
End Sub

Exemplo do mtodo Point


Este exemplo usa o mtodo Point para determinar a cor de um ponto especfico em um formulrio. Para experimentar este
exemplo, cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim LeftColor, MidColor, Msg, RightColor
' Declarar variveis.
AutoRedraw = -1 ' Ativar AutoRedraw.
Height = 3 * 1440 ' Definir a altura para 3 polegadas.
Width = 5 * 1440 ' Definir a largura para 5 polegadas.
BacColor = QBColor(1)
' Definir o segundo plano para azul.
ForeColor = QBColor(4) ' Definir o primeiro plano para vermelho.
Line (0, 0)-(Width / 3, Height), , BF ' Caixa vermelha.
ForeColor = QBColor(15) ' Definir o primeiro plano para branco.
Line (Width / 3, 0)-((Width / 3) * 2, Height), , BF
LeftColor = Point(0, 0) ' Localizar a cor da caixa da esquerda,
MidColor = Point(Width / 2, Height / 2) ' caixa do centro e
RightColor = Point(Width, Height) ' caixa da direita.
Msg = "The color number for the red box on the left side of "
Funes Internas

314

Msg = Msg & "the form is " & LeftColor & ". A "
Msg = Msg & "color of the white box in the center is "
Msg = Msg & MidColor & ". The color of the blue "
Msg = Msg & "box on the right is " & RightColor & "."
MsgBox Msg ' Exibir mensagem.
End Sub

Funes Internas

315

Exemplo do mtodo PopupMenu


Este exemplo exibe um menu pop-up no local do cursor quando o usurio clica o boto direito do mouse em um formulrio.
Para experimentar este exemplo, crie um formulrio que inclua um controle Menu chamado mnuFile (mnuFile deve ter pelo
menos um submenu). Copie o cdigo na seo Declarations do formulrio e pressione F5.
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnuFile
End If
End Sub

Exemplo do mtodo PrintForm


Este exemplo usa o mtodo PrintForm para imprimir o formulrio atual. Para experimentar este exemplo, cole o cdigo na
seo Declarations de um formulrio. Coloque no formulrio todos os controles que deseja ver no formulrio impresso e,
em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Msg' Declarar varivel.
On Error GoTo ErrorHandler
' Configurar manipulador de erro.
PrintForm
' Imprimir formulrio.
Exit Sub
ErrorHandler:
Msg = "The form can't be printed."
MsgBox Msg ' Exibir mensagem.
Resume Next
End Sub

Exemplo do mtodo RemoveItem


Este exemplo usa o mtodo RemoveItem para remover entradas de uma caixa de listagem. Para experimentar este
exemplo, cole o cdigo na seo Declarations de um formulrio com um controle ListBox chamado List1 e, em seguida,
pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Entry, I, Msg ' Declarar variveis.
Msg = "Choose O to add 100 items to your list box."
MsgBox Msg ' Exibir mensagem.
For I = 1 To 100 ' Contar de 1 a 100.
Entry = "Entry " & I
' Criar entrada.
List1.AddItem Entry ' Adicionar a entrada.
Next I
Msg = "Choose O to remove every other entry."
MsgBox Msg ' Exibir mensagem.
For I = 1 To 50
' Determinar como
List1.RemoveItem I ' remover um a cada dois
Next I ' itens.
Msg = "Choose O to remove all items from the list box."
MsgBox Msg ' Exibir mensagem.
List1.Clear ' Limpar a caixa de listagem.
End Sub

Exemplo do mtodo Scale


Este exemplo usa o mtodo Scale para configurar um sistema de coordenadas personalizado, de modo que um grfico de
barras possa ser desenhado em um formulrio. Para experimentar este exemplo, cole o cdigo na seo Declarations de
um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim I, OldFontSize
' Declarar variveis.
Width = 8640: Height = 5760 ' Definir o tamanho do formulrio em twips.
Move 100,100
' Mover a origem do formulrio.
AutoRedraw = -1 ' Ativar AutoRedraw.
OldFontSize = FontSize ' Salvar o tamanho de fonte antigo.
BacColor = QBColor(7)
' Definir o segundo plano como cinza.
Scale (0, 110)-(130, 0)' Definir o sistema de coordenadas personalizado.
For I = 100 To 10 Step -10
Line (0, I)-(2, I) ' Desenhar marcas de escala a cada 10 unidades.
CurrentY = CurrentY + 1.5 ' Mover a posio do cursor.
Print I ' Imprimir o valor da marca de escala esquerda.
Line (ScaleWidth - 2, I)-(ScaleWidth, I)
CurrentY = CurrentY + 1.5 ' Mover a posio do cursor.
CurrentX = ScaleWidth - 9
Print I ' Imprimir o valor da marca de escala direita.
Next I
' Desenhar grfico de barras.
Line (10, 0)-(20, 45), RGB(0, 0, 255), BF
' Primeira barra azul.

Funes Internas

316

Line (20, 0)-(30, 55), RGB(255, 0, 0), BF


' Primeira barra vermelha.
Line (40, 0)-(50, 40), RGB(0, 0, 255), BF
Line (50, 0)-(60, 25), RGB(255, 0, 0), BF
Line (70, 0)-(80, 35), RGB(0, 0, 255), BF
Line (80, 0)-(90, 60), RGB(255, 0, 0), BF
Line (100, 0)-(110, 75), RGB(0, 0, 255), BF
Line (110, 0)-(120, 90), RGB(255, 0, 0), BF
CurrentX = 18: CurrentY = 100 ' Mover a posio do cursor.
FontSize = 14
' Ampliar a fonte para o ttulo.
Print "Widget Quarterly Sales" ' Imprimir o ttulo.
FontSize = OldFontSize ' Restaurar o tamanho de fonte.
CurrentX = 27: CurrentY = 93 ' Mover a posio do cursor.
Print "Planned Vs. Actual" ' Imprimir subttulo.
Line (29, 86)-(34, 88), RGB(0, 0, 255), BF
' Imprimir a legenda.
Line (43, 86)-(49, 88), RGB(255, 0, 0), BF
End Sub

Exemplo do mtodo SetText


Este exemplo usa o mtodo SetText para copiar texto de uma caixa de testo para a rea de transferncia. Para
experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio com uma caixa de texto chamada Text1
e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Const CF_TEXT = 1 ' Definir o formato de bitmap.
Dim I, Msg, Temp ' Declarar variveis.
On Error Resume Next
' Configurar tratamento de erro.
Msg = "Type anything you lie into the text box below."
Text1.Text = InputBox(Msg)
' Obter o texto do usurio.
Msg = "Choose O to copy the contents of the text box "
Msg = Msg & "to the Clipboard."
MsgBox Msg ' Exibir mensagem.
ClipBoard.Clear ' Limpar a rea de transferncia.
Clipboard.SetText Text1.Text ' Colocar texto na rea de transferncia.
If Clipboard.GetFormat(CF_TEXT) Then
Text1.Text = ""
' Limpar a caixa de texto.
Msg = "The text is now on the Clipboard. Choose O "
Msg = Msg & "to copy the text from the Clipboard
Msg = Msg & "to the text box."
MsgBox Msg ' Exibir mensagem.
Temp = Clipboard.GetText(CF_TEXT)
' Obter o texto da rea de transferncia .
For I = Len(Temp) To 1 Step -1 ' Inverter o texto.
Text1.Text = Text1.Text & Mid(Temp, I, 1)
Next I
Else
Msg = "There is no text on the Clipboard."
MsgBox Msg ' Exibir mensagem de erro.
End If
End Sub

Exemplo do mtodo Show


Este exemplo usa o mtodo Show para mostrar um formulrio oculto. Para experimentar este exemplo, cole o cdigo na
seo Declarations de um formulrio no-MDI e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim Msg' Declarar varivel.
Hide
' Ocultar formulrio.
Msg = "Choose O to mae the form reappear."
MsgBox Msg ' Exibir mensagem.
Show ' Mostrar o formulrio novamente.
End Sub

Exemplo do mtodo TextHeight


O mtodo TextHeight usado para centralizar uma linha de texto verticalmente em um formulrio. Para experimentar este
exemplo, cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim HalfWidth, HalfHeight, Msg
' Declarar varivel.
AutoRedraw = -1 ' Ativa AutoRedraw.
BacColor = QBColor(4)
' Definir a cor de segundo plano.
ForeColor = QBColor(15) ' Definir a cor de primeiro plano.
Msg = "Visual Basic" ' Criar mensagem.
FontSize = 48
' Definir a cor da fonte.
HalfWidth = TextWidth(Msg) / 2
' Calcular metade da largura.
HalfHeight = TextHeight(Msg) / 2
' Calcular metade da altura.
Funes Internas

317

CurrentX = ScaleWidth / 2 - HalfWidth ' Definir X.


CurrentY = ScaleHeight / 2 - HalfHeight
' Definir Y.
Print Msg
' Imprimir a mensagem.
End Sub

Exemplo do mtodo TextWidth


O mtodo TextWidth utilizado para centralizar uma linha de texto horizontalmente em um formulrio. Para experimentar
este exemplo, cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim HalfHeight, HalfWidth, Msg
' Declarar variveis.
AutoRedraw = -1 ' Ativa AutoRedraw.
BacColor = QBColor(4)
' Definir a cor de segundo plano.
ForeColor = QBColor(15) ' Definir a cor de primeiro plano.
Msg = "Visual Basic" ' Criar mensagem.
FontSize = 48
' Definir tamanho de fonte.
HalfWidth = TextWidth(Msg) / 2
' Calcular metade da largura.
HalfHeight = TextHeight(Msg) / 2
' Calcular metade da altura.
CurrentX = ScaleWidth / 2 - HalfWidth ' Definir X.
CurrentY = ScaleHeight / 2 - HalfHeight
' Definir Y.
Print Msg
' Imprimir a mensagem.
End Sub

Funes Internas

318

Exemplo da funo GetAutoServerSettings


Este exemplo recupera informaes sobre um objeto remotamente registrado chamado "Hello":
Sub ViewHello()
Dim oRegClass As New RegClass
Dim vRC As Variant
vRC = oRegClass.GetAutoServerSettings _
("HelloProj.HelloClass")
If Not(IsEmpty(vRC)) Then
If vRC(1) Then
MsgBox "Hello is registered remotely on a " _
& "server named: " & vRC(1)
Else
MsgBox "Hello is registered locally."
End If
End if
End Sub

Exemplo do mtodo SetAutoServerSettings


Este exemplo alterna um servidor chamado "Hello" de registro local para remoto e, em seguida, retorna situao anterior:
Sub SwitchHello()
Dim oRegClass As New RegClass
' Registrar Hello para ser executado remotamente
' em uma mquina chamada Server1.
oRegClass.SetAutoServerSettings True, _
"HelloProj.HelloClass",1 _
ServerName:="Server1", Protocol:="ncacn_ip_tcp"
' Registrar Hello para ser novamente executado localmente.
oRegClass.SetAutoServerSettings False, _
"HelloProj.HelloClass"
End Sub

Objeto App
O objeto App um objeto global acessado com a palavra-chave App. Ele determina ou especifica informaes sobre o
ttulo do aplicativo, informaes de verso, o caminho e nome de seu arquivo executvel e arquivos de Ajuda, e se uma
ocorrncia anterior do aplicativo est ou no sendo executada.
Sintaxe
App

Controle ChecBox
Um controle ChecBox exibe um X ao ser selecionado; o X desaparece quando a seleo de ChecBox anulado. Use este
controle para oferecer ao usurio uma opo True/False ou Yes/No. Voc pode usar controles ChecBox em grupos para
exibir mltiplas escolhas onde o usurio pode selecionar um ou mais. Voc tambm pode configurar o valor de um
ChecBox utilizando programa com a propriedade Value.
Sintaxe
ChecBox
Comentrios
Os controles ChecBox e OptionButton funcionam de maneira semelhante, mas com uma diferena importante: qualquer
nmero de controles ChecBox em um formulrio pode ser selecionado ao mesmo tempo. Por outro lado, somente um
OptionButton em um grupo pode ser selecionado em um determinado momento.
Para exibir texto junto ao ChecBox, configure a propriedade Caption. Use a propriedade Value para determinar o estado
do controle selecionado, limpo ou indisponvel.

Controle ComboBox
Um controle ComboBox combina os recursos de um controle TextBox e um controle ListBox os usurios podem inserir
informaes na parte caixa de texto ou selecionar um item da parte caixa de listagem do controle.
Sintaxe
ComboBox
Comentrios
Para adicionar ou excluir itens em um controle ComboBox, use o mtodo AddItem ou RemoveItem. Configure as
propriedades List, ListCount e ListIndex para permitir a um usurio acessar itens no ComboBox. Como alternativa, voc
pode adicionar itens lista usando a propriedade List durante o tempo de criao.
Observao: Um evento Scroll ocorrer em um controle ComboBox somente quando o contedo da parte drop-down do
ComboBox rolado, no a cada vez que o contedo ComboBox for alterado. Por exemplo, se a parte drop-down de um
ComboBox contm cinco itens e o item na parte superior est selecionado, no ocorrer um evento Scroll at que voc
pressione a seta para baixo seis vezes, (ou a tecla PgDn uma vez). Aps isto, ocorre um evento Scroll para cada
pressionamento da tecla de seta para baixo. Entretanto, se em seguida voc pressionar a tecla seta para cima, no
ocorrer um evento Scroll at que voc pressione a tecla de seta para cima seis vezes (ou a tecla PgUp uma vez). Aps
isto, cada pressionamento da tecla seta para cima resultar em um evento Scroll.

Funes Internas

319

Controle CommandButton
Use um controle CommandButton para iniciar, interromper ou finalizar um processo. Ao ser escolhido, um
CommandButton aparece pressionado e, assim, por vezes chamado de boto de pressionamento.
Sintaxe
CommandButton
Comentrios
Para exibir texto em um controle CommandButton, configure sua propriedade Caption de maneira adequada. Um usurio
pode sempre escolher um CommandButton clicando nele. Para permitir ao usurio escolh-lo pressionando ENTER,
configure a propriedade Default como True. Para permitir ao usurio escolher o boto pressionando ESC, configure a
propriedade Cancel do CommandButton como True.

Coleo Controls
Uma coleo cujos elementos representam cada controle em um formulrio, incluindo os elementos da matriz de controle. A
coleo Controls tem uma nica propriedade Count, que especifica o nmero de elementos em uma matriz.
Sintaxe
object.Controls(index)
A sintaxe da coleo Controls tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto Form.
Index
Um nmero inteiro com um intervalo de 0 a Controls.Count 1.
Comentrios
A coleo Controls enumera controles carregados em um formulrio e til para iterar por eles. A coleo Controls
identifica uma varivel intrnseca ao nvel de formulrio chamado Controls. Se voc omitir o espao reservado opcional
object, voc deve incluir a palavra-chave Controls. Entretanto, se voc incluir object, voc pode omitir a palavra-chave
Controls. Por exemplo, as duas linhas de cdigo abaixo tm o mesmo efeito:
MyForm.Controls(6).Top = MyForm.Controls(5).Top + increment
MyForm(6).Top = MyForm(5).Top + increment
Voc pode passar Controls(index) a uma funo cujo argumento seja especificado com uma classe Controls. Voc
tambm pode acessar membros usando seu nome. Por exemplo:
Controls("Command1").Top

Controle DirListBox
Um controle DirListBox exibe diretrios e caminhos durante o tempo de execuo. Use este controle para exibir uma lista
hierrquica de diretrios. Voc pode criar caixas de dilogo que, por exemplo, permitem ao usurio abrir um arquivo de uma
lista de arquivos em todos os diretrios disponveis.
Sintaxe
DirListBox
Comentrios
Configura as propriedades List, ListCount e ListIndex para permitir ao usurio acessar itens em uma lista. Se voc
tambm exibe os controles DriveListBox e FileListBox, pode escrever cdigo para sincroniz-los com o controle
DirListBox e entre si.

Controle DriveListBox
Um controle DriveListBox permite ao usurio selecionar uma unidade de disco vlida durante o tempo de execuo. Use
este controle para exibir uma lista contendo todas as unidades de disco vlidas no sistema de um usurio. Voc pode criar
caixas de dilogo para permitir ao usurio abrir um arquivo a partir de uma lista de arquivos em um disco em qualquer
unidade de disco disponvel.
Sintaxe
DriveListBox
Comentrios
Configura as propriedades List, ListCount e ListIndex para permitir a um usurio acessar itens na lista. Se voc tambm
exibe os controles DirListBox e FileListBox, voc pode escrever cdigo para sincroniz-los com o controle DriveListBox
e entre si.

Controle FileListBox
Um controle FileListBox localiza a lista de arquivos no diretrio especificado pela propriedade Path durante o tempo de
execuo. Use este controle para exibir uma lista de arquivos selecionados por tipo de arquivo. Voc pode criar caixas de
dilogo em seu aplicativo que, por exemplo, permitem ao usurio selecionar um arquivo ou grupo de arquivos.
Sintaxe
FileListBox
Comentrios

Funes Internas

320

Configure as propriedades List, ListCount e ListIndex para permitir a um usurio acessar itens na lista. Se tambm exibir
os controles DirListBox e DriveListBox, voc pode escrever cdigo para sincroniz-los com o controle FileListBox e entre
si.

Objeto Form, coleo Forms


Um objeto Form uma janela ou caixa de dilogo que compe parte da interface de usurio de um aplicativo.
Uma coleo Forms uma coleo cujos elementos representam cada formulrio carregado em um aplicativo. A coleo
inclui o formulrio MDI, formulrios MDI filho e formulrio no-MDI do aplicativo. A coleo Forms tem uma nica
propriedade, Count, que especifica o nmero de elementos na coleo.
Sintaxe
Form
Forms(index)
O espao reservado index representa um nmero inteiro com um intervalo de 0 a Forms.Count - 1.
Comentrios
Voc pode usar a coleo Forms para iterar por todos os formulrios carregados em um aplicativo. Ele identifica uma
varivel intrnseca global chamada Forms. Voc pode passar Forms(index) a uma funo cujo argumento seja
especificado como uma classe Forms.
Os formulrios tm propriedades que determinam aspectos de suas aparncias como, por exemplo, posio, tamanho e
cor; e aspectos de seu comportamento como, por exemplo, se eles so ou no redimensionveis.
Os formulrios tambm podem responder a eventos iniciados por um usurio ou disparados pelo sistema. Por exemplo,
voc pode escrever cdigo em um procedimento de evento Clic de um formulrio que permitiria ao usurio alterar a cor de
um formulrio ao ser clicado.
Alm de propriedades e eventos, voc pode usar mtodos para manipular formulrios usando cdigo. Por exemplo, voc
pode usar o mtodo Move para alterar a localizao e tamanho de um formulrio.
Um tipo especial de formulrio, o formulrio MDI, pode conter outras formas chamadas de formulrios MDI filho. Um
formulrio MDI criado com o comando MDI Form no menu Insert; um formulrio MDI filho criado selecionando-se New
Form no menu File e, em seguida, configurando a propriedade MDIChild como True.
Voc pode criar mltiplas ocorrncias de formulrios em cdigo, usando a palavra-chave New em instrues Dim, Set e
Static.
Ao criar formulrios, configure a propriedade BorderStyle para definir a borda de um formulrio e configure a propriedade
Caption para colocar texto na barra de ttulo. Em cdigo, voc pode usar os mtodos Hide e Show para tornar formulrios
invisveis ou visveis durante o tempo de execuo.
Observao: Configurar BorderStyle como 0 remove a borda. Se voc deseja que seu formulrio tenha uma borda sem
barra de ttulo, caixa do menu Control, boto Maximize e boto Minimize, exclua qualquer texto da propriedade Caption
do formulrio e configure as propriedades ControlBox, MaxButton e MinButton como False.
Form um tipo de dados Object. Voc pode declarar variveis como tipo Form antes de configur-las como uma
ocorrncia de um tipo de formulrio que foi declarado durante o tempo de criao. De maneira semelhante, voc pode
passar um argumento a um procedimento como um tipo Form.
Os formulrios tambm podem funcionar como origens em uma conversao DDE, com um controle Label, PictureBox ou
TextBox fornecendo os dados.
Voc pode acessar a coleo de controles em um Form usando a coleo Controls. Por exemplo, para ocultar todos os
controles em um Form voc pode usar cdigo semelhante a este:
For Each Control in Form1.Controls
Control.Visible = False
Next Control

Controle Frame
Um controle Frame fornece um agrupamento identificvel para controles. Voc tambm pode usar um Frame para
subdividir a funcionalidade de um formulrio por exemplo, para separar grupos de controles OptionButton.
Sintaxe
Frame
Comentrios
Para agrupar os controles, primeiro desenhe o controle Frame e, em seguida, desenhe os controles dentro de Frame. Isto
permite mover ao mesmo tempo o Frame e os controles nele contidos. Se voc desenha um controle fora de Frame e, em
seguida, tenta mov-lo para fora, o controle estar sobre o Frame e voc ter que mover o Frame e os controles
separadamente.
Para selecionar controles mltiplos em um Frame, mantenha pressionado a tecla CTRL ,enquanto usa o mouse para
desenhar uma caixa ao redor dos controles.

Controles HScrollBar, VScrollBar


Barras de rolagem oferecem navegao fcil por uma longa lista de itens ou uma grande quantidade de informaes. Eles
tambm podem fornecer uma representao anloga da posio atual. Voc pode usar uma barra de rolagem como
dispositivo de entrada ou indicador de velocidade ou quantidade por exemplo, para controlar o volume de um jogo de
computador, ou visualizar o tempo decorrido em um processo cronometrado.
Sintaxe
HScrollBar
Funes Internas

321

VScrollBar
Comentrios
Quando voc est usando uma barra de rolagem como indicador de quantidade ou velocidade, ou como um dispositivo de
entrada, use as propriedade Max e Min para configurar o intervalo adequado para o controle.
Para especificar a quantidade de alterao a ser reportada em uma barra de rolagem, use a propriedade LargeChange
para clicar na barra de rolagem e a propriedade SmallChange para clicar nas setas, ao final da barra de rolagem. A
propriedade Value da barra de rolagem aumenta ou diminui de acordo com os valores configurados para as propriedades
LargeChange e SmallChange. Voc pode posicionar a caixa de rolagem durante o tempo de execuo configurando
Value entre 0 e 32.767, inclusive.

Funes Internas

322

Controle Image
Use o controle Image para exibir um grfico. Um controle Image pode exibir um elemento grfico a partir de um bitmap,
cone ou metarquivo, assim como arquivos metarquivo aprimorados, JPEG ou GIF.
Sintaxe
Image
Comentrios
O controle Image usa menos recursos de sistema e regenera-se mais rapidamente que um controle PictureBox, mas ele
suporta apenas um subconjunto de propriedades, eventos e mtodos de PictureBox. Use a propriedade Stretch para
determinar se o grfico est escalonado para ajustar-se ao controle ou vice-versa. Embora voc possa colocar um controle
Image dentro de um recipiente, um controle Image no pode funcionar como recipiente.

Controle Label
Um controle Label um controle grfico que voc pode usar para exibir texto que o usurio no pode alterar diretamente.
Sintaxe
Label
Comentrios
Voc pode escrever cdigo que altera o texto exibido por um controle Label em resposta a eventos durante o tempo de
execuo. Por exemplo, se o seu aplicativo leva alguns minutos para efetivar uma alterao, voc pode exibir uma
mensagem do status do processamento em um Label. Voc tambm pode usar um Label para identificar um controle, por
exemplo, um controle TextBox, que no tem sua prpria propriedade Caption.
Configure as propriedades AutoSize e WordWrap, caso queira que Label exiba corretamente linhas de comprimento
varivel ou nmero varivel de linhas.
Um controle Label tambm pode funcionar como um destino em uma conversao DDE. Configure a propriedade LinTopic
para estabelecer um vnculo, a propriedade LinItem para especificar um item para a conversao, e a propriedade
LinMode para ativar o vnculo. Quando estas propriedades tiverem sido configuradas, o Visual Basic tenta iniciar a
conversao e exibe uma mensagem, caso no consiga.
Configure a propriedade UseMnemonic como True caso queira definir um caractere na propriedade Caption de Label
como uma tecla de acesso. Ao definir uma tecla de acesso em um controle Label, o usurio pode pressionar e manter
pressionado ALT+ o caractere que voc designou para mover o foco at o prximo controle na ordem de tabulao.

Controle Line
Um controle Line um controle grfico exibido como uma linha horizontal, vertical ou diagonal.
Sintaxe
Line
Comentrios
Voc pode usar um controle Line durante o tempo de criao para desenhar linhas em formulrios. Durante o tempo de
execuo, voc pode usar um controle Line ao invs de, ou alm do mtodo Line. As linhas desenhadas com o controle
Line permanecem no formulrio, mesmo que a configurao da propriedade AutoRedraw seja False. Os controles Line
podem ser exibidos em formulrios, caixas de figura e em molduras. Voc no pode usar o mtodo Move para mover um
controle Line durante o tempo de execuo, mas voc pode mover ou redimension-lo alterando suas propriedades X1, X2,
Y1 e Y2. O efeito de configurar a propriedade BorderStyle depende da configurao da propriedade BorderWidth. Se
BorderWidth no for 1 e BorderStyle no for 0 ou 6, BorderStyle ser configurado como 1.

Controle ListBox
Um controle ListBox exibe uma lista de itens onde o usurio pode selecionar um ou mais. Se o nmero de itens excede o
nmero que pode ser exibido, uma barra de rolagem adicionada automaticamente ao controle ListBox.
Se nenhum item for selecionado, o valor da propriedade ListIndex -1. O primeiro item da lista ListIndex 0 e o valor da
propriedade ListCount sempre um a mais que o maior valor de ListIndex.
Sintaxe
ListBox
Comentrios
Para adicionar ou excluir itens em um controle ListBox, use o mtodo AddItem ou o mtodo RemoveItem. Configure as
propriedades List, ListCount e ListIndex para permitir que um usurio acesse itens na ListBox. Como alternativa, voc
pode adicionar itens lista usando a propriedade List durante o tempo de criao.

Objeto MDIForm
Um formulrio MDI (interface de documento mltiplo) uma janela que funciona como segundo plano de um aplicativo e
o recipiente de formulrios que tenham suas propriedades MDIChild configuradas como True.
Sintaxe
MDIForm
Comentrios
Voc cria um objeto MDIForm escolhendo MDI Form no menu Insert.
Um aplicativo somente pode ter um objeto MDIForm, mas muitos formulrios MDI filho. Se um formulrio MDI filho tem
menus, a barra de menu do formulrio filho substitui automaticamente a barra de menu do objeto MDIForm quando o
formulrio MDI filho est ativo. Um formulrio MDI filho minimizado exibido como um cone dentro do MDIForm.
Um objeto MDIForm pode conter apenas controles Menu e PictureBox e controles personalizados que tenham uma
propriedade Align. Para colocar outros controles em um MDIForm, voc pode desenhar uma caixa de figura em um
formulrio e, em seguida, desenhar outros controles dentro da caixa de imagem. Voc pode usar o mtodo Print para exibir

Funes Internas

323

texto em uma caixa de figura em um MDIForm, mas voc no pode usar este mtodo para exibir texto no prprio
MDIForm.
Um objeto MDIForm no pode ter janela restrita.
Os formulrios MDI filho so criados independentemente do MDIForm, mas esto sempre contidos no MDIForm durante o
tempo de execuo.
Voc pode acessar a coleo de controles em um MDIForm usando a coleo Controls. Por exemplo, para ocultar os
controles em um MDIForm voc pode usar cdigo semelhante a este:
For Each Control in MDIForm1.Controls
Control.Visible = False
Next Control
A propriedade Count do MDIForm informa o nmero de controles na coleo Controls.

Funes Internas

324

Controle Menu
Um controle Menu exibe um menu personalizado para seu aplicativo. Um menu pode incluir comandos, submenus e barras
separadoras. Cada menu que voc cria pode ter at quatro nveis de submenus.
Sintaxe
Menu
Comentrios
Para criar um controle Menu, use o Menu Editor. Digite o nome do controle Menu na caixa Caption. Para criar uma barra
separadora, digite um nico hfen (-) na caixa Caption. Para exibir uma marca de seleo esquerda de um item de menu,
selecione a caixa Checed.
Embora voc possa configurar algumas propriedades do controle Menu usando o Menu Editor, todas as propriedades do
controle Menu so exibidas na janela Properties. Para exibir as propriedades de um controle Menu, selecione o nome do
menu na lista Objects na parte superior da janela Properties.
Quando voc cria um aplicativo MDI, a barra de menu no formulrio MDI filho substitui a barra de menu no objeto MDIForm
quando o formulrio filho est ativo.

Controle OptionButton
Um controle OptionButton exibe uma opo que pode ser ligada ou desligada.
Sintaxe
OptionButton
Comentrios
Normalmente, os controles OptionButton so usados em um grupo de opes para exibir opes entre as quais pode-se
selecionar uma. Voc agrupa os controles OptionButton desenhando-os em recipientes como, por exemplo, um controle
Frame, um controle PictureBox ou um formulrio. Para agrupar controles OptionButton em um Frame ou PictureBox,
desenhe primeiro o Frame ou PictureBox e, em seguida, desenhe o OptionButton dentro dele. Todos os controles
OptionButton dentro do mesmo recipiente funcionam como um nico grupo.
Embora os controles OptionButton e ChecBox possam parecer ter um funcionamento semelhante, existe uma diferena
importante: quando um usurio seleciona um OptionButton, os outros controles OptionButton no mesmo grupo ficam
automaticamente indisponveis. Ao contrrio, pode-se selecionar qualquer nmero de controles ChecBox.

Controle PictureBox
Um controle PictureBox pode exibir um elemento grfico de um arquivo de bitmap, cone ou metarquivo, assim como de
metarquivos aprimorados, arquivos JPEG ou GIF. Ele recorta o elemento grfico se o controle no for grande o suficiente
para exibir a imagem inteira.
Sintaxe
PictureBox
Comentrios
Voc tambm pode usar um controle PictureBox para agrupar controles OptionButton e para exibir sada de exibio de
mtodos grficos e texto escrito com o mtodo Print.
Para fazer com que um controle PictureBox redimensione-se automaticamente para exibir um elemento grfico inteiro,
configure sua propriedade AutoSize como True.
Para criar animao ou simulao, voc pode manipular propriedades e mtodos grficos em cdigo. Propriedades e
eventos grficos so teis para operaes de impresso durante o tempo de execuo como, por exemplo, modificar o
formato de um formulrio na tela, para impresso.
Um controle PictureBox tambm pode funcionar como um vnculo de destino em uma conversao DDE.
Os controles PictureBox e Data so os nicos controles padro do Visual Basic que voc pode colocar na rea interna de
um formulrio MDI. Voc pode us-lo para controlar grupos na parte superior ou inferior da rea interna para criar uma
barra de ferramentas ou barra de status.

Controle Shape
{ewc
HLP95EN.DLL,DYNALIN,"Consulte
tambm":"vbobjShapeC;vbproBoosOnlineJumpTopic"}
HLP95EN.DLL,DYNALIN,"Exemplo":"vbobjShapeX":1}
{ewc HLP95EN.DLL,DYNALIN,"Propriedades":"vbobjShapeP"}
HLP95EN.DLL,DYNALIN,"Mtodos":"vbobjShapeM"}
{ewc HLP95EN.DLL,DYNALIN,"Eventos":"vbobjShapeE"}
HLP95EN.DLL,DYNALIN,"Especificidades":"vbobjShapeS"}

{ewc
{ewc
{ewc

Um controle Shape um controle grfico exibido como retngulo, quadrado, oval, crculo, retngulo arredondado ou
quadrado arredondado.
Sintaxe
Shape
Comentrios
Use controles Shape durante o tempo de criao ao invs de, ou alm de acionar mtodos Circle e Line durante o tempo
de execuo. Voc pode desenhar um controle Shape em um recipiente, mas ele no pode funcionar como um recipiente.
O efeito da configurao da propriedade BorderStyle depende da configurao da propriedade BorderWidth. Se
BorderWidth no for 1 e BorderStyle no for 0 ou 6, BorderStyle configurada como 1.

Controle TextBox
Um controle TextBox, chamado algumas vezes de campo de edio ou controle de edio, exibe as informaes inseridas
durante o tempo de criao, digitadas pelo usurio ou atribudas ao controle em cdigo durante o tempo de execuo.
Sintaxe
TextBox

Funes Internas

325

Comentrios
Para exibir linhas mltiplas de texto em um controle TextBox, configure a propriedade MultiLine como True. Se um
TextBox de linhas mltiplas no tem uma barra de rolagem horizontal, o texto muda automaticamente de linha, mesmo
quando o TextBox for redimensionado. Para personalizar a combinao de barra de rolagem, em um TextBox, configure a
propriedade ScrollBars.
As barras de rolagem sempre aparecero no TextBox quando sua propriedade MultiLine for configurada como True, e sua
propriedade ScrollBars for configurada como qualquer coisa, exceto None (0).
Se voc configura a propriedade MultiLine como True, pode usar a propriedade Alignment para configurar o alinhamento
do texto dentro do TextBox. O texto justificado esquerda como padro. Se a propriedade MultiLine for False, a
configurao da propriedade Alignment no tem qualquer efeito.
Um controle TextBox tambm pode funcionar como um vnculo de destino em uma conversao DDE.

Controle Timer
Um controle Timer pode executar cdigo a intervalos regulares provocando a ocorrncia de um evento Timer.
Sintaxe
Timer
Comentrios
O controle Timer, invisvel para o usurio, til para processamento em segundo plano.
Voc no pode configurar a propriedade Enabled de um Timer como uma seleo mltipla de controles diferentes de
controles Timer.
Praticamente no existe limite ao nmero de controles de cronmetro ativos que voc pode ter em Visual Basic 5.0
executado sob o Windows 95 ou o Windows NT.

Exemplo de coleo Forms


Este exemplo preenche uma caixa de listagem com as legendas de todos os formulrios atualmente carregados.
Private Sub Form_Activate ()
Dim I
' Declarar varivel.
' Preencher novamente a lista (no caso de uma ocorrncia ter sido adicionada ou removida).
lstForms.Clear
' Limpar a caixa de listagem.
For I = 0 To Forms.Count - 1
lstForms.AddItem Forms(I).Caption
Next I
End Sub

Exemplo de coleo Controls


Este exemplo ativa todos os controles atualmente carregados em um formulrio (exceto menus).
Sub EnableControlsOn (Frm As Form, State As Integer)
Dim I
' Declarar varivel.
For I = 0 To Frm.Controls.Count - 1
If Not TypeOf Frm.Controls(I) Is Menu Then
Frm.Controls(I).Enabled = State
End If
Next I
End Sub

Controle OLE Container


O controle OLE Container permite adicionar objetos inserveis aos formulrios no seu aplicativo em Visual Basic. Com o
controle OLE Container, voc pode:
Criar um espao reservado no seu aplicativo para um objeto inservel. Durante o tempo de execuo voc pode criar o
objeto que exibido dentro do OLE Container ou alterar um objeto que voc colocou no controle OLE Container durante o
tempo de criao.
Criar um objeto vinculado em seu aplicativo.
Acople o controle OLE Container a um banco de dados usando o controle Data.
Voc cria o objeto durante o tempo de criao usando a caixa de dilogo Insert Object (que contm os comandos Insert
Object, Paste Special e assim por diante) ou durante o tempo de execuo configurando as propriedades adequadas.
Quando voc move um controle OLE Container em um formulrio usando o mtodo ObjectMove, os valores das
propriedade Height e Width do objeto podem ser ligeiramente diferentes aps movido. Isto ocorre porque os parmetros do
mtodo ObjectMove so valores de pixel convertidos para o modo de escala do formulrio atual. A converso de pixels em
twips e de volta nem sempre resulta em valores idnticos.
Usando menus pop-up de controle OLE Container
Toda vez que voc desenha um controle OLE Container em um formulrio, exibida a caixa de dilogo Insert Object. Use
esta caixa de dilogo para criar um objeto vinculado ou incorporado. Se voc escolher Cancel, nenhum objeto ser criado.
Durante o tempo de criao, clique no controle OLE Container com o boto direito do mouse para exibir um menu pop-up.
O comando exibido neste menu pop-up depende do estado do OLE Container conforme mostrado na tabela abaixo:
Comando
Ativado no menu pop-up quando
Insert Object
Sempre ativado.
Paste Special
O objeto Clipboard contm um objeto vlido.
Delete Embedded Object
O controle OLE Container contm um objeto
Funes Internas

326

Delete Lined Object


Create Lin
Create Embedded Object

incorporado.
O controle OLE Container contm um objeto
vinculado.
A propriedade SourceDoc est configurada.
A propriedade Class ou SourceDoc est configurada.

Um controle OLE Container pode conter apenas um objeto de cada vez. Voc pode criar um objeto incorporado ou
vinculado de diversas maneiras:
Use as caixas de dilogo Insert Object ou Paste Special (tempo de execuo ou tempo de criao).
Configure a propriedade Class na janela Properties , clique no controle OLE Container com o boto direito do mouse e
selecione o comando adequado (somente tempo de criao).
Use o mtodo adequando do controle OLE Container.
Localizando classes de nome
Voc pode obter uma lista de nomes de classe disponveis para o seu aplicativo selecionando a propriedade Class na
janela Properties e clicando no boto Properties.
Observao: A caixa de dilogo Insert Object no exibe uma lista de nomes de classe. Esta caixa de dilogo exibe
nomes amigveis para cada classe de objetos, que geralmente so mais longos e mais facilmente compreendidos.

Propriedade Class
Retorna ou configura o nome de classe de um objeto incorporado .
Sintaxe
object.Class [ = string]
A sintaxe da propriedade Class tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma expresso de seqncia de caracteres especificando o
nome de classe.
Comentrios
Um nome de classe define o tipo de um objeto. Os aplicativos que suportam componentes ActiveX qualificam totalmente os
nomes de classe de seus objetos usando qualquer uma das sintaxes abaixo:
application.objecttype.version
objecttype.version
A sintaxe de nome de classe de componente ActiveX tem as seguintes partes:
Parte
Descrio
application
O nome do aplicativo que fornece o objeto.
objecttype
O nome do objeto conforme definido na biblioteca de objetos.
version
O nmero de verso do objeto ou aplicativo que fornece o
objeto.
Por exemplo, O Microsoft Excel verso 5.0 suporta um grande nmero de objetos, incluindo planilhas e grficos. Seus
nomes de classe so Excel.Sheet.5 e Excel.Chart.5. O Microsoft WordArt verso 2.0 suporta um nico objeto com o nome
de classe MSWordArt.2.
Observao: Alguma documentao de programao de componente ActiveX refere-se sintaxe de nome de classe
como uma identificao programtica.
Para visualizar uma lista de nomes de classe disponveis em seu sistema, selecione o controle OLE Container, selecione a
propriedade Class na janela Properties e clique no boto compilador.
Copiar um objeto da rea de transferncia do sistema atualiza a propriedade Class do controle. Por exemplo, se voc
colar um grfico do Microsoft Excel da rea de transferncia para um controle OLE Container que anteriormente continha
uma planilha do Microsoft Excel, sua configurao de propriedade Class se altera de Excel.Sheet.5 para Excel.Chart.5.
Voc pode colar um objeto da rea de transferncia do sistema durante o tempo de execuo com o mtodo Paste ou o
mtodo PasteSpecialDlg.

Propriedade ObjectVerbFlags
Retorna o estado do menu (por exemplo, ativado ou desativado, selecionado e assim por diante) para cada verbo em uma
determinada matriz ObjectVerbs.
Sintaxe
object.ObjectVerbFlags(number)
A sintaxe da propriedade ObjectVerbFlags tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica indicando o elemento na matriz.
Valores de retorno
A propriedade ObjectVerbFlags retorna os seguintes valores:
Constante
Valor
Descrio
Funes Internas

327

vbOLEFlagCheced
vbOLEFlagDisabled

&H0008
&H0002

vbOLEFlagEnabled
vbOLEFlagGrayed
vbOLEFlagSeparator

&H0000
&H0001
&H0800

O item de menu est selecionado.


O item de menu est desativado (mas
no esmaecido).
O item de menu est ativado.
O item de menu est esmaecido.
O item de menu uma barra separadora.

Observao: Estas constantes tambm esto listadas na biblioteca de procedimentos e objetos do Visual Basic no Object
Browser.
Comentrios
O primeiro verbo na matriz ObjectVerbs o verbo padro. A matriz ObjectVerbFlags contm informaes sobre o estado
do menu (por exemplo, esmaecido, selecionado e assim por diante) para cada verbo na matriz ObjectVerbs.
Ao exibir um menu contendo os verbos de um objeto, verifique o valor desta propriedade para ver como o item est
configurado para ser exibido.

Funes Internas

328

Propriedade SizeMode
Retorna ou configura um valor especificando como o controle OLE Container dimensionado ou como sua imagem
exibida quando ele contm um objeto.
Sintaxe
object.SizeMode [ = value]
A sintaxe da propriedade SizeMode tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro ou constante especificando como o
controle dimensionado e como sua imagem exibida,
conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
Valor
vbOLESizeClip
0

Descrio
(Padro) Clip. O objeto exibido em tamanho
real. Se o objeto for maior que o controle OLE
Container, sua imagem ser recortada pelas
bordas
do controle.

vbOLESizeStretch

vbOLESizeAutoSize

vbOLESizeZoom

Stretch. A imagem do objeto dimensionada


para preencher o controle OLE Container. A
imagem pode no manter as propores
originais do objeto.
Autosize. O controle OLE Container
redimensionado para exibir o objeto nmero
inteiro.
Zoom. O objeto redimensionado para
preencher o controle OLE Container tanto
quanto possvel ao mesmo tempo que
mantm as propores originais do objeto.

Comentrios
Quando SizeMode for configurado como 2 (Autosize), o controle OLE Container ser automaticamente redimensionado
quando o tamanho da exibio de um objeto se alterar. Quando isto ocorrer, o evento Resize ser acionado antes que o
controle OLE Container seja automaticamente redimensionado. Os argumentos heightnew e widthnew no procedimento de
evento Resize indicam o tamanho ideal para exibio do objeto (este tamanho determinado pelo aplicativo que criou o
objeto). Voc pode dimensionar o controle alterando os valores dos argumentos heightnew e widthnew no procedimento de
evento Resize.

Funes Internas

329

Propriedade Data
Retorna ou configura um identificador como um objeto de memria ou objeto de interface de dispositivo grfico (GDI)
contendo dados em um formato especfico. No disponvel durante o tempo de criao.
Sintaxe
object.Data [ = number]
A sintaxe da propriedade Data tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um nmero inteiro Long especificando um identificador.
Comentrios
Configura esta propriedade para enviar dados a um aplicativo que criou um objeto. Antes de usar a propriedade Data,
configure a propriedade Format para especificar o tipo de dados contido no objeto de memria ou objeto GDI.
Voc pode obter uma lista de formatos aceitveis para um objeto usando as propriedades ObjectAcceptFormats e
ObjectGetFormats.
Configurar esta propriedade como 0 libera a memria associada ao identificador.
Dica Automation oferece uma soluo mais fcil e mais confivel para enviar dados e comandos de um objeto. Se um
objeto suportar automao, voc pode acessar o objeto atravs da propriedade Object ou usando as funes
CreateObject e GetObject.

Propriedade DataText
Retorna uma seqncia de caracteres do objeto especificado ou configura uma seqncia de caracteres para este.
Sintaxe
object.DataText [ = string]
A sintaxe da propriedade DataText tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma expresso de seqncia de caracteres especificando a
seqncia de caracteres.
Comentrios
Para enviar uma seqncia de caracteres a um objeto, configure primeiro a propriedade Format como um formato
suportado pelo objeto. Use as propriedade ObjectGetFormats e ObjectAcceptFormats para obter uma lista de formato
suportada por um objeto.
Ao obter dados de um objeto, a propriedade DataText retorna a seqncia de caracteres do objeto, terminando no primeiro
caractere nulo.
A seqncia de caracteres DataText pode ter o tamanho que a memria disponvel permitir.
Dica Automao oferece uma soluo mais fcil e mais confivel para enviar dados e comandos de e para um objeto. Se
um objeto suportar Automation, voc pode acess-lo atravs da propriedade Object ou usando as funes CreateObject e
GetObject.

Funes Internas

330

Propriedade FileNumber
Retorna ou configura o nmero do arquivo a ser usado ao salvar ou carregar um objeto ou retorna o ltimo nmero de
arquivo usado. No disponvel durante o tempo de criao.
Observao:
A propriedade FileNumber includa para compatibilidade com a propriedade Action em verses
anteriores. Para a funcionalidade atual, use os mtodos SaveToFile e ReadFromFile.
Sintaxe
object.FileNumber [ = number]
A sintaxe da propriedade FileNumber tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica especificando o nmero do
arquivo.
Comentrios
O nmero de arquivo deve corresponder a um arquivo binrio aberto.
Voc pode usar esta propriedade para especificar o nmero do arquivo a ser aberto com o mtodo ReadFromFile ou salvo
com os mtodos SaveToFile ou SaveToOle1File.

Propriedade HostName
Retorna ou configura o nome de hospedeiro legvel pelo usurio de seu aplicativo em Visual Basic.
Sintaxe
object.HostName [ = name]
A sintaxe da propriedade HostName tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
name
Uma expresso de seqncia de caracteres especificando o
nome do hospedeiro.
Comentrios
Ao editar um objeto, a configurao da propriedade HostName pode ser exibida no ttulo da janela do objeto. Entretanto,
alguns aplicativos que fornecem objetos no exibem HostName.

Propriedade lpOleObject
Retorna o endereo do objeto.
Sintaxe
object.lpOleObject
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Muitas chamadas de funo nas DLLs ActiveX exigem o endereo de um objeto como argumento. Passe o valor
especificado na propriedade IpOleObject ao efetuar chamadas API a DLLs ActiveX. O valor 0 se nenhum objeto estiver
atualmente exibido. Se uma chamada for feita a uma API que efetue uma chamada de retorno ao controle OLE Container, o
resultado imprevisvel.
O endereo retornado por esta propriedade um ponteiro para a interface IpOleObject para o objeto ativo.

Propriedade ObjectAcceptFormatsCount
Retorna o nmero de formatos que podem ser aceitos por um objeto.
Sintaxe
object.ObjectAcceptFormatsCount
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Use esta propriedade para obter o nmero de elementos na matriz de propriedade ObjectAcceptFormats.

Propriedade DisplayType
Retorna ou configura um valor indicando se um objeto exibir seu contedo ou um cone.
Sintaxe
object.DisplayType [ = value]
A sintaxe da propriedade DisplayType tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro ou constante especificando se um objeto
exibe o contedo ou um cone, conforme descrito em

Funes Internas

331

Configuraes.
Configuraes
As configuraes de value so:
Constante
Valor
vbOLEDisplayContent
0
vbOLEDisplayIcon

Descrio
(Padro) Content. Quando o controle OLE
Container contm um objeto, os dados do
objeto so exibidos no controle.
Icon. Quando o controle OLE Container
contm um objeto, o cone do objeto
exibido no controle.

Comentrios
Esta propriedade determina a configurao padro da caixa de seleo Display As Icon As Icon nas caixas de dilogo
Insert Object e Paste Special. Quando voc exibir estas caixas de dilogo durante o tempo de execuo (com os mtodos
InsertObjDlg ou PasteSpecialDlg) ou durante o tempo de criao, a caixa de seleo Display As Icon ser
automaticamente selecionada se esta propriedade for configurada como 1 (Icon).
Ao criar um objeto durante o tempo de execuo usando os mtodos CreateEmbed ou CreateLin, use a propriedade
DisplayType para determinar se o objeto ser exibido como um cone (configurar DisplayType = 1) ou se os dados do
objeto forem exibidos no controle (configure DisplayType = 0).
Uma vez criado um objeto, voc no pode alterar o tipo de exibio.

Propriedade ObjectGetFormats
Retorna a lista de formatos que podem ser fornecidos por um objeto.
Sintaxe
object.ObjectGetFormats(number)
A sintaxe da propriedade ObjectGetFormats tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica indicando o elemento na matriz.
Comentrios
A lista uma matriz de seqncia de caracteres de base zero. Elementos da matriz podem ser usados para configurar a
propriedade Format ao obter dados de um objeto usando as propriedades Data e DataText.

Propriedade ObjectGetFormatsCount
Retorna o nmero de formatos que um objeto pode fornecer.
Sintaxe
object.ObjectGetFormatsCount
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Use esta propriedade para determinar o nmero de elementos na matriz de propriedades ObjectGetFormats.

Propriedade OLEType
Retorna o status do objeto em um controle OLE Container.
Sintaxe
object.OLEType
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Valores de retorno
A propriedade OLEType retorna os seguintes valores:
Constante
Valor
Descrio
vbOLELined
0
Vinculado. O controle OLE Container contm
um objeto vinculado. Todos os dados do objeto
so gerenciados pelo aplicativo que o criou.
Quando o objeto for salvo usando o mtodo
SaveToFile, somente informaes de vnculo
como, por exemplo SourceDoc, SourceItem e
assim por diante, so salvas no arquivo
especificado por seu aplicativo em Visual Basic.
vbOLEEmbedded
1
Incorporado. O controle OLE Container contm
um objeto incorporado. Todos os dados do
objeto so gerenciados dentro do aplicativo em
Visual Basic. Quando o objeto salvo usando o
mtodo SaveToFile, todos os dados associados
ao objeto so salvos no arquivo especificado.
vbOLENone
3
Nenhum. O controle OLE Container no

Funes Internas

332

contm um objeto.
Comentrios
Use esta propriedade para determinar se o controle OLE Container contm um objeto ou determina o tipo de objeto contido
no controle OLE Container.
Use a propriedade AppIsRunning para determinar se o aplicativo que criou o objeto est sendo executado.
Ao criar um objeto, use a propriedade OLETypeAllowed para determinar o tipo de objeto que pode ser criado.

Propriedade ObjectVerbs
Retorna a lista de verbos suportada por um objeto.
Sintaxe
object.ObjectVerbs(number)
A sintaxe da propriedade ObjectVerbs tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica indicando o elemento na matriz.
Comentrios
ObjectVerbs uma matriz de seqncia de caracteres de base zero. Use esta propriedade junto com a propriedade
ObjectVerbsCount para obter os verbos suportados por um objeto. Estes verbos so usados para determinar uma ao a
ser executada quando um objeto for ativado com o mtodo DoVerb. A lista de verbos na matriz varia de objeto para objeto e
depende das condies atuais.
Cada objeto pode suportar seu prprio conjunto de verbos. Os valores abaixo representam verbos padro suportados por
cada objeto:
Constante
Valor
Descrio
vbOLEPrimary
0
A ao padro para o objeto.
vbOLEShow
-1
Ativa o objeto para edio. Se o
aplicativo que criou o objeto suportar
ativao in-loco, o objeto ser ativado
dentro do controle OLE Container.
vbOLEOpen
-2
Abre o objeto em uma janela de
aplicativo separada. Se o aplicativo que
criou o objeto suportar a ativao in-loco,
o objeto ser ativado em sua prpria
janela.
vbOLEHide
-3
Para objetos incorporados, oculta o
aplicativo que criou o objeto.
vbOLEUInPlaceUIActivate
-4
Se o objeto suportar ativao in-loco,
ativa o objeto para ativao in-loco e
mostra qualquer ferramenta de interface
de usurio. Se o objeto no suportar
ativao in-loco, o objeto no ser
ativado e ocorrer um erro.
vbOLEInPlaceActivate
-5
Se o usurio move o foco para o controle
OLE Container, cria uma janela e
prepara o objeto para ser editado.
Ocorrer um erro se o objeto no
suportar ativao com um nico clique
de mouse.
vbOLEDiscardUndoState
-6
Usado quando o objeto ativado para
edio para descartar todos os registros
de alteraes que o aplicativo do objeto
pode desfazer.
Observao: Estes verbos podem ser listados na matriz de propriedades ObjectVerbs.
O primeiro verbo na matriz ObjectVerbs, ObjectVerbs(0), o verbo padro. A menos que seja especificado de maneira
diferente, este verbo ativa o objeto.
Os verbos restantes na matriz podem ser exibidos em um menu. Se for adequado exibir o verbo padro em um menu, o
verbo padro tem duas entradas na matriz ObjectVerbs.
Os aplicativos que exibem objetos geralmente incluem um comando Object no menu Edit. Quando o usurio escolhe Edit
Object, um menu exibe os verbos do objeto. Use as propriedades ObjectVerbs, ObjectVerbsCount e ObjectVerbFlags
para criar este tipo de menu durante o tempo de execuo.
A lista de verbos suportados por um objeto pode variar, dependendo do estado do objeto. Para atualizar a lista de verbos
suportada por um objeto, use o mtodo FetchVerbs. Certifique-se de atualizar a lista de verbos antes de apresent-la ao
usurio.
Para exibir automaticamente os verbos na matriz ObjectVerbs em um menu pop-up quando o usurio clica em um objeto
com o boto direito do mouse, configure a propriedade AutoVerbMenu como True.

Funes Internas

333

Propriedade ObjectVerbsCount
Retorna o nmero de verbos suportados por um objeto.
Sintaxe
object.ObjectVerbsCount
O object uma expresso de objeto que avaliada como um controle OLE Container.
Comentrios
Use esta propriedade para determinar o nmero de elementos na matriz de propriedades ObjectVerbs.
A lista de verbos suportada por um objeto pode variar dependendo do estado do objeto. Para atualizar a lista de verbos
suportada por um objeto, use o mtodo FetchVerbs.

Funes Internas

334

Propriedade SourceDoc
Retorna ou configura o nome de arquivo a ser usado quando voc cria um objeto.
Observao: Voc configura a propriedade SourceDoc para compatibilidade com a propriedade Action em verses
anteriores. Para funcionalidade atual, use os mtodos CreateEmbed e CreateLin.
Sintaxe
object.SourceDoc [ = name]
A sintaxe da propriedade SourceDoc tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
name
Uma expresso de seqncia de caracteres especificando
um nome de arquivo.
Comentrios
Use a propriedade SourceDoc para especificar o arquivo a ser vinculado ao criar um objeto vinculado usando a
propriedade Action. Use a propriedade SourceItem para especificar dados dentro de um arquivo a ser vinculado.
Ao criar um objeto incorporado usando a propriedade Action, se a propriedade SourceDoc estiver configurada como um
nome de arquivo vlido, um objeto incorporado ser criado usando o arquivo especificado como modelo.
Quando um objeto vinculado for criado, a propriedade SourceItem ser concatenada propriedade SourceDoc. Durante o
tempo de execuo, a propriedade SourceItem retorna uma seqncia de caracteres de comprimento zero ("") e a
propriedade SourceDoc retorna o caminho completo at o arquivo vinculado, seguido de um ponto de exclamao (!) ou
barra invertida (\), seguido do SourceItem. Por exemplo:
"C:\WOR\QTR1\REVENUE.XLS!R1C1:R30C15"

Propriedade SourceItem
Retorna ou configura os dados no arquivo a ser vinculado quando voc cria um objeto vinculado.
Sintaxe
object.SourceItem [ = string]
A sintaxe da propriedade SourceItem tem estas partes:
parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma expresso de seqncia de caracteres especificando os
dados a serem vinculados.
Comentrios
OLETypeAllowed deve ser configurado como 0 (Lined) ou 2 (Either) ao usar esta propriedade. Use a propriedade
SourceDoc para especificar o arquivo a ser vinculado.
Cada objeto usa sua prpria sintaxe para descrever unidades de dados. Para configurar esta propriedade, especifique uma
unidade de dados reconhecida pelo objeto. Por exemplo, ao vincular ao Microsoft Excel, especifique o SourceItem usando
uma referncia de clula ou intervalo de clulas como, por exemplo, R1C1 ou R3C4:R9C22, ou um intervalo nomeado, por
exemplo, Receitas.
Para determinar a sintaxe para descrever uma unidade de dados para um objeto, consulte a documentao do aplicativo
que criou o objeto.
Observao: Voc pode determinar esta sintaxe criando um objeto vinculado durante o tempo de criao usando o
comando Paste Special (clique no controle OLE Container com o boto direito do mouse). Uma vez criado o objeto,
selecione a propriedade SourceDoc na janela Properties e examine a seqncia de caracteres na caixa Configuraes.
Para a maioria dos objetos, esta seqncia de caracteres contm um caminho at o arquivo vinculado, seguido de um
ponto de exclamao (!) ou barra invertida (\), e a sintaxe dos dados vinculados.
Quando um objeto vinculado criado, a propriedade SourceItem concatenada propriedade SourceDoc. Durante o
tempo de execuo, a propriedade SourceItem retorna uma seqncia de caracteres de comprimento zero (""), e a
propriedade SourceDoc retorna o caminho completo at o arquivo vinculado, seguido de um ponto de exclamao (!) ou
barra invertida (\), seguido do SourceItem. Por exemplo:
"C:\WOR\QTR1\REVENUE.XLS!R1C1:R30C15"

Propriedade AppIsRunning
Retorna ou configura um valor que indica se o aplicativo que criou o objeto no controle OLE Container est sendo
executado. No disponvel durante o tempo de criao.
Sintaxe
object.AppIsRunning [= boolean]
A sintaxe da propriedade AppIsRunning tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Um expresso Booleana especificando se o aplicativo que
produziu o objeto no controle OLE Container est ou no em

Funes Internas

335

execuo, conforme descrito em Configuraes.


Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
O aplicativo que produziu o objeto no controle OLE Container
est sendo executado.
False
O aplicativo que produziu o objeto no controle OLE Container
no est sendo executado.
Comentrios
Voc pode configurar o valor da propriedade AppIsRunning para iniciar o aplicativo que produz o objeto no controle OLE
Container. Fazer isto provoca uma ativao mais rpida do objeto. Voc tambm pode configurar esta propriedade como
False para fechar o aplicativo quando o objeto perde o foco.

Propriedade UpdateOptions
Retorna ou configura um valor especificando como um objeto atualizado quando dados vinculados so modificados.
Sintaxe
object.UpdateOptions [ = number]
A sintaxe da propriedade UpdateOptions tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um nmero inteiro especificando como um objeto
atualizada, conforme descrito em Configuraes.
Configuraes
As configuraes de number so:
Constante
Valor
vbOLEAutomatic
0
vbOLEFrozen

vbOLEManual

Descrio
(Padro) Automatic. O objeto atualizado toda
vez que os dados vinculados so alterados.
Frozen. O objeto atualizado sempre que o
usurio salva os dados vinculados a partir do
aplicativo em que foram criados.
Manual. O objeto somente atualizado usando o
mtodo Update.

Comentrios
Esta propriedade til para objetos vinculados em que outros usurios ou aplicativos podem acessar e modificar os dados
vinculados.
Quando os dados de um objeto forem alterados, o evento Updates ser acionado.

Propriedade Verb
Retorna ou configura um valor especificando uma operao a ser executada quando um objeto ativado usando a
propriedade Action.
Observao: A propriedade Verb includa para compatibilidade com a propriedade Action em verses anteriores. Para
funcionalidade atual, use o mtodo DoVerb.
Sintaxe
object.Verb [= number]
A sintaxe da propriedade Verb tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um valor que especifica a operao a ser executada.
Comentrios
Cada objeto pode suportar seu prprio conjunto de verbos. Use as propriedades ObjectVerbs e ObjectVerbsCount para
acessar a lista de verbos suportadas por um objeto. Configure Verb = 1 para especificar o primeiro verbo da lista, configure
Verb = 2 para especificar o segundo verbo da lista e assim por diante.
Configure AutoActivate como 2 (Double-Clic) para ativar automaticamente um objeto quando ele clicado duas vezes pelo
usurio.
Configure AutoVerbMenu = True para exibir um menu pop-up contendo os verbos do objeto quando o usurio clicar no
objeto com o boto direito do mouse.

Funes Internas

336

Evento Updated
Ocorre quando os dados de um objeto forem modificados.
Sintaxe
Sub object_Updated (code As Integer)
O evento Updated tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
code
Um nmero inteiro que especifica como o objeto foi
atualizado, conforme descrito em Configuraes.
Configuraes
As configuraes de code so:
Constante
Valor
vbOLEChanged
0
vbOLESaved
1
vbOLEClosed

vbOLERenamed

Descrio
Os dados do objeto foram alterados.
Os dados do objeto foram salvos pelo aplicativo que
criou o objeto.
O arquivo contendo os dados do objeto vinculado
foram fechados pelo aplicativo que criou o objeto.
O arquivo contendo os dados do objeto vinculado
foi renomeado pelo aplicativo que criou o objeto.

Comentrios
Estas constantes esto listadas na biblioteca de objetos do Visual Basic (VB) no Object Browser. Voc pode usar este
evento para determinar se os dados de um objeto foram alterados desde a ltima vez em que eles foram salvos. Para fazer
isto, configure a varivel global no evento Updates indicando que o objeto precisa ser salvo. Aps salvar o objeto,
reconfigure a varivel.

Propriedade AutoActivate
Retorna ou configura um valor que ativa um objeto clicando duas vezes no controle OLE Container ou movendo o foco para
o controle OLE Container.
Sintaxe
object.AutoActivate [= value]
A sintaxe da propriedade AutoActivate tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro ou constante especificando a tcnica
usada para ativar o objeto dentro do controle OLE Container,
conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
vbOLEActivateManual

Valor
0

VbOLEActivateGetFocus

VbOLEActivateDoubleclic

VbOLEActivateAuto

Descrio
Manual.
O
objeto
no

automaticamente ativado. Voc pode


ativar um objeto por meio de programa
usando o mtodo DoVerb.
Focus. Se o controle OLE Container
tiver um objeto que suporte ativao
atravs de clique nico, o aplicativo que
oferece o objeto ser ativado quando o
controle OLE Container recebe o foco.
(Padro) Duplo clique. Se o controle
OLE Container tiver um objeto, o
aplicativo que oferece o objeto ser
ativado quando o usurio clicar duas
vezes no controle OLE Container ou
pressionar ENTER quando o controle
tiver o foco.
Automatic. Se o controle OLE Container
tiver um objeto, o aplicativo que oferecer
o objeto ser ativado com base no
mtodo normal de ativao do objeto
{bmc bm3.BMP}ou quando o controle
receber o foco ou quando o usurio
clicar duas vezes no controle.

Comentrios

Funes Internas

337

Voc pode determinar se o controle OLE Container contm um objeto, verificando a propriedade OLEType.
Observao: Quando AutoActivate for configurado como 2 (Double-Clic), o evento DblClic no ocorrer quando o
usurio clicar duas vezes em um controle OLE Container.

Propriedade AutoVerbMenu
Retorna ou configura um valor que determina se um menu pop-up contendo os verbos do objeto ser exibido quando o
usurio clicar no controle OLE Container com o boto direito do mouse.
Sintaxe
object.AutoVerbMenu[ = boolean]
A sintaxe da propriedade AutoVerbMenu tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando se um menu pop-up
exibido, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
(Padro) Quando o usurio clica no controle OLE Container
com o boto direito do mouse, exibido um menu pop-up,
mostrando os comandos suportados pelo objeto.
False
Nenhum menu pop-up exibido.
Comentrios
Quando esta propriedade for configurada como True e o controle OLE Container for clicado com o boto direito do mouse,
eventos Clic e MouseDown no ocorrero.
Para exibir seus prprios menus, a propriedade AutoVerbMenu deve ser configurada como False.

Propriedade Object (OLE Container)


Retorna o objeto e/ou uma configurao do mtodo de um objeto ou propriedade em um controle OLE Container.
Sintaxe
object.Object[.property | .method]
A sintaxe da propriedade Object tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
property
Propriedade suportada pelo objeto.
method
Mtodo suportado pelo objeto.
Comentrios
Use esta propriedade para especificar um objeto que voc deseja usar em uma tarefa de automao.
Voc usa o objeto retornado pela propriedade Object em uma tarefa de Automation usando as propriedades e mtodos
daquele objeto. Para maiores informaes sobre quais propriedades e mtodos so suportados pelo objeto, consulte a
documentao do aplicativo que criou o objeto.

Propriedade OLETypeAllowed
Retorna ou configura o tipo de objeto que o controle OLE Container pode conter.
Sintaxe
object.OLETypeAllowed [ = value]
A sintaxe da propriedade OLETypeAllowed tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro ou constante que especifica o tipo de
objeto, conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
Valor
vbOLELined
0
vbOLEEmbedded

vbOLEEither

Descrio
Vinculado. O controle OLE Container pode conter
apenas um objeto vinculado.
Incorporado. O controle OLE Container pode
conter somente um objeto incorporado.
(Padro) Qualquer um dos dois. O controle OLE
Container pode conter um objeto vinculado ou um
objeto incorporado.
Funes Internas

338

Comentrios
Esta propriedade determina o tipo de objeto que um usurio pode criar:
Ao usar a caixa de dilogo Insert Object, use o mtodo InsertObjDlg para exibir esta caixa de dilogo.
Ao usar a caixa de dilogo Paste Special, use o mtodo PasteSpecialDlg para exibir esta caixa de dilogo.
Ao colar um objeto a partir da rea de transferncia, use o mtodo Paste para colar objetos da rea de transferncia do
sistema.
Use a propriedade OLEType para determinar o tipo de um objeto (vinculado, incorporado ou ambos).

Mtodo PasteSpecialDlg
Exibe a caixa de dilogo Paste Special.
Sintaxe
object.PasteSpecialDlg
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Durante o tempo de execuo, voc exibe esta caixa de dilogo para permitir ao usurio colar um objeto da rea de
transferncia do sistema. Esta caixa de dilogo exibe diversas opes ao usurio incluindo a colagem de um objeto
vinculado ou incorporado.
Use a propriedade OLETypeAllowed para determinar o tipo de objeto que pode ser criado (vinculado, incorporado, ou
ambos) usando esta caixa de dilogo.
Se a propriedade PasteO estiver configurada como True e o Visual Basic no puder colar o objeto, o OLE Container exclui
qualquer objeto j existente no controle.

Mtodo Copy
Copia o objeto em um controle OLE Container para a rea de transferncia do sistema.
Sintaxe
object.Copy
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Quando voc copia um objeto para a rea de transferncia do sistema, todos os dados e informaes de vnculo
associadas ao objeto so colocadas na rea de transferncia do sistema. Voc pode copiar tanto objetos incorporados,
quanto vinculados para a rea de transferncia do sistema.
Voc pode usar este mtodo para suportar um comando Edit Copy em um menu.

Funes Internas

339

Mtodo CreateEmbed
Cria um objeto incorporado. No suporta argumentos nomeados.
Sintaxe
object.CreateEmbed sourcedoc, class
A sintaxe do mtodo CreateEmbed tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
sourcedoc
Obrigatrio. O nome de arquivo de um documento usado
como modelo para objeto incorporado. Deve ser uma
seqncia de caracteres de comprimento zero ("") se voc
no especifica um documento de origem.
class
Opcional. O nome da classe do objeto incorporado. Ignorado
se voc especificar um nome de arquivo para sourcedoc.
Comentrios
Para visualizar uma lista de nomes de classe vlidos em seu sistema, selecione um controle, por exemplo, o controle OLE
Container, selecione a propriedade Class na janela Properties e clique no boto compilador.
Observao: Voc no precisa configurar as propriedades Class e SourceDoc quando usar o mtodo CreateEmbed
para criar um objeto incorporado.
Quando voc criar um novo objeto, o aplicativo associado ao nome de classe (por exemplo, Excel.exe), deve estar
corretamente registrado com o sistema operacional (o programa de instalao do aplicativo deve registrar corretamente o
aplicativo).

Mtodo CreateLin
Cria um objeto vinculado a partir do contedo de um arquivo. No suporta argumentos nomeados.
Sintaxe
object.CreateLin sourcedoc, sourceitem
A sintaxe do mtodo CreateLin tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
sourcedoc
Obrigatrio. O arquivo a partir do qual criado o objeto.
sourceitem
Opcional. Os dados no arquivo a serem vinculados no objeto
vinculado.
Comentrios
Se voc especificar valores para os argumentos deste mtodo, estes valores ignoram estas configuraes das
propriedades SourceDoc e SourceItem. Estas propriedades so atualizadas para refletir os valores dos argumentos
quando o mtodo chamado.
Quando um objeto criado com este mtodo, o controle OLE Container exibe uma imagem do arquivo especificado pela
propriedade SourceDoc. Se o objeto for salvo, somente as referncias de vnculo sero salvas, pois o controle OLE
Container contm apenas uma imagem metarquivo dos dados e nenhum dado de origem verdadeiro.
Quando voc criar um novo objeto, o aplicativo associado ao nome de classe (por exemplo, Excel.exe) deve estar
corretamente registrado no sistema operacional (o programa de instalao deve registrar corretamente o aplicativo).

Mtodo Delete (OLE Container)


Exclui o objeto especificado e libera a memria a ele associada.
Sintaxe
object.Delete
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Este mtodo lhe permite excluir explicitamente um objeto. Os objetos so automaticamente excludos quando um formulrio
fechado ou quando o objeto substitudo por um novo objeto.

Mtodo InsertObjDlg
Exibe a caixa de dilogo Insert Object.
Sintaxe
object.InsertObjDlg
O objeto uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Durante o tempo de execuo, voc exibe esta caixa de dilogo para permitir ao usurio criar um objeto vinculado ou
incorporado escolhendo o tipo de objeto (vinculado ou incorporado) e o aplicativo fornece o objeto.
Use a propriedade OLETypeAllowed para determinar o tipo de objeto que pode ser criado (vinculado, incorporado, ou
ambos) usando esta caixa de dilogo.

Funes Internas

340

Quando voc cria um novo objeto, o aplicativo associado ao nome de classe (por exemplo, Excel.exe) deve estar
corretamente registrado no sistema operacional (o programa de instalao do aplicativo deve registrar corretamente o
aplicativo).

Mtodo Paste
Copia os dados da rea de transferncia do sistema para um controle OLE Container.
Sintaxe
object.Paste
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Para usar este mtodo, configure a propriedade verifique os valores da propriedade PasteO. Voc no conseguir colar a
menos que PasteO retorne um valor True.
Se o mtodo Paste foi executado, a propriedade OLEType configurada como vbOLELined (0) ou vbOLEEmbedded (1).
Se o mtodo Paste no foi executado, a propriedade OLEType configurada como vbOLENone (3).
Voc pode usar este mtodo para suportar um comando Edit Paste em um menu.
Se a configurao da propriedade PasteO for True e o Visual Basic no puder colar o objeto, o controle OLE Container
exclui qualquer objeto j existente no controle.

Funes Internas

341

Mtodo ReadFromFile
Carrega um objeto a partir de um arquivo de dados criado usando o mtodo SaveToFile. No suporta argumentos
nomeados.
Sintaxe
object.ReadFromFile filenumber
A sintaxe do mtodo ReadFromFile tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
filenumber
Obrigatrio. A expresso numrica especificando o nmero
do arquivo usado ao carregar um objeto. Este nmero deve
corresponder a um arquivo binrio aberto.
Comentrios
Voc pode salvar um objeto em um arquivo de dados usando os mtodos SaveToFile ou SaveToOle1File.

Mtodo SaveToFile
Salva um objeto para um arquivo de dados. No suporta argumentos nomeados.
Sintaxe
object.SaveToFile filenumber
A sintaxe do mtodo SaveToFile tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
filenumber
Obrigatrio. Uma expresso numrica especificando o
nmero do arquivo usado ao salvar um objeto. Este nmero
deve corresponder a um arquivo binrio aberto.
Comentrios
Use este mtodo para salvar componentes ActiveX. Para salvar um componente ActiveX no formato OLE verso 1.0 porm,
use o mtodo SaveToOle1File.
Se o objeto estiver vinculado (OLEType = vbOLELined, 0), somente a informao do vnculo e uma imagem dos dados
sero salvos no arquivo especificado. Os dados do objeto so mantidos pelo aplicativo que criou o objeto. Se o objeto for
incorporado (OLEType = vbOLEEmbedded, 1), os dados do objeto so mantidos pelo controle OLE Container e podem ser
salvos pelo seu aplicativo em Visual Basic.
Voc pode carregar um objeto salvo em um arquivo de dados com o mtodo ReadFromFile.

Funes Internas

342

Mtodo DoVerb
Abre um objeto para uma operao como, por exemplo, editar. No suporta argumentos nomeados.
Sintaxe
object.DoVerb (verb)
A sintaxe do mtodo DoVerb tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
verb
Opcional. O verbo para executar o objeto no controle OLE
Container. Se no for especificado, o valor deste argumento
pode ser um dos verbos padro suportados por todos os
objetos ou um ndice da matriz de propriedades
ObjectVerbs.
Comentrios
Se voc configurar a propriedade AutoActivate como 2 (Clicar duas vezes) e o usurio clicar duas vezes no controle, o
controle OLE Container ativar automaticamente o objeto atual.
Cada objeto pode suportar seu prprio conjunto de verbos. Os valores abaixo representam verbos padro que todo objeto
deve suportar:
Constante
Valor
Descrio
vbOLEPrimary
0
A ao padro para o objeto.
vbOLEShow
-1
Ativa o objeto para edio. Se o
aplicativo que criou o objeto suportar
ativao in-loco, o objeto ativado
dentro do controle OLE Container.
vbOLEOpen
-2
Abre o objeto em uma janela de
aplicativo separada. Se o aplicativo que
criou o objeto suporta ativao in-loco, o
objeto ativado em sua prpria janela.
vbOLEHide
-3
Para objetos incorporados, oculta o
aplicativo que criou o objeto.
vbOLEUIActivate
-4
Se o objeto suporta ativao in-loco,
ativa o objeto para ativao in-loco e
mostra qualquer ferramenta de interface
de usurio. Se o objeto no suporta
ativao in-loco, o objeto no ativado
e ocorre um erro.
VbOLEInPlaceActivate
-5
Se o usurio move o foco para o
controle OLE Container, cria uma janela
para o objeto e prepara o objeto para
ser editado. Ocorre um erro se o objeto
no suporta ativao com um clique de
mouse.
VbOLEDiscardUndoState
-6
Usado quando o objeto ativado para
edio, para descartar todos os registros
de alteraes que o aplicativo do objeto
pode desfazer.
Observao: Estes verbos podem no estar listados na matriz de propriedades ObjectVerbs.

Funes Internas

343

Mtodo FetchVerbs
Atualiza a lista de verbos suportados por um objeto.
Sintaxe
object.FetchVerbs
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Voc pode ler a lista atualizada de verbos usando a propriedade ObjectVerbs.

Mtodo Close (OLE Container)


Fecha um objeto e encerra a conexo com o aplicativo que forneceu o objeto.
Sintaxe
object.Close
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Este mtodo aplica-se somente a mtodos incorporados e equivalente a fechar o objeto. Ele no tem qualquer efeito
sobre objetos vinculados.

Mtodo Update (OLE Container)


Recupera os dados atuais do aplicativo que forneceu o objeto e exibe estes dados em forma de elemento grfico no
controle OLE Container.
Sintaxe
object.Update
O object uma expresso de objeto que avalia para um objeto na lista Applies To.

Propriedade Action (OLE Container)


Configura um valor que determina uma ao. No disponvel durante o tempo de criao.
Observao: A propriedade Action est includa para compatibilidade com verses anteriores. Para funcionalidade atual,
use o mtodo listado em Configuraes.
Sintaxe
object.Action = value
A sintaxe da propriedade Action tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma constante ou nmero inteiro especificando o tipo de
ao, conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Valor
Descrio
Mtodo atual
0
Cria um objeto incorporado.
CreateEmbed
1
Cria um objeto vinculado a partir do contedo de um CreateLin
arquivo.
4
Copia o objeto para a rea de transferncia doCopy
sistema.
5
Copia os dados da rea de transferncia para umPaste
controle OLE Container.
6
Recupera os dados atuais do aplicativo que forneceuUpdate
o objeto e exibe estes dados como uma figura no
controle OLE Container.
7
Abre um objeto para uma operao, por exemplo, DoVerb
edio.
9
Fecha um objeto e termina a conexo com o aplicativo Close
que forneceu o objeto.
10
Exclui o objeto especificado e libera a memria a ele Delete
associada.
11
Salva um objeto em um arquivo de dados.
SaveToFile
12
Carrega um objeto que foi salvo em um arquivo deReadFromFile
dados.
14
Exibe a caixa de dilogo Insert Object.
InsertObjDlg
15
Exibe a caixa de dilogo Paste Special.
PasteSpecialDlg
17
Atualiza a lista de verbos suportada por um objeto.
FetchVerbs
18
Salva um objeto no formato de arquivo do OLE verso SaveToOle1File
1.0.

Funes Internas

344

Propriedade MiscFlags
Retorna ou configura um valor que determina o acesso a um ou mais recursos do controle OLE Container.
Sintaxe
object.MiscFlags [ = value]
A sintaxe da propriedade MiscFlags tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro ou constante especificando acesso a um
recurso adicional, conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
vbOLEMiscFlagMemStorage
VbOLEMiscFlagDisableInPlace

Valor
1
2

Descrio
Faz com que o controle utilize
memria para armazenar o objeto
enquanto ele carregado.
Ignora o comportamento padro do
controle de permitir a ativao inloco para objetos que a suportam.

Comentrios
A configurao do sinalizador vbOLEMiscFlagMemStorage mais rpida do que a ao padro do objeto, que
armazen-lo em disco como arquivo temporrio. Entretanto esta configurao pode usar uma grande quantidade de
memria para objetos cujos dados exigem muito espao, como um bitmap de um programa de pintura.
Se um objeto suportar ativao in-loco, voc pode usar a configurao vbOLEMiscFlagDisableInPlace para forar o objeto
a ser ativado em uma janela separada.
Para combinar valores, use o operador Or. Por exemplo, para combinar ambos os sinalizadores, voc pode usar este
cdigo:
Ole1.MiscFlags = vbOLEMiscFlagMemStorage Or _ vbOLEMiscFlagDisableInPlace

Mtodo SaveToOle1File
Salva um objeto no formato de arquivo OLE verso 1.0. No suporta argumentos nomeados.
Sintaxe
object.SaveToOle1File filenumber
A sintaxe do mtodo SaveToOle1File tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
filenumber
Obrigatrio. Uma expresso numrica especificando o
nmero de arquivo usado ao salvar ou carregar um objeto.
Este nmero deve corresponder a um arquivo binrio aberto.
Comentrios
Se o objeto for vinculado (OLEType = vbOLELined, 0), somente a informao sobre o vnculo e uma imagem dos dados
sero salvos no arquivo especificado. Os dados do objeto so mantidos pelo aplicativo que criou o objeto. Se o objeto for
incorporado (OLEType = vbOLEEmbedded, 1), os dados do objeto so mantidos pelo controle OLE Container e podem ser
salvos pelo seu aplicativo em Visual Basic.
Se voc desejar salvar o objeto no formato do componente ActiveX atual porm, use o mtodo SaveToFile.

Propriedade Format
Retorna ou configura o formato ao enviar dados a um aplicativo que criou um objeto. No disponvel durante o tempo de
criao.
Sintaxe
object.Format [ = format]
A sintaxe da propriedade Format tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
format
Uma expresso de seqncia de caracteres especificando o
formato usado com as propriedades Data e DataText.
Comentrios
Use
as
propriedades
ObjectAcceptFormats,
ObjectAcceptFormatsCount,
ObjectGetFormats
ObjectGetFormatsCount para obter uma lista de formatos de dados aceitveis para uma classe especfica de objetos.

Funes Internas

345

Muitos aplicativos que oferecem objetos suportam apenas um ou dois formatos. Por exemplo, o Microsoft Draw aceita
apenas o formato CF_METAFILEPICT. Embora CF_METAFILEPICT se parea com a constante intrnseca vbCFMetafile
(valor numrico 3) definida na biblioteca de objetos do Visual Basic (VB) no Object Browser, na realidade, ela uma
seqncia de caracteres literal e designada como:
Ole1.Format = "CF_METAFILEPICT"
Em muitos casos, a lista de formatos que podem ser aceitos por um objeto (ObjectAcceptFormats) diferente da lista de
formatos que um objeto pode oferecer (ObjectGetFormats).

Propriedade PasteO
Retorna um valor que determina se o contedo da rea de transferncia do sistema pode ser colado no controle OLE
Container.
Sintaxe
object.PasteO
O object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Quando esta configurao de propriedade for True, voc pode colar o contedo da rea de transferncia do sistema no
controle OLE Container.
Use a propriedade OLETypeAllowed para especificar o tipo de objeto (vinculado ou incorporado) que voc deseja colar no
controle OLE Container. Uma vez que voc consegue colar um objeto no controle OLE Container, voc pode verificar a
propriedade OLEType para determinar o tipo de objeto que foi criado.
Voc pode usar esta propriedade se o seu aplicativo suportar um comando Paste em um menu Edit. Se PasteO for False,
desative o comando de menu, seno ele pode ser ativado. Ative e desative comandos de menu configurando sua
propriedade Enabled como True ou False respectivamente.
Voc cola um objeto no controle OLE Container com o mtodo Paste.
Para oferecer mais flexibilidade ao usurio, exiba uma caixa de dilogo Paste Special quando o este escolher o comando
Edit Paste (configure OLETypeAllowed = 2 e use o mtodo PasteSpecialDlg). Quando esta caixa de dilogo for exibida,
um objeto ser colado na rea de transferncia do sistema com base nas selees do usurio na caixa de dilogo.

Exemplo da propriedade DataText


Este exemplo envia dados ao aplicativo Microsoft Graph, de modo que voc precisa ter o MS Graph instalado em seu
sistema para executar o exemplo. (Ele instalado pela maioria dos componentes do Microsoft Office.) Crie um formulrio
com cerca de metade do tamanho da tela com um controle CommandButton (Command1) no canto superior esquerdo do
formulrio e um controle de recipiente OLE (OLE1) colocado abaixo do CommandButton.
Quando voc coloca o controle de recipiente OLE no formulrio, exibida a caixa de dilogo Insert Object. Escolha Cancel
e pressione F5 para executar o exemplo.
Private Sub Command1_Clic ()
Dim Msg, NL, TB ' Declarar variveis.
TB = Chr(9) ' Caractere de tabulao.
NL = Chr(10) ' Caractere de nova linha.
' Criar dados para substituir os dados padro de Graph.
Msg = TB + "Drew" & TB & "Teresa" & TB & "Bob"
Msg = Msg + NL & "Eric" & TB & "1" & TB & "2" & TB & "3"
Msg = Msg + NL & "Ted" & TB & "11" & TB & "22" & TB & "33"
Msg = Msg + NL & "Arthur" & TB & "21" & TB & "32" & TB & "23"
' Enviar os dados usando a propriedade DataText.
' Ativar MSGRAPH como oculto.
Ole1.DoVerb - 3
If Ole1.AppIsRunning Then
Ole1.DataText = Msg
' Atualizar o objeto.
Ole1.Update
Else
MsgBox "Graph isnt active."
End If
End Sub
Sub Form_Load ()
Ole1.Format = "CF_TEXT" ' Definir o formato do arquivo para texto.
Ole1.SizeMode = 2 ' Autodimensionar.
Ole1.CreateEmbed "", "MSGRAPH"
End Sub

Exemplo de propriedades ObjectAcceptFormats, ObjectAcceptFormatsCount,


ObjectGetFormats, ObjectGetFormatsCount, ObjectVerbs, ObjectVerbsCount
Para executar este exemplo, coloque um controle de recipiente OLE e trs controles ListBox em um formulrio. Cole o
exemplo de cdigo na seo Declarations do formulrio e pressione F5. Quando a caixa de dilogo Insert Object exibida,
selecione um aplicativo na caixa de listagem New Object e escolha O para criar um objeto.
Funes Internas

346

Private Sub Form_Clic ()


Dim I
' Declarar varivel.
' Exibir a caixa de dilogo Insert Object.
Ole1.InsertObjDlg
' Atualizar a lista de verbos disponveis.
Ole1.FetchVerbs ' Capturar verbos.
' Limpar as caixas de listagem.
List1.Clear
List2.Clear
List3.Clear
' Preencher a caixa de listagem de verbos. Como ObjectVerbs(0)
' o verbo padro e repetido na matriz ObjectVerbs(),
' inicie a contagem em 1.
For I = 1 To Ole1.ObjectVerbsCount - 1
List1.AddItem Ole1.ObjectVerbs(I)
Next I
'Preencher a caixa de listagem Accept Formats.
For I = 0 To Ole1.ObjectAcceptFormatsCount - 1
List2.AddItem Ole1.ObjectAcceptFormats(I)
Next I
' Preencher a caixa de listagem Get Formats.
For I = 0 To Ole1.ObjectGetFormatsCount - 1
List3.AddItem Ole1.ObjectGetFormats(I)
Next I
End Sub

Funes Internas

347

Exemplo da propriedade PasteO


Este exemplo cola um objeto no controle de recipiente OLE se a definio da propriedade PasteO for True. Caso contrrio,
o exemplo exibe uma caixa de mensagem.
Private Sub mnuEditPaste_Clic ()
' Verificar o valor de PasteO.
If Ole1.PasteO Then
Ole1.Paste
' Ativar o comando Paste se for True.
Else
' Caso contrrio, desativar o comando
mnuEditPaste.Enabled = False ' de menu Paste e produzir
MsgBox "Cant paste."' a mensagem adequada.
End If
End Sub

Evento ObjectMove
Ocorre imediatamente aps o objeto em um controle de recipiente OLE ter sido movido ou redimensionado enquanto o
objeto est ativo.
Sintaxe
Private Sub object_ObjectMove(left As Single, top As Single, width As Single, height As Single)
A sintaxe do evento ObjectMove tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
left
A coordenada da borda esquerda do controle de recipiente OLE
imediatamente aps ele ter sido movido ou redimensionado.
top
A coordenada da borda superior do controle de recipiente OLE
imediatamente aps ele ter sido movido ou redimensionado.
width
A largura do controle de recipiente OLE imediatamente aps ele ter
sido movido ou redimensionado.
height
A altura do controle de recipiente OLE imediatamente aps ele ter sido
movido ou redimensionado.
Comentrios
Quando um usurio move ou redimensiona um controle de recipiente OLE, seu aplicativo pode usar o evento ObjectMove
para determinar se realmente altera o tamanho e posio do controle. Se o procedimento de evento ObjectMove no altera
a posio ou tamanho do controle de recipiente OLE, o objeto dentro do controle de recipiente OLE retorna sua posio
original e informado de seu novo tamanho. As coordenadas passadas como argumentos a este evento incluem a borda
do controle de recipiente OLE.
Os eventos ObjectMove e Resize so disparados quando o controle de recipiente OLE recebe informaes sobre o
tamanho do objeto que ele contm. Entretanto, o evento Resize no recebe qualquer informao sobre a posio do
controle. Se o controle de recipiente OLE movido para fora do formulrio, o argumento tem valores positivos ou negativos
que representam a posio do objeto em relao parte superior e esquerda do formulrio.

Funes Internas

348

Propriedade OLEDropAllowed
Retorna ou define um valor que determina se um controle de recipiente OLE pode ser um destino para soltar em operaes
OLE de arrastar-e-soltar.
Sintaxe
object.OLEDropAllowed [= boolean]
A sintaxe da propriedade OLEDropAllowed tem estas partes:
Parte
Descrio
object
boolean

Uma expresso de objeto que avalia para um objeto na lista


Applies To.
Uma expresso Boolean especificando se o controle de
recipiente OLE pode ser um destino para soltar, conforme
descrito em Configuraes.

Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
Ao arrastar um objeto que possa ser objeto vinculado ou
objeto incorporado, aparece um cone de soltar quando o
ponteiro do mouse move-se sobre o controle de recipiente
OLE. Arrastar o objeto no controle de recipiente OLE tem o
mesmo efeito que colar o objeto da rea de transferncia
do sistema usando o mtodo Paste.
False
(Padro) Nenhum cone de soltar aparece sobre o controle
de recipiente OLE quando arrasta um objeto que pode ser
vinculado ou incorporado. Soltar o objeto no controle de
recipiente OLE no tem qualquer efeito sobre o controle.
Comentrios
A propriedade MousePointer determina a forma do ponteiro do mouse quando a propriedade OLEDropAllowed est
definida como True. Se a configurao da propriedade MousePointer for 0 (Padro), o Visual Basic exibe o cone padro
de arrastar e soltar para a ao que se est realizando.
A configurao da propriedade OLETypeAllowed deve ser 1 (vbOLEEmbedded) ou 2 (vbOLEEither) para mover ou
copiar o objeto que pode ser vinculado ou incorporado, ou 0 (vbOLELined) ou 2 para vincular o objeto. Soltar um objeto
quando OLEDropAllowed est configurado como True tem o mesmo efeito sobre as configuraes da propriedade Class,
SourceDoc e SourceItem que usar o mtodo Paste do controle de recipiente OLE.
Se a propriedade OLEDropAllowed est definida como True, o controle de recipiente OLE no recebe eventos DragDrop
ou DragOver ao arrastar um objeto. Alm disso, a configurao da propriedade DragMode no tem nenhum efeito sobre o
comportamento de arrastar e soltar do controle de recipiente OLE quando a propriedade OLEDropAllowed est
configurada como True.

Funes Internas

349

Propriedade Instancing
Configura um valor que especifica se voc pode criar ocorrncias de uma classe pblica fora de um projeto e, se for o caso,
como ela se comporta. No est disponvel durante o tempo de execuo.
Configuraes
A propriedade Instancing tem estas configuraes:
Configurao
Descrio
1
(Padro) Particular. Outros aplicativos no tm acesso permitido
a informaes da biblioteca de tipos sobre a classe, e no podem
criar ocorrncias dela. Objeto particulares so somente para uso
dentro do componente.
2
PublicNotCreatable. Outros aplicativos podem usar objetos desta
classe somente se o seu componente cria primeiro os objetos.
Outros aplicativos no podem usar a funo CreateObject ou o
operador New para criar objetos da classe.
3
SingleUse. Permite que outros aplicativos criem objetos da
classe, mas todo objeto desta classe criados por um cliente inicia
uma nova ocorrncia de seu componente. No permitido em
projetos ActiveX DLL.
4
GlobalSingleUse. Semelhante a SingleUse, exceto que as
propriedades e mtodos da classe podem ser chamados como
se eles fossem simplesmente funes globais. No permitida
em projetos ActiveX DLL.
5
MultiUse. Permite que outros aplicativos criem objetos a partir da
classe. Uma ocorrncia de seu componente pode oferecer
qualquer quantidade de objetos criados desta maneira.
6
GlobalMultiUse. Semelhante a MultiUse, com uma adio: as
propriedades e mtodos da classe podem ser acionados como
se eles simplesmente fossem funes globais. No necessrio
primeiro criar explicitamente uma ocorrncia da classe, pois uma
ser automaticamente criada.
Configurao

Aplica-se ao tipo de projeto


ActiveX
Exe
X
X
X
X
X
X

ActiveX
DLL
X
X

ActiveX
Control
X
X

Std. Exe

Private
X
PublicNotCreatable
SingleUse
GlobalSingleUse
MultiUse
X
GlobalMultiUse
X
Comentrios
A propriedade Instancing foi expandida no Visual Basic 5.0 para incorporar a funcionalidade da propriedade Public do
Visual Basic 4.0.
Quando uma classe crivel, voc pode usar qualquer uma das tcnicas abaixo para criar ocorrncias da classe a partir de
outros aplicativos:
Usar a funo CreateObject como em:
Set MyInstance = CreateObject("MyProject.MyClass")
Usar a instruo Dim no mesmo projeto (ou fora do projeto se a propriedade Public tambm est configurada como True),
com em:
Dim MyInstance As New MyClass
A palavra chave New indica que MyInstance deve ser declarada como uma nova ocorrncia de MyClass.
Se a propriedade Public for False, a configurao da propriedade Instancing ignorada. Voc sempre pode criar
ocorrncias da classe no projeto que define a classe. Se a propriedade Public for True, a classe visvel e portanto pode
ser controlada por outros aplicativos, desde que exista uma ocorrncia da classe.
Observao As propriedades e mtodos de um objeto GlobalMultiUse no so parte do espao de nome global do
componente que fornece o objeto. Por exemplo, no projeto que contm o mdulo de classe GlobalUtility, voc deve criar
explicitamente uma ocorrncia de GlobalUtility para usar as propriedades e mtodos do objeto. Outras limitaes de objetos
globais esto listadas em "Global Objects and Code Libraries" em "Building Code Components" em Boos Online.

Evento Initialize
Ocorre quanto um aplicativo cria uma ocorrncia de um Form, MDIForm, controle User, Property Page ou classe.
Sintaxe
Private Sub object_Initialize( )
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Voc dispara o evento Initialize quando voc:
Usa a funo CreateObject para criar uma ocorrncia de uma classe. Por exemplo:
Set X = CreateObject("Project1.MyClass")

Funes Internas

350

Refere-se a uma propriedade ou evento de uma ocorrncia automaticamente criada de um formulrio ou classe em seu

cdigo. Por exemplo:


MyForm.Caption = "Exemplo"
Use este evento para inicializar qualquer dado usado pela ocorrncia do Form, MDIForm ou classe. Para um Form ou
MDIForm, o evento Initialize ocorre antes do evento Load.

Evento Terminate
Ocorre quando todas as referncias a uma ocorrncia de um Form, MDIForm, controle User, Property Page ou classe so
removidas da memria atravs da configurao de todas as variveis que se referem ao objeto como Nothing ou quando a
ltima referncia ao objeto fica fora de escopo.
Sintaxe
Private Sub object_Terminate( )
O espao reservado object representa uma expresso de objeto que avalia um objeto na lista Applies To.
Comentrios
Para todos os objetos, exceto classes, o evento Terminate ocorre aps o evento Unload.
O evento Terminate no disparado se as ocorrncias do formulrio ou classe foram removidas da memria porque o
aplicativo foi irregularmente encerrado. Por exemplo, se o seu aplicativo aciona a instruo End antes de remover todas as
ocorrncias existentes da classe ou formulrio da memria, o evento Terminate no disparado para aquela classe ou
formulrio.

Funes Internas

351

Propriedade Negotiate
Define o valor que determina se um controle que pode ser alinhado exibido quando um objeto ativo do formulrio exibe
uma ou mais barras de ferramentas. No est disponvel durante o tempo de execuo.
Configuraes
A propriedade Negotiate tem estas configuraes:
Configurao
Descrio
True
Se o controle alinhado no formulrio (a propriedade Align
definida como um valor diferente de zero), o controle permanece
visvel quando um objeto ativo no formulrio exibe uma barra de
ferramentas.
False
(Padro) O controle no exibido quando um objeto ativo no
formulrio exibe uma barra de ferramentas. A barra de ferramentas
do objeto ativo exibida no lugar do controle.
Comentrios
A propriedade Negotiate existe para todos os controles com uma propriedade Align. Voc usa a propriedade Align para
alinhar o controle em um Form ou objeto MDIForm; entretanto, a negociao da barra de ferramentas somente ocorre no
MDIForm. O controle alinhado deve estar no MDIForm.
Se a propriedade NegotiateToolbars for definida como False, a configurao da propriedade Negotiate no tem qualquer
efeito.

Propriedade NegotiateMenus
Configura um valor que determina se um formulrio incorpora ou no os menus de um objeto no formulrio na barra de
menu do formulrio. No est disponvel durante o tempo de execuo.
Configuraes
A propriedade NegotiateMenus tem estas configuraes:
Configurao
Descrio
True
(Padro) Quando um objeto no formulrio est ativo para
edio, os menus daquele objeto so exibidos na barra de
menu do formulrio.
False
Os menus de objetos no formulrio no so exibidos na barra
de menu do formulrio.
Comentrios
Usando a propriedade NegotiateMenus, voc determina se a barra de menu de um formulrio compartilhar (ou
negociar) espao com os menus de um objeto ativo no formulrio. Se voc no deseja incluir os menus do objeto ativo na
barra de menu de seu formulrio, configure NegotiateMenus como False.
Voc no pode negociar menus entre um objeto MDIForm e um objeto no MDIForm.
Se NegotiateMenus for configurada como True, o formulrio deve ter definida uma barra de menu, mesmo se a barra de
menu no estiver visvel. Se a propriedade MDIChild do formulrio estiver configurada como True, os menus do objeto
ativo so exibidos na barra de menu da janela pai MDI (objeto MDIForm).
Quando NegotiateMenus est configurada como True, voc pode usar a propriedade NegotiatePosition de controles
Menu individuais para determinar os menus que seu formulrio exibe junto com os menus do objeto ativo.

Funes Internas

352

Propriedade NegotiatePosition
Configura um valor que determina se controles Menu de nvel alto so ou no exibidos na barra de menu enquanto um
objeto vinculado ou objeto incorporado em um formulrio est ativo e exibindo seus menus. No est disponvel durante o
tempo de execuo.
Configuraes
A propriedade NegotiatePosition tem estas configuraes:
Configurao
Descrio
0
(Padro) Nenhum. O menu no exibido na barra de menu,
quando o objeto est ativo.
1
Esquerda. O menu exibido no lado esquerdo da barra de
menu quando o objeto est ativo.
2
Centro. O menu exibido no centro da barra de menu
quando o objeto est ativo.
3
Direita. O menu exibido direita na barra de menu quando
o objeto est ativo.
Comentrios
Usando a propriedade NegotiatePosition, voc determina os menus individuais na barra de menu de seu formulrio que
compartilham (ou negociam) espao na barra de menu com os menus de um objeto ativo do formulrio. Qualquer menu
com NegotiatePosition configurada como um valor diferente de zero exibido na barra de menu do formulrio, junto com
os menus do objeto ativo.
Se a propriedade NegotiateMenus for configurada como False, a configurao da propriedade NegotiatePosition no tem
qualquer efeito.

Propriedade NegotiateToolbars
Define um valor que determina se as barras de ferramentas de um objeto em um formulrio MDI filho so exibidas no
MDIForm quando o objeto no formulrio MDI filho est ativo. No est disponvel durante o tempo de execuo.
Configuraes
A propriedade NegotiateToolbars tem estas configuraes:
Configurao
Descrio
True
(Padro) O objeto MDIForm exibe as barras de ferramentas do
objeto ativo na parte superior ou inferior do MDIForm. O objeto
ativo determina se as barras de ferramentas so exibidas na
parte superior ou inferior do MDIForm.
False
As barras de ferramentas do objeto ativo no so exibidas em
hiptese alguma, ou so exibidas como paletas de ferramentas
flutuantes, conforme determinado pelo objeto ativo.
Comentrios
Use a propriedade NegotiateToolbars quando criar um aplicativo de interface de documento mltiplo (MDI) que inclui
objetos em formulrios MDI filho. Com esta propriedade, voc determina como o objeto ativo exibe suas barras de
ferramentas. Configurando esta propriedade como True, o MDIForm compartilha (ou negocia) espao na parte superior ou
inferior do formulrio para exibir as barras de ferramentas do objeto ativo.
Se o MDIForm tambm contm uma barra de ferramentas, use a propriedade Negotiate para determinar como as diversas
barras de ferramentas compartilham o espao disponvel.

Funes Internas

353

Mtodo Clear (Objeto DataObject)


Exclui o contedo do objeto DataObject.
Sintaxe
object.Clear
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Este mtodo somente est disponvel para origens de arraste de componente. Se Clear for acionado a partir de um destino
de soltura de componente, gerado um erro.
A maioria dos componentes suporta eventos arrastar-e-soltar OLE manual e alguns suportam eventos arrastar-e-soltar OLE
automticos.

Objeto DataObject
O objeto DataObject um recipiente para dados que so transferidos de uma origem de componente para um destino de
componente. Os dados so armazenados no formato definido pelo mtodo usando o objeto DataObject.
Sintaxe
DataObject
Comentrios
O DataObject, que reflete a interface IDataObject, permite que operaes arrastar-e-soltar, da rea de transferncia
implementadas.
A maioria dos componentes suportam eventos arrastar-e-soltar OLE e alguns suportam eventos arrastar-e-soltar OLE
automticos.

Coleo DataObjectFiles
Uma coleo de seqncias de caracteres que o tipo da propriedade Files no objeto DataObject.
Sintaxe
object.DataObjectFiles
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
A coleo DataObjectFiles uma coleo de seqncias de caracteres que representa um conjunto de arquivos que foram
selecionados atravs do mtodo GetData ou atravs de seleo em um aplicativo como, por exemplo, o Windows Explorer.
Embora a coleo DataObjectFiles tenha mtodos e propriedades prprias, voc deve usar a propriedade Files do objeto
DataObject para visualizar e manipular o contedo da coleo DataObjectFiles.
Aqui esto alguns exemplos de cdigo mostrando o uso da propriedade Files para visualizar e manipular dados contidos na
coleo DataObjectFiles (onde "Data" representa um objeto do tipo DataObject):
Debug.Print Data.Files(index)
For Each v in Data.Files
Debug.Print v
Next v
Data.Files.Add "autoexec.bat"
Data.Files.Remove index
Data.Files.Clear
For i = 0 to Data.Files.Count - 1
Debug.print Data.Files(i)
Next i
Observao: Esta coleo usada pela propriedade Files somente quando os dados no objeto DataObject esto no
formato vbCFFiles.

Propriedade Files
Retorna uma coleo DataObjectFiles, que por sua vez contm uma lista de todos os nomes de arquivo usados por um
objeto DataObject (por exemplo, os nomes dos arquivos e um usurio arrasta de e para o Windows Explorer.)
Sintaxe
object.Files(index)
A sintaxe da coleo Files tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto
DataObject.
index
Um nmero inteiro que um ndice de uma matriz de nomes
de arquivo.
Comentrios
A coleo Files preenchida com nomes de arquivo somente quando o objeto DataObject contm dados do tipo
vbCFFiles. (O objeto DataObject pode conter diversos tipos diferentes de dados.) Voc pode iterar pela coleo para
recuperar a lista de nomes de arquivo.
A coleo Files pode ser preenchida para permitir que aplicativos em Visual Basic funcionem como uma fonte de arraste
para uma lista de arquivos.

Funes Internas

354

Mtodo GetData (Objeto DataObject)


Retorna dados de um objeto DataObject em forma de uma variante.
Sintaxe
object.GetData (format)
A sintaxe do mtodo GetData tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
format
Uma constante ou valor que especifica o formato da data,
conforme descrito em Configuraes. A constante ou valor
deve estar entre parnteses. Se format for 0 ou omitido,
GetData utiliza automaticamente o formato adequado.
Configuraes
As configuraes de format so:
Constante
Valor
vbCFText
1
vbCFBitmap
2
vbCFMetafile
3
vbCFEMetafile
14
vbCFDIB
8
vbCFPalette
9
vbCFFiles
15
vbCFRTF
-16639

Descrio
Texto (arquivos .txt)
Bitmap (arquivos .bmp)
metarquivo (arquivos .wmf)
Metarquivos aprimorado (arquivos .emf)
Bitmap independente de dispositivo (DIB)
Paleta de cores
Lista de arquivos
Formato Rich text (arquivos .rtf)

Comentrios
Estas constantes esto listadas na biblioteca de objetos do Visual Basic (VB) no Object Browser.
possvel para os mtodos GetData e SetData usar formatos de dados diferentes daqueles listados em Configuraes,
incluindo formatos definidos pelo usurio registrados com o Windows atravs da funo API RegisterClipboardFormat().
Entretanto, existem alguns cuidados a serem tomados:
O mtodo SetData exige que os dados estejam na forma de uma matriz de bytes quando ele no reconhece o formato de
dados especificado.
O mtodo GetData sempre retorna dados em uma matriz de bytes quando eles esto em um formato que ele no
reconhece, embora o Visual Basic possa converter de maneira transparente esta matriz de bytes retornada em outros tipos
de dados, como uma seqncias de caracteres.
A matriz de bytes retornada por GetData ser maior que os dados efetivos ao ser executada em alguns sistemas
operacionais, com bytes arbitrrios no final da matriz. A razo para isto que o Visual Basic no conhece o formato dos
dados e somente conhece a quantidade de memria que o sistema operacional alocou para os dados. Esta alocao de
memria geralmente maior que o exigido pelos dados. Portanto, podem existir bytes extras junto ao final do segmento de
memria alocado. Como resultado, voc deve usar funes adequadas para interpretar os dados retornados de uma
maneira significativa (por exemplo, truncando uma seqncia de caracteres em um determinado comprimento com a
funo Left, se os dados estiverem em formato de texto.
Observao: Nem todos os aplicativos suportam vbcfBitmap ou vbCFPalette, portanto recomenda-se que voc use
vbCFDIB sempre que possvel.

Mtodo GetFormat (Objeto DataObject)


Retorna um valor booleano indicando se um item no objeto DataObject corresponde a um formato especfico. No suporta
argumentos nomeados.
Sintaxe
object.GetFormat format
A sintaxe do mtodo GetFormat tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
format
Uma constante ou valor que especifica o formato dos dados,
conforme descrito em Configuraes.
Configuraes
As configuraes de format so:
Constante
Valor
vbCFText
1
vbCFBitmap
2
vbCFMetafile
3
vbCFEMetafile
14
vbCFDIB
8
vbCFPalette
9
vbCFFiles
15

Descrio
Texto (arquivos .txt)
Bitmap (arquivos .bmp)
metarquivos (arquivos .wmf)
Metarquivo aprimorado (arquivos .emf)
Bitmap independente de dispositivo (DIB)
Paleta de cores
Lista de arquivos
Funes Internas

355

vbCFRTF

-16639

Formato Rich Text (arquivos .rtf)

Comentrios
Estas constantes so listadas na biblioteca de objetos do Visual Basic (VB) no Object Browser.
O mtodo GetFormat retorna como True se um item no objeto DataObject corresponder ao formato especificado. Caso
contrrio, ele retorna como False.

Evento OLECompleteDrag
Ocorre quando um componente de origem solto sobre um componente de destino informando ao componente de origem
que uma ao de arraste foi executada ou cancelada.
Sintaxe
Private Sub object_CompleteDrag([effect As Long])
A sintaxe do evento CompleteDrag tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
effect
Um nmero inteiro longo configurado pelo objeto de origem
identificando a ao que foi executada, permitindo assim que a origem
execute a ao adequada se o componente foi movido (por exemplo, a
origem exclui os dados se eles foram movidos de um componente para
outro). Os valores possveis esto listados em Configuraes.
Configuraes
As configuraes de effect so:
Constante
Valor
vbDropEffectNone
0
vbDropEffectCopy

vbDropEffectMove

Descrio
O destino de soltar no pode aceitar os dados ou a
operao soltar foi cancelada.
Soltar resulta em uma cpia dos dados da origem
para o destino. Os dados originais permanecem
inalterados pela operao de arraste.
Soltar resulta na criao de um vnculo at os
dados originais entre a fonte de arrastar e o
destino de soltar.

Comentrios
O evento OLECompleteDrag o evento final a ser chamado em uma operao arrastar-e-soltar OLE. Este evento informa
ao componente de origem sobre a ao que foi executada quando o objeto foi solto sobre o componente de destino. O
destino configura este valor atravs do parmetro effect do evento OLEDragDrop. Com base nisto, a origem pode
determinar a ao adequada necessria a ser realizada. Por exemplo, se o objeto foi movido para o destino
(vbDropEffectMove), a origem precisa excluir o objeto de si aps a movimentao.
Se OLEDragMode for configurado como Automatic, o Visual Basic trata o comportamento padro. O evento ainda ocorre,
entretanto, permitindo ao usurio adicionar ou alterar o comportamento.
A maioria dos componentes suporta eventos arrastar-e-soltar OLE manuais e alguns suportam eventos arrastar-e-soltar
OLE automticos.

Mtodo OLEDrag
Faz com que um componente inicie uma operao arrastar-e-soltar OLE.
Sintaxe
object.OLEDrag
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Quando o mtodo OLEDrag chamado, ocorre o evento OLEStartDrag do componente, permitindo que ele fornea dados
a um componente de destino.

Evento OLEDragDrop
Ocorre quando um componente de origem solto sobre um componente de destino quando o componente de origem
determina que possa ser solto.
Observao: Este evento somente ocorre se OLEDropMode configurado como 1 (Manual).
Sintaxe
Private Sub object_OLEDragDrop(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single,
y As Single)
A sintaxe do evento OLEDragDrop tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
data
Um objeto DataObject contendo formatos que a origem fornecer e, alm
disso, possivelmente os dados para estes formatos. Se nenhum dado
estiver contido em DataObject, ele fornecido quando o controle chama o
mtodo GetData. Os mtodos SetData e Clear no podem ser usados aqui.
Effect
Um nmero inteiro longo configurado pelo componente de destino
Funes Internas

356

Button

Shift

x,y

identificando a ao que foi executada (se existir), permitindo assim que a


origem realize a ao adequada se o componente foi movido (por exemplo,
a origem excluiu dados). Os valores possveis so listados em
Configuraes.
Um nmero inteiro que funciona como um campo de bits correspondendo
ao estado de um boto de mouse quando este no est pressionado. O
boto da esquerda bit 0, o boto da direita bit 1, e o boto do meio bit
2. Estes bits correspondem, respectivamente, aos valores 1, 2 e 4. Isto
indica o estado dos botes do mouse; algum, todos ou nenhum destes trs
bits pode ser configurado, indicando que algum, todos ou nenhum dos
botes est liberado.
Um nmero inteiro que funciona como um campo de bit correspondente ao
estado das teclas SHIFT, CTRL e ALT quando liberadas. A tecla SHIFT bit 0, a
tecla CTRL bit 1 e a tecla ALT bit 2. Estes bits correspondem,
respectivamente, aos valores 1, 2 e 4. O parmetro shift indica o estado
destas teclas; algum, todos ou nenhum dos bits pode ser configurado,
indicando que alguma, todas ou nenhuma das teclas est liberada. Por
exemplo, se as teclas CTRL e ALT no estiverem pressionadas, o valor de
shift seria 6.
Um nmero inteiro que especifica a localizao atual do ponteiro do mouse.
Os valores x e y so sempre expressos em termos do sistema de
coordenadas configurado pelas propriedades ScaleHeight, ScaleWidth,
ScaleLeft e ScaleTop do objeto.

Configuraes
As configuraes de effect so:
Constante
Valor
vbDropEffectNone
0
vbDropEffectCopy

VbDropEffectMove

Descrio
O destino de soltar no pode aceitar os
dados.
Soltar resulta em uma cpia dos dados da
origem para o destino. Os dados originais
permanecem inalterados pela operao
de arraste.
Soltar resulta em dados sendo movidos
da origem do arraste para origem de
soltar. A origem de arrastar deve remover
os dados de si mesma aps a
movimentao.

Comentrios
O componente ActiveX de origem deve sempre mascarar valores do parmetro effect para assegurar a compatibilidade
com implementaes futuras de componentes ActiveX. Atualmente, so utilizados somente trs dos 32 bits no parmetro
effect. Em futuras verses do Visual Basic , entretanto, estes outros bits podem ser usados. Portanto, como precauo
quanto a problemas futuros, origens de arraste e destinos de soltar devem mascarar estes valores de maneira adequada
antes de efetuar qualquer comparao.
Por exemplo, um componente de origem no deve comparar um effect a, digamos, vbDropEffectCopy, como desta forma:
If Effect = vbDropEffectCopy...
Ao invs disso, o componente de origem deve mascarar o valor ou valores que esto sendo procurados, assim:
If Effect And vbDropEffectCopy = vbDropEffectCopy...
-ouIf (Effect And vbDropEffectCopy)...
Isto permite a definio de novos efeitos de soltar em verses futuras do Visual Basic, enquanto preserva a compatibilidade
com verses anteriores de seu cdigo existente.
A maioria dos componentes suporta eventos arrastar-e-soltar OLE manual, e alguns suportam eventos arrastar-e-soltar
OLE automticos.

Propriedade OLEDragMode
Retorna ou configura se o componente ou o programador tratar de uma operao arrastar-e-soltar OLE.
Sintaxe
object.OLEDragMode = mode
A sintaxe da propriedade OLEDragMode tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
mode
Um nmero inteiro que especifica o mtodo com o qual um
componente trata de operaes arrastar-e-soltar OLE,
conforme descrito em Configuraes.
Configuraes

Funes Internas

357

As configuraes de mode so:


Constante
Valor
vbOLEDragManual
0
vbOLEDragAutomatic

Descrio
(Padro) Manual. O programador trata de
todas as operaes arrastar-e-soltar OLE.
Automatic. O componente trata de todas as
operaes arrastar-e-soltar OLE.

Comentrios
Quando OLEDragMode configurado como Manual, voc precisa chamar o mtodo OLEDrag para iniciar o arraste, o que
dispara ento o evento OLEStartDrag.
Quando OLEDragMode configurado como Automatic, o componente de origem preenche o objeto DataObject com os
dados nele contidos e configura o parmetro effect antes de iniciar o evento OLEStartDrag (assim como OLESetData e
outros eventos arrastar-e-soltar OLE de nvel de origem) quando o usurio tenta arrastar para fora do controle. Isto lhe
oferece controle sobre a operao arrastar-e-soltar e lhe permite interceder adicionando outros formatos, ou ignorando ou
desativando os dados e formatos automticos usando os mtodos Clear ou SetData.
Se a propriedade OLEDragMode da origem estiver configurada como Automatic e nenhum dado estiver carregado no
evento OLEStartDrag ou aftereffects estiver configurado como 0, no ocorrer a operao arrastar-e-soltar OLE.
Observao:
Se a propriedade DragMode de um controle for configurada como Automatic, a configurao de
OLEDragMode ignorada, pois eventos arrastar-e-soltar normais do Visual Basic tm precedncia.

Evento OLEDragOver
Ocorre quando um componente arrastado sobre outro.
Sintaxe
Private Sub object_OLEDragOver(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single,
y As Single, state As Integer)
A sintaxe do evento OLEDragOver tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
data
Um objeto DataObject contendo formatos que a origem fornecer e,
alm disso, possivelmente os dados para estes formatos. Se nenhum
dado estiver contido no DataObject, ele ser fornecido quando chama
o mtodo GetData. Os mtodos SetData e Clear no podem ser
usados aqui.
effect
Um nmero inteiro longo inicialmente configurado pelo objeto de
origem identificando todos os efeitos que ele suporta. Os parmetros
devem ser corretamente configurados pelo componente de destino
durante este evento. O valor de effect determinado pela conexo de
todos os efeitos ativos por meio do operador Or (conforme listado em
Configuraes). O componente de destino deve verificar estes efeitos e
outros parmetros para determinar quais aes so adequadas a ele e,
em seguida, configurar este parmetro como um dos efeitos permitidos
(conforme especificado pela origem) para especificar quais aes
sero executadas se o usurio soltar a seleo sobre o componente.
Os valores possveis esto listados em Configuraes.
button
Um nmero inteiro que funciona como um campo de bits
correspondente ao estado de um boto de mouse quando no est
pressionado. O boto esquerdo bit 0, o boto direito bit 1 e o boto
do meio bit 2. Estes bits correspondem, respectivamente, aos valores
1, 2, e 4. Ele indica o estado dos botes do mouse; algum, todos ou
nenhum destes trs bits pode ser configurado, indicando que algum,
todos ou nenhum dos botes est liberado.
shift
Um nmero inteiro que funciona como um campo de bit
correspondente ao estado das teclas SHIFT, CTRL e ALT quando no
esto pressionadas. A tecla SHIFT bit 0, a tecla CTRL bit 1 e a tecla
ALT bit 2. Estes bits correspondem, respectivamente, aos valores 1, 2
e 4. O parmetro shift indica o estado destas teclas; algum, todos ou
nenhum dos bits pode ser configurado, indicando que alguma, todas ou
nenhuma das teclas est liberada. Por exemplo, se tanto a tecla CTRL
quanto a tecla ALT no estiverem pressionadas, o valor de shift seria 6.
x,y
Um nmero inteiro que especifica a posio horizontal (x) e vertical (y)
atual do ponteiro do mouse dentro do formulrio ou controle de destino.
Os valores x e y so sempre expressos em termos do sistema de
coordenadas
configurado
pelas
propriedades
ScaleHeight,
ScaleWidth, ScaleLeft e ScaleTop do objeto.
state
Um nmero inteiro que corresponde ao estado de transio do controle
que est sendo arrastado, em relao ao formulrio ou controle de
destino. Os valores possveis esto listados em Configuraes.
Configuraes
As configuraes de effect so:

Funes Internas

358

Constante
vbDropEffectNone

Valor
0

vbDropEffectCopy

vbDropEffectMove

vbDropEffectScroll

-2147483648
(&H80000000)

Descrio
O destino de soltar no pode aceitar
os dados.
Soltar resulta em uma cpia dos
dados da origem para o destino. Os
dados
originais
permanecem
inalterados pela operao de arraste.
Soltar resulta em dados serem
movidos da origem de arraste a
origem de soltar. A origem de arraste
deve remover os dados de si mesma
aps a movimentao.
A rolagem est ocorrendo ou a ponto
de acontecer no componente de
destino. Este valor usado em
conjunto com os outros valores.
Observao: Use somente se voc
estiver executando sua prpria
rolagem no componente de destino.

As configuraes de state so:


Constante
Valor
Descrio
vbEnter
0
O componente de origem est sendo arrastado dentro do
intervalo de um destino.
vbLeave
1
O componente de origem est sendo arrastado para fora do
intervalo de um destino.
vbOver
2
O componente foi movido de uma posio no destino a
outra.
Comentrios
Observao: Se o parmetro state for vbLeave, indicando que o ponteiro do mouse deixou o destino, ento os
parmetros x e y contero zeros.
O componente de origem deve sempre mascarar valores do parmetro effect para assegurar a compatibilidade com futuras
implementaes de componentes ActiveX. Atualmente, somente trs dos 32 bits do parmetro effect so utilizados. Em
futuras verses do Visual Basic, entretanto, estes outros bits podem ser usados. Portanto, como precauo contra
problemas futuros, origens de arraste e destinos de soltar devem mascarar estes valores de maneira adequada, antes de
executar qualquer comparao.
Por exemplo, um componente de origem no deve comparar um effect a, digamos, vbDropEffectCopy, desta maneira:
If Effect = vbDropEffectCopy...
Ao invs disso, o componente de origem deve mascarar o valor ou valores que esto sendo procurados, assim:
If Effect And vbDropEffectCopy = vbDropEffectCopy...
-ouIf (Effect And vbDropEffectCopy)...
Isto permite a definio de novos efeitos de soltar em futuras verses do Visual Basic, enquanto preserva compatibilidade
com verses anteriores de seu cdigo existente.
A maioria dos componentes suporta eventos arrastar-e-soltar OLE manual e alguns suportam eventos arrastar-e-soltar OLE
automticos.

Propriedade OLEDropMode
Retorna ou configura a maneira como um componente de destino trata operaes soltar.
Sintaxe
object.OLEDropMode [= mode]
A sintaxe da propriedade OLEDropMode tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
mode
Uma enumerao de nmeros inteiros que especifica o
mtodo que um componente trata operaes arrastar-e-soltar
OLE, conforme descrito em Configuraes.
Configuraes
As configuraes de mode so:
Constante
Valor
vbOLEDropNone
0
vbOLEDropManual

Descrio
(Padro) None. O componente de destino
no aceita soltar OLE e exibe o cursor No
Drop.
Manual. O componente de destino dispara
os eventos soltar OLE, permitindo ao
programador manipular a operao soltar

Funes Internas

359

vbOLEDropAutomatic

OLE em cdigo.
Automatic. O componente de destino aceita
automaticamente soltar OLE se o objeto
DataObject tiver dados em um formato por
ele reconhecido. Nenhum evento de mouse
ou arrastar-e-soltar OLE no destino ocorrer
quando OLEDropMode estiver configurado
como vbOLEDropAutomatic.

Comentrios
Observao: O componente de destino inspeciona o que est sendo arrastado sobre ele para determinar quais eventos
disparar; os eventos arrastar-e-soltar OLE ou eventos arrastar-e-soltar do Visual Basic. No existe coliso de componentes
ou confuso sobre quais eventos so disparados, pois somente um tipo de objeto pode ser arrastado em um determinado
momento.

Evento OLEGiveFeedbac
Ocorre aps cada evento OLEDragOver. OLEGiveFeedbac permite ao componente de origem oferecer indicaes visuais
ao usurio como, por exemplo, a mudana do cursor do mouse para indicar o que acontecer se o usurio soltar o objeto,
ou oferece indicao visual na seleo (no componente de origem) para indicar o que acontecer.
Sintaxe
Private Sub object_OLEGiveFeedbac(effect As Long, defaultcursors As Boolean)
A sintaxe do evento OLEGiveFeedbac tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
effect
Um nmero inteiro longo configurado pelo componente de destino no
evento OLEDragOver especificando a ao a ser executada se o
usurio soltar a seleo sobre ele. Isto permite que a origem realize a
ao adequada (por exemplo, oferecer indicao visual). Os valores
possveis esto listados em Configuraes
defaultcursors
Um valor booleano que determina se o Visual Basic usa o cursor de
mouse padro fornecido pelo componente ou usa um cursor de
mouse definido pelo usurio.
True (Padro) = usa o cursor de mouse padro.
False = no usa o cursor de mouse padro. O cursor de mouse deve
ser configurado com a propriedade MousePointer do objeto Screen.
Configuraes
As configuraes de effect so:
Constante
Valor
vbDropEffectNone
0
vbDropEffectCopy

vbDropEffectMove

vbDropEffectScroll

-2147483648
(&H80000000)

Descrio
Destino de soltar no pode aceitar
os dados.
Soltar resulta em uma cpia dos
dados da origem para o destino. Os
dados
originais
permanecem
inalterados pela operao de
arraste.
Soltar resulta em dados sendo
movidos da fonte de arraste para a
fonte de soltar. A fonte de arraste
deve remover os dados de si mesma
aps a movimentao.
A rolagem est ocorrendo ou a
ponto de ocorrer no componente de
destino. Este valor usado em
conjunto com os outros valores.
Observao: Use somente se voc
estiver executando sua prpria
rolagem no componente de destino.

Comentrios
Se no houver cdigo no evento OLEGiveFeedbac, ou se o parmetro defaultcursors estiver configurado como True, o
Visual Basic configura automaticamente o cursor do mouse como o cursor padro fornecido pelo componente.
O componente de origem deve sempre mascarar valores do parmetro effect para assegurar a compatibilidade com
implementaes futuras de componentes. Atualmente, so usados somente trs dos 32 bits no parmetro effect. Em
verses futuras do Visual Basic, entretanto, estes outros bits podem ser usados. Portanto, como uma precauo contra
problemas futuros, origens de arraste e destinos de soltar devem mascarar estes valores de maneira adequada antes de
executar qualquer comparao.
Por exemplo, um componente de origem no deve comparar um effect a, digamos, vbDropEffectCopy, da maneira abaixo:
If Effect = vbDropEffectCopy...
Ao invs disso, o componente de origem deve mascarar o valor ou valores que esto sendo procurados, desta forma:
Funes Internas

360

If Effect And vbDropEffectCopy = vbDropEffectCopy...


-ouIf (Effect And vbDropEffectCopy)...
Isto permite a definio de novos efeitos de soltar em verses futuras do Visual Basic enquanto preserva a compatibilidade
com verses mais antigas de seu cdigo existente.
A maioria dos componentes suporta eventos arrastar-e-soltar OLE manuais e alguns suportam eventos arrastar-e-soltar
OLE automticos.

Funes Internas

361

Evento OLESetData
Ocorre em um componente de origem quando um componente de origem executa o mtodo GetData no objeto DataObject
da origem, mas os dados para o formato especificado ainda no foram carregados.
Sintaxe
Private Sub object_OLESetData(data As DataObject, dataformat As Integer)
A sintaxe do eve nto OLESetData tem estas partes:
Parte
Descrio
Object
Data
dataformat

Uma expresso de objeto que avalia para um objeto na lista Applies To.
Um objeto DataObject onde colocar os dados solicitados. O
componente chama o mtodo SetData para carregar o formato
solicitado.
Um nmero inteiro especificando o formato dos dados que o
componente de destino est solicitando. O componente de origem usa
este valor para determinar o que carregar no objeto DataObject.

Comentrios
Em determinados casos, voc pode desejar adiar a carga dos dados no objeto DataObject de um componente de origem
para economizar tempo, especialmente se o componente de origem suportar muitos formatos. Este evento permite que a
fonte responda somente a uma solicitao de um determinado formato de dados. Quando este evento chamado, a origem
deve verificar o parmetro format para determinar o que precisa ser carregado e, em seguida, executa o mtodo SetData
no objeto DataObject para carregar os dados que so, a seguir, passados de volta ao componente de destino.

Evento OLEStartDrag
Ocorre quando o mtodo OLEDrag de um componente executado, ou quando um componente inicia uma operao
arrastar-e-soltar quando a propriedade OLEDragMode est configurada como Automatic.
Este evento especifica os formatos de dados e efeitos soltar suportados pelo componente de origem. Ele tambm pode ser
usado para inserir dados no objeto DataObject.
Sintaxe
Private Sub object_StartDrag(data As DataObject, allowedeffects As Long)
A sintaxe do evento StartDrag tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
data
Um objeto DataObject contendo formatos que a origem fornecer e,
opcionalmente, os dados para estes formatos. Se nenhum dado
estiver contido em DataObject, eles so fornecidos quando o controle
chama o mtodo GetData. O programador deve fornecer os valores
deste parmetro neste evento. Os mtodos SetData e Clear no
podem ser usados aqui.
allowedeffects
Um nmero inteiro longo contendo os efeitos suportados pela origem.
Os valores possveis so listados em Configuraes. O programador
deve fornecer os valores para este parmetro neste evento.
Configuraes
As configuraes de allowedeffects so:
Constante
Valor
vbDropEffectNone
0
vbDropEffectCopy
1

vbDropEffectMove

Descrio
O destino de soltar no aceita os dados.
Soltar resulta em uma cpia dos dados da
origem para o destino. Os dados originais
permanecem inalterados pela operao de
arraste.
Soltar resulta em os dados sendo movidos da
origem de arrastar origem de soltar. A origem
de soltar deve remover os dados de si mesma
aps a movimentao.

Comentrios
O componente de origem deve conectar logicamente os valores suportados atravs do operador Or e colocar os resultados
no parmetro allowedeffects. O componente de destino pode usar este valor para determinar a ao adequada (e qual deve
ser a indicao visual adequada para o usurio).
O evento StartDrag tambm ocorre se a propriedade OLEDragMode do componente estiver configurada como Automatic.
Isto permite adicionar formatos e dados ao objeto DataObject aps o componente ter feito isto. Voc tambm pode ignorar
o comportamento padro do componente limpando o objeto DataObject (usando o mtodo Clear) e, em seguida,
adicionando seus dados e formatos.
Voc pode querer adiar a colocao dos dados no objeto DataObject at que o componente de destino os solicite. Isto
permite ao componente de origem economizar tempo no carregando formatos de dados mltiplos. Quando o destino
executa o mtodo GetData sobre o DataObject, o evento OLESetData da origem ocorrer se os dados solicitados no

Funes Internas

362

estiverem contidos no DataObject. Neste ponto, os dados podem ser carregados no DataObject que fornecer os dados
ao destino.
Se o usurio no carregar qualquer formato no DataObject a operao arrastar-e-soltar ser cancelada.

Mtodo SetData (Objeto DataObject)


Insere dados em um objeto DataObject usando o formato de dados especificado.
Sintaxe
object.SetData [data], [format]
A sintaxe do mtodo SetData tem estas partes:
Parte
Descrio
object
Obrigatrio. Uma expresso de objeto que avalia para um
objeto na lista Applies To.
data
Opcional Uma variante contendo os dados a serem passados
ao objeto DataObject.
format
Opcional. Uma constante ou valor que especifica o formato
dos dados que esto sendo passados, conforme descrito em
Configuraes.
Configuraes
As configuraes de format so:
Constante
Valor
vbCFText
1
vbCFBitmap
2
vbCFMetafile
3
vbCFEMetafile
14
vbCFDIB
8
vbCFPalette
9
vbCFFiles
15
vbCFRTF
-16639

Descrio
Texto (arquivos .txt)
Bitmap (arquivos .bmp)
Metarquivos (arquivos .wmf)
Metarquivos aprimorados (arquivos .emf)
Bitmap independente de dispositivo (DIB)
Paleta de cores
Lista de arquivos
Formato Rich Text (arquivos .rtf)

Comentrios
Estas constantes so listadas na biblioteca de objetos do Visual Basic (VB) no Object Browser.
O argumento data opcional. Isto permite configurar diversos formatos diferentes que o componente de origem pode
suportar sem ter que carregar os dados de maneira separada para cada formato. Formatos mltiplos so configurados
chamando SetData diversas vezes, cada vez usando um formato diferente. Se voc desejar um novo incio, use o mtodo
Clear para limpar todos os dados e informaes de formato do DataObject.
O argumento format tambm opcional, mas tanto o argumento data quanto o argumento format devem ser especificados.
Se data for especificado, mas no format, o Visual Basic tentar determinar o formato dos dados. Se no conseguir, um
erro ser gerado. Quando o destino solicitar os dados, e um formato for especificado mas nenhum dado fornecido, ocorrer
o evento OLESetData da origem e ela pode ento fornecer o tipo de dados solicitado.
possvel para os mtodos GetData e SetData usar formatos de dados diferentes daqueles listados em Configuraes,
incluindo formatos definidos pelo usurio registrados no Windows atravs da funo API RegisterClipboardFormat().
Entretanto, deve-se atentar para alguns pontos:
O mtodo SetData exige que os dados estejam na forma de uma matriz de bytes quando ele no reconhece o formato de
dados especificado.
O mtodo GetData sempre retorna dados em matriz de bytes quando ele est em um formato que ele no reconhece,
embora o Visual Basic possa converter de maneira transparente esta matriz de bytes retornada em outros tipos de dados,
como seqncias de caracteres.
A matriz de bytes retornada por GetData ser maior que os prprios dados ao ser executada em alguns sistemas
operacionais, com bytes arbitrrios ao final da matriz. A razo que o Visual Basic no conhece o formato dos dados e
conhece apenas a quantidade de memria alocada para os dados pelo sistema operacional. Esta alocao de memria
com freqncia maior que aquela efetivamente exigida pelos dados. Portanto, podem existir bytes extras junto ao final do
segmento de memria alocado. Como resultado, voc deve usar funes adequadas para interpretar os dados retornados
de uma forma significativa (por exemplo, truncando uma seqncia de caracteres em um determinado comprimento com a
funo Left, caso os dados estejam em um formato de texto).

Propriedades BacColor, ForeColor


BacColor retorna ou configura a cor de segundo plano de um objeto.
ForeColor retorna ou configura a cor de primeiro plano usada para exibir texto e elementos grficos em um objeto.

Sintaxe
object.BacColor [= color]
object.ForeColor [= color]
A sintaxe das propriedades BacColor e ForeColor tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
color
Um valor ou constante que determina as cores de segundo e

Funes Internas

363

primeiro planos de um objeto, conforme descrito em


Configuraes.
Configuraes
O Visual Basic usa o esquema de cores RGB (vermelho-verde-azul) do ambiente operacional do Microsoft Windows. As
configuraes de color so:
Configurao
Descrio
Cores RGB normais
As cores especificadas pelo uso da paleta Color ou pelo uso
das funes RGB ou QBColor em cdigo.
Cores padro do sistemaAs cores especificadas pelas constantes de cor do sistema
listadas na biblioteca de objetos do Visual Basic (VB) no
Object Browser. O ambiente operacional do Windows
substitui as escolhas do usurio conforme especificado nas
configuraes do Painel de controle.
Para todos os formulrios e controles, as configuraes padro durante o tempo de criao so:
BacColor configura a cor padro do sistema especificada pela constante vbWindowBacground.
ForeColor configura a cor padro do sistema especificada pela constante vbWindowText.

Comentrios
Nos controles Label e Shape, a propriedade BacColor ignorada se a configurao da propriedade BacStyle for 0
(Transparente).
Se voc configurar a propriedade BacColor de um objeto Form ou controle PictureBox, todos os textos e elementos
grficos, incluindo elementos grficos permanentes, so apagados. A configurao da propriedade ForeColor no afeta os
elementos grficos ou resultados impressos j desenhados. Em todos os outros controles, a cor da tela se altera
imediatamente.
O intervalo vlido para uma cor RGB normal de 0 a 16.777.215 (&HFFFFFF). O byte alto de um nmero neste intervalo
igual a 0; os 3 bytes mais baixos, do menos significante at o mais significante determinam, respectivamente, a quantidade
de vermelho, verde e azul. Os componentes vermelho, verde e azul so cada um deles representados por um nmero entre
0 e 255 (&HFF). Se o byte alto no for 0, o Visual Basic utiliza as cores do sistema, conforme definido nas configuraes do
Painel de controle do usurio e por constantes listadas na biblioteca de objetos do Visual Basic (VB) no Object Browser.
Para exibir texto no ambiente operacional do Windows, tanto o texto quando as cores de segundo plano devem ser
uniformes. Se o texto ou cores de segundo plano que voc selecionou no forem exibidos, uma das cores selecionadas
pode ser pontilhada ou seja, composta de at trs pixels de cores diferentes. Se voc escolher uma cor pontilhada para
o texto ou para o segundo plano, a cor uniforme mais prxima ser substituda.

Funes Internas

364

Propriedade BacStyle
Retorna ou configura um valor indicando se um controle Label ou o segundo plano de um controle Shape transparente ou
opaco.
Sintaxe
object.BacStyle [= number]
A sintaxe da propriedade BacStyle tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica especificando a transparncia,
conforme descrito em Configuraes.
Configuraes
As configuraes de number so:
Configurao
Descrio
0
Transparente a cor de segundo plano e qualquer elemento
grfico so visveis atrs do controle.
1

(Padro) Opaco a configurao da propriedade BacColor


do controle preenche o controle e obscurece qualquer cor ou
grfico atrs dele.

Comentrios
Voc pode usar a propriedade BacStyle para criar controles transparentes quando estiver usando uma cor de segundo
plano em um objeto Form, controle PictureBox ou quando desejar colocar um controle em um elemento grfico. Use um
controle opaco quando desejar que ele se destaque.
A propriedade BacColor de um controle ignorada se BacStyle = 0.

Propriedade BorderColor
Retorna ou configura a cor da borda de um objeto.
Sintaxe
object.BorderColor [= color]
A sintaxe da propriedade BorderColor tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
color
Um valor ou constante que determina a cor da borda,
conforme descrito em Configuraes.
Configuraes
O Visual Basic usa o esquema de cores RGB (vermelho-verde-azul) do ambiente operacional do Microsoft Windows. As
configuraes de color so:
Configurao
Descrio
Cores RGB normais
As cores especificadas usando a paleta Color ou usando as
funes RGB ou QBColor no cdigo.
Cores padro do sistemaAs cores especificadas por constantes de cor do sistema
listadas na biblioteca de objetos do Visual Basic (VB) no
Object Browser . A cor padro do sistema especificada pela
constante vbWindowText. O ambiente operacional do
Windows substitui as opes do usurio conforme
especificado nas configuraes do Painel de controle.
Comentrios
O intervalo vlido para uma cor RGB normal de 0 a 16.777.215 (&HFFFFFF). O byte alto de um nmero neste intervalo
igual a 0; os 3 bytes mais baixos, do menos significante at o mais significante determinam, respectivamente, a quantidade
de vermelho, verde e azul. Os componentes vermelho, verde e azul so cada um deles representados por um nmero entre
0 e 255 (&HFF). Se o byte alto no for 0, o Visual Basic utiliza as cores do sistema, conforme definido nas configuraes do
Painel de controle do usurio e por constantes listadas na biblioteca de objetos do Visual Basic (VB no Object Browser.

Propriedade BorderStyle
Retorna ou configura o estilo de borda de um objeto. Para o objeto Form e o controle TextBox, somente leitura durante o
tempo de execuo.
Sintaxe
object.BorderStyle = [value]
A sintaxe da propriedade BorderStyle tem estas partes:
Parte
Descrio

Funes Internas

365

object
value

Uma expresso de objeto que avalia para um objeto na lista


Applies To.
Um valor ou constante que determina o estilo de borda,
conforme descrito em Configuraes.

Configuraes
As configuraes da propriedade BorderStyle para um objeto Form so:
Constante
Configurao
Descrio
vbBSNone
0
None (nenhuma borda ou
elementos relacionados a ela).
vbFixedSingle
1
Fixed Single. Pode incluir a
caixa de menu Control, barra
de ttulo, boto Maximizar e
boto
Minimizar.
Redimensionvel
somente
usando os botes Maximizar
e Minimizar.
vbSizable
2
(Padro)
Sizable.
Redimensionvel
usando
qualquer um dos elementos de
borda opcionais listados para
a configurao 1.
vbFixedDouble
3
Fixed Dialog. Pode incluir
caixa do menu Control barra
de ttulo; no pode incluir
botes
Maximizar
ou
Minimizar.
No

redimensionvel.
vbFixedToolWindow
4
Fixed ToolWindow. Exibe uma
janela no-dimensionvel com
um boto Fechar e texto de
barra de ttulo em um tamanho
de
fonte
reduzido.
O
formulrio no aparece na
barra de tarefas do Windows
95.
vbSizableToolWindow
5
Sizable ToolWindow. Exibe
uma janela dimensionvel com
um boto Fechar e texto de
barra de ttulo em um tamanho
da
fonte
reduzido.
O
formulrio no aparece na
barra de tarefas do Windows
95.
As configuraes de propriedade BorderStyle para os controles MS Flex Grid, Image, Label, recipiente OLE, PictureBox,
Frame e TextBox so:
Configurao
Descrio
0
(Padro para os controles Image e Label) None.
1
(Padro para os controles MS Flex Grid, PictureBox,
TextBox, e recipiente OLE) Fixed Single.
As configuraes de propriedade BorderStyle para os controles Line e Shape so:
Constante
Configurao
Descrio
vbTransparent
0
Transparente
vbBSSolid
1
(Padro) Uniforme. A borda
centralizada na borda da forma.
vbBSDash
2
Trao
vbBSDot
3
Ponto
vbBSDashDot
4
Trao-ponto
vbBSDashDotDot
5
Trao-ponto-ponto
vbBSInsideSolid
6
Uniforme interno. A face externa da
borda a face externa da forma.
Comentrios
Para um formulrio, a propriedade BorderStyle determina caractersticas fundamentais que identificam visualmente um
formulrio como sendo uma janela de uso geral ou uma caixa de dilogo. A configurao 3 (Fixed Dialog) til para as
caixas de dilogo padro. As configuraes 4 (Fixed ToolWindow) e 5 (Sizable ToolWindow) so teis para se criar janelas
no estilo de caixa de ferramentas.
Formulrios MDI filho configurados como 2 (Sizable) so exibidos dentro do formulrio MDI em um tamanho padro
definido pelo ambiente operacional do Windows durante o tempo de execuo. Para qualquer outra configurao, o
formulrio exibido no tamanho especificado durante o tempo de criao.
Funes Internas

366

A alterao da configurao da propriedade BorderStyle de um objeto Form pode alterar as configuraes das
propriedades MinButton, MaxButton e ShowInTasbar. Quando BorderStyle configurada como 1 (Fixed Single) ou 2
(Sizable), as propriedades MinButton, MaxButton e ShowInTasbar so automaticamente configuradas como True.
Quando BorderStyle configurada como 0 (None), 3 (Fixed Dialog), 4 (Fixed ToolWindows) ou 5 (Sizable ToolWindow), as
propriedades MinButton, MaxButton e ShowInTasbar so automaticamente configuradas como False.
Observao: Se um formulrio com um menu for configurado como 3 (Fixed Dialog), ele ser ento exibido com uma
configurao de borda 1 (Fixed Single).
Durante o tempo de execuo, um formulrio de janela restrita ou sem janela restrita, que voc especifica usando o
mtodo Show.

Propriedade BorderWidth
Retorna ou configura a largura da borda de um controle.
Sintaxe
object.BorderWidth [= number]
A sintaxe da propriedade BorderWidth tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica de 1 to 8192, inclusive.
Comentrios
Use as propriedades BorderWidth e BorderStyle para especificar o tipo de borda que voc deseja para um controle Line
ou Shape. A tabela abaixo mostra os efeitos da configurao BorderStyle sobre a propriedade BorderWidth:
BorderStyle
Efeito sobre BorderWidth
0
A configurao BorderWidth ignorada.
15
A largura da borda expande-se do centro para a borda; a
altura e a largura do controle so medidas do centro at a
face externa da borda.
6
A largura da borda expande-se para dentro do controle, a
partir da face externa da borda; a altura e a largura do
controle so medidas a partir a face externa da borda.
Se a configurao da propriedade BorderWidth for maior que 1, as nicas configuraes efetivas de BorderStyle so 1
(Solid) e 6 (Inside Solid).

Propriedade Cancel
Retorna ou configura um valor indicando se um boto de comando o boto Cancel de um formulrio. Este boto de
comando pode ser o controle CommandButton ou qualquer objeto dentro de um controle de recipiente OLE que se
comporte como um boto de comando.
Sintaxe
object.Cancel [= boolean]
A sintaxe da propriedade Cancel tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Boolean especificando se o objeto o boto
Cancel, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
O controle CommandButton o boto Cancel.
False
(Padro) O controle CommandButton no o boto Cancel.
Comentrios
Use a propriedade Cancel para dar ao usurio a opo de cancelar alteraes no efetivadas e retornar o formulrio a seu
estado anterior.
Somente um controle CommandButton em um formulrio pode ser o boto Cancel. Quando a propriedade Cancel for
configurada como True para um CommandButton, ela ser automaticamente configurada como False para todos os
outros controles CommandButton do formulrio. Quando a propriedade Cancel de um controle CommandButton for
configurada como True e o formulrio for o formulrio ativo, o usurio pode escolher o CommandButton clicando nele,
pressionando a tecla ESC ou pressionando ENTER quando o boto tiver o foco.
Para controles de recipiente OLE, a propriedade Cancel fornecida somente para aqueles objetos que se comportam
especificamente como botes de comando.
Dica Para um formulrio que suporta operaes irreversveis, como excluses, uma boa idia deixar o boto Cancel
como boto padro. Para fazer isto, configure ambas as propriedades Cancel e Default como True.

Funes Internas

367

Propriedades Col e Row


Retornam ou configuram a clula ativa em um controle DBGrid. No esto disponveis durante o tempo de criao.
Sintaxe
object.Col [= number]
object.Row [= number]
A sintaxe das propriedades Col e Row tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
O nmero da coluna ou linha contendo a clula ativa.
Comentrios
Use esta propriedade para especificar uma clula em um controle DBGrid ou para descobrir qual coluna ou linha contm a
clula ativa em uma rea selecionada. As colunas e linhas so numeradas a partir de zero, comeando na parte superior
para as linhas, e esquerda para as colunas. A configurao destas propriedades durante o tempo de execuo no altera
clulas que estejam selecionadas. Use as propriedades SelEndCol, SelStartCol, SelEndRow e SelStartRow para
especificar uma rea selecionada.
Observao: As propriedades Col e Row no so iguais s propriedades Cols e Rows.

Funes Internas

368

Propriedades Cols e Rows


Retornam ou configuram o nmero total de colunas ou linhas em um controle DBGrid.
Sintaxe
object.Cols [= number]
object.Rows [= number]
A sintaxe das propriedades Cols e Rows tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
O nmero de colunas ou linhas em um controle DBGrid. O
nmero mnimo de colunas 1 e o mximo 400; o nmero
mnimo de linhas 1 e o mximo 2000.
Comentrios
Use estas propriedades para expandir dinamicamente um controle DBGrid durante o tempo de execuo. Um controle
DBGrid deve ter pelo menos uma coluna no-fixa e uma linha no-fixa.
Observao: As propriedades Cols e Rows no so iguais s propriedades Col e Row.

Propriedade ControlBox
Retorna ou configura um valor indicando se uma caixa do menu Control exibida em um formulrio durante o tempo de
execuo. Somente leitura durante o tempo de execuo.
Sintaxe
object.ControlBox
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes da propriedade ControlBox so:
Configurao
Descrio
True
(Padro) Exibe a caixa do menu Control.
False
Remove a caixa do menu Control.
Comentrios
Para exibir uma caixa do menu Control, voc tambm deve configurar a propriedade BorderStyle do formulrio como 1
(Fixed Single), 2 (Sizable) ou 3 (Fixed Dialog).
Tanto a janela restrita como no-restrita pode incluir uma caixa do menu Control.
Os comandos disponveis durante o tempo de execuo dependem das configuraes das propriedades relacionadas
por exemplo, configurar MaxButton e MinButton como False desativa os comandos Maximize e Minimize no menu
Control, mas os comandos Move e Close permanecem disponveis.
Observao:
As configuraes que voc especifica para as propriedades ControlBox, BorderStyle, MaxButton e
MinButton no so refletidas na aparncia do formulrio at o tempo de execuo.

Funes Internas

369

Propriedade DrawWidth
Retorna ou configura a largura de linha para o resultado dos mtodos grficos.
Sintaxe
object.DrawWidth [= size]
A propriedade DrawWidth tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Size
Uma expresso numrica de 1 a 32.767. Este valor
representa a largura de linha em pixels. O padro 1; ou
seja, 1 pixel de largura.
Comentrios
Aumente o valor desta propriedade para aumentar a largura da linha. Se a configurao da propriedade DrawWidth for
maior que 1, as configuraes de 1 a 4 da propriedade DrawStyle produzem uma linha uniforme (o valor da propriedade
DrawStyle no alterado). Configurar DrawWidth como 1 permite que DrawStyle produza os resultados mostrados na
tabela da propriedade DrawStyle.

Propriedades FontBold, FontItalic, FontStriethru e FontUnderline


Retornam ou configuram estilos de fonte nos seguintes formatos: Negrito, Itlico, Tachado e Sublinhado.
Observao: As propriedades FontBold, FontItalic, FontStriethru e FontUnderline so includas para uso com o
controle CommonDialog e para compatibilidade com verses anteriores do Visual Basic. Para funcionalidade adicional use
as novas propriedades do objeto Font (no disponveis para o controle CommonDialog).
Sintaxe
object.FontBold [= boolean]
object.FontItalic [= boolean]
object.FontStriethru [= boolean]
object.FontUnderline [= boolean]
As sintaxes das propriedades FontBold, FontItalic, FontStriethru e FontUnderline tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Boolean especificando o estilo de fonte
descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
(Padro para FontBold, exceto com o controle
CommonDialog) Ativa a formatao naquele estilo.
False
(Padro para FontItalic, FontStriethru e FontUnderline, e
FontBold com o controle CommonDialog) Desativa a
formatao naquele estilo.
Comentrios
Use estas propriedades de fonte para formatar textos durante o tempo de criao usando a janela Properties ou durante o
tempo de execuo usando cdigo. Para controles PictureBox, Form e objetos Printer, a configurao destas
propriedades no afeta elementos grficos ou textos j desenhados no controle ou objeto. Para todos os outros controles,
as alteraes de fonte so imediatamente efetivas na tela.
Para usar estas propriedades com o controle CommonDialog, o sinalizador Effects deve ser configurado.
Observao: As fontes disponveis no Visual Basic variam dependendo da configurao de seu sistema, dispositivos de
exibio e dispositivos de impresso. As propriedades relativas a fonte somente podem ser configuradas como valores para
os quais efetivamente existam fontes.
Em geral, voc deve alterar a propriedade FontName antes de configurar os atributos de tamanho e estilo com as
propriedades FontSize, FontBold, FontItalic, FontStriethru e FontUnderline. Entretanto, quando configura fontes
TrueType como menores que 8 pontos, voc deve configurar o tamanho do ponto com a propriedade FontSize, configurar a
propriedade FontName e ento configurar o tamanho novamente com a propriedade FontSize. O ambiente operacional do
Microsoft Windows usa uma fonte diferente para as fontes TrueType que sejam menores que 8 pontos.

Propriedade FontName
Retorna ou configura a fonte usada para exibir texto em um controle ou em uma operao de desenho ou impresso
durante o tempo de execuo.
Observao: A propriedade FontName est includa para uso com o controle CommonDialog e para compatibilidade
com verses anteriores do Visual Basic. Para funcionalidade adicional, use as propriedades de objeto Font (no
disponveis para o controle CommonDialog).
Sintaxe
object.FontName [= font]

Funes Internas

370

A propriedade FontName tem estas partes:


Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
font
Uma expresso de seqncia de caracteres especificando o
nome da fonte a ser usada.
Comentrios
O padro para esta propriedade determinado pelo sistema. As fontes disponveis com o Visual Basic variam dependendo
da configurao de seu sistema, dispositivos de exibio e dispositivos de impresso. As propriedades relacionadas com
fontes podem ser configuradas como valores para os quais existam fontes.
Em geral, voc deve alterar FontName antes de configurar atributos de tamanho e estilo com as propriedades FontSize,
FontBold, FontItalic, FontStriethru e FontUnderline.
Observao: Durante o tempo de execuo, voc pode obter informaes sobre fontes disponveis para o sistema
atravs das propriedades FontCount e Fonts.

Funes Internas

371

Propriedade FontSize
Retorna ou configura o tamanho da fonte a ser usada para o texto exibido em um controle ou em uma operao de
desenho ou impresso durante o tempo de execuo.
Observao: A propriedade FontSize includa para uso com o controle CommonDialog e para compatibilidade com
verses anteriores do Visual Basic. Para funcionalidade adicional, use as novas propriedades do objeto Font (no
disponveis para o controle CommonDialog).
Sintaxe
object.FontSize [= points]
A propriedade FontSize tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
points
Uma expresso numrica especificando o tamanho de fonte
a ser usado em pontos.
Comentrios
Use esta propriedade para formatar texto no tamanho de fonte desejado. O padro determinado pelo sistema. Para
alterar o padro, especifique o tamanho da fonte em pontos.
O valor mximo para FontSize 2160 pontos.
Observao: As fontes disponveis com o Visual Basic variam dependendo da configurao de seu sistema, dispositivos
de exibio e dispositivos de impresso. Propriedades relacionadas com fonte somente podem ser configuradas como
valores para os quais existam fontes.
Em geral, voc deve alterar a propriedade FontName antes de configurar os atributos de tamanho e estilo com as
propriedades FontSize, FontBold, FontItalic, FontStriethru e FontUnderline. Entretanto, quando voc configura fontes
TrueType como menores que 8 pontos, voc deve configurar o tamanho do ponto com a propriedade FontSize, configurar a
propriedade FontName e ento configurar novamente o tamanho com a propriedade FontSize. O ambiente operacional do
Microsoft Windows usa uma fonte diferente para fontes TrueType que sejam menores que 8 pontos.

Propriedades Height e Width


Retornam ou configuram as dimenses de um objeto ou a largura do objeto Columns de um controle DBGrid. Para os
objetos Printer e Screen, no esto disponveis durante o tempo de criao.
Sintaxe
object.Height [= number]
object.Width [= number]
As sintaxes das propriedades Height e Width tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica especificando as dimenses de um
objeto, conforme descrito em Configuraes.

Configuraes
As medidas so calculadas como abaixo:
Formulrio a altura e largura externa do formulrio, incluindo as bordas e a barra de ttulo.
Controle medido a partir do centro da borda do controle, de modo que os controles com espessuras de borda diferentes
alinhem-se corretamente. Estas propriedades usam as unidades de escala do recipiente do controle.
Objeto Printer as dimenses fsicas da configurao de papel para o dispositivo de impresso; no disponvel durante o
tempo de criao. Se configurada durante o tempo de execuo, os valores nestas propriedades so usados, ao invs da
configurao da propriedade PaperSize.
Objeto Screen a altura e largura da tela; no disponvel durante o tempo de criao e somente leitura durante o tempo
de execuo.
Objeto Picture a altura e largura da figura em unidades HiMetric.
Comentrios
Para objetos Form, Printer e Screen, estas propriedades so sempre medidas em twips. Para um formulrio ou controle,
os valores destas propriedades se alteram medida que o objeto dimensionado pelo usurio ou pelo cdigo. Os limites
mximos destas propriedades para todos os objetos dependem do sistema.
Se voc configurar as propriedades Height e Width para um driver de impressora que no permite que estas propriedades
sejam configuradas, no ocorrer nenhum erro e o tamanho do papel permanecer inalterado. Se voc configurar Height e
Width para um driver de impressora que permita que somente determinados valores sejam especificados, no ocorrer
nenhum erro e a propriedade configurada para qualquer coisa que seja permitida pelo driver. Por exemplo, voc poderia
configurar Height como 150 e o driver a configuraria como 144.
Use as propriedades Height, Width, Left e Top para operaes ou clculos baseados na rea total do objeto, como
dimensionar ou mover o objeto. Use as propriedades ScaleLeft, ScaleTop, ScaleHeight e ScaleWidth para operaes ou
clculos baseados em uma rea interna do objeto, como desenhar ou mover objetos dentro de outro objeto.
Observao: A propriedade Height no pode ser alterada para o controle DriveListBox ou para o controle ComboBox,
cuja configurao de propriedade Style 0 (Dropdown Combo) ou 2 (Dropdown List).

Funes Internas

372

Para o objeto Columns do controle DBGrid, Width especificado na unidade de medida do objeto que contm o DBGrid.
O valor padro para Width o valor da propriedade DefColWidth de DBGrid.
Para o objeto Picture, use os mtodos ScaleX e ScaleY para converter unidades HiMetric na escala necessria.

Propriedade Icon
Retorna o cone exibido quando um formulrio minimizado durante o tempo de execuo.
Sintaxe
object.Icon
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Use esta propriedade para especificar um cone para qualquer formulrio que o usurio possa minimizar durante o tempo
de execuo.
Por exemplo, voc pode atribuir um cone exclusivo a um formulrio para indicar a funo do formulrio. Especifique o
cone carregando-o usando a janela Properties durante o tempo de criao. O arquivo que voc carrega deve ter a
extenso e formato de nome de arquivo .ico. Se voc no especificar um cone, o cone padro do Visual Basic para
formulrios ser utilizado.
Voc pode usar a Biblioteca de cones do Visual Basic (no subdiretrio Icons) como uma origem para cones. Quando criar
um arquivo executvel, voc poder atribuir um cone ao aplicativo usando a propriedade Icon de qualquer formulrio
naquele aplicativo.
Observao: Voc pode ver um cone de formulrio no Windows 95 no canto superior esquerdo do formulrio ou quando
o formulrio minimizado, tanto no Windows 95 quanto no Windows NT. Se o formulrio for minimizado, a propriedade
BorderStyle dever ser configurada tanto como 1 (Fixed Single) quanto como 2 (Sizable) e, a propriedade MinButton
dever ser configurada como True para que o cone seja visvel.
Durante o tempo de execuo, voc pode atribuir uma propriedade Icon propriedade Icon ou DragIcon de outro objeto.
Voc tambm pode atribuir um cone retornado pela funo LoadPicture. Usar LoadPicture sem um argumento atribui um
cone vazio (null) ao formulrio, o que lhe permite desenhar no cone durante o tempo de execuo.

Propriedade Interval
Retorna ou configura o nmero de milisegundos entre chamadas a um evento Timer de um controle Timer.
Sintaxe
object.Interval [= milliseconds]
A propriedade Interval tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
milliseconds
Uma expresso numrica especificando o nmero de
milisegundos conforme descrito em Configuraes.
Configuraes
As configuraes para milliseconds so:
Configurao
Descrio
0
(Padro) Desativa o controle Timer.
1 a 65.535
Configura um intervalo (em milisegundos) que se torna
efetiva quando uma propriedade Enabled de um controle
Timer for configurada como True. Por exemplo, um valor de
10.000 milisegundos igual a 10 segundos. O mximo,
65.535 milisegundos equivalente a pouco mais do que 1
minuto.
Comentrios
Voc pode configurar a propriedade Interval de um controle Timer durante o tempo de criao ou durante o tempo de
execuo. Quando usar a propriedade Interval, lembre-se:
A propriedade Enabled do controle Timer determina se o controle responde passagem do tempo. Configure Enabled
como False para desligar um controle Timer e como True para ativ-lo. Quando um controle Timer for ativado, sua
contagem regressiva sempre se inicia a partir do valor de sua configurao de propriedade Interval.
Crie um procedimento de evento Timer para informar ao Visual Basic o que fazer a cada vez que Interval decorreu.

Funes Internas

373

Propriedades Left e Top


Left retorna ou configura a distncia entre a borda interna esquerda de um objeto e a borda esquerda de seu recipiente.
Top retorna ou configura a distncia entre a borda interna superior e um objeto e a borda superior de seu recipiente.

Sintaxe
object.Left [= value]
object.Top [= value]
As sintaxes das propriedades Left e Top tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso numrica especificando a distncia.
Comentrios
Para um formulrio, as propriedades Left e Top so sempre expressas em twips; para um controle, elas so medidas em
unidades que dependem do sistema de coordenadas de seu recipiente. Os valores para estas propriedades se alteram
medida que o objeto movido pelo usurio ou por meio de cdigo. Para os controles CommonDialog e Timer, estas
propriedades no esto disponveis durante o tempo de execuo.
Para qualquer uma das propriedades, voc pode especificar um nmero de preciso simples.
Use as propriedades Left, Top, Height e Width para operaes baseadas em dimenses externas de um objeto, como
mover ou redimensionar. Use as propriedades ScaleLeft, ScaleTop, ScaleHeight e ScaleWidth para operaes baseadas
em dimenses internas de um objeto como, por exemplo, desenhar ou mover objetos que esto contidos no objeto. As
propriedades relativas a escala aplicam-se somente a controles PictureBox e a objetos Form e Printer.

Propriedade List
Retorna ou configura os itens contidos na parte de listagem de um controle. A lista uma matriz de seqncia de
caracteres em que cada elemento um item da lista. Disponvel durante o tempo de criao para controles ListBox e
ComboBox atravs do localizador de propriedade; somente leitura durante o tempo de execuo para controles
DirListBox, DriveListBox e FileListBox; para leitura e gravao durante o tempo de execuo para controles ComboBox
e ListBox.
Sintaxe
object.List(index) [= string]
A propriedade List tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
O nmero de um item especfico na lista.
String
Uma expresso de seqncia de caracteres especificando o
item da lista.
Comentrios
Use esta propriedade para acessar itens de lista.
Para todos os controles, exceto DirListBox, o ndice do primeiro item 0 e o ndice do ltimo item ListCount1.
Para um controle DirListBox, a seqncia de nmeros de ndice baseada nos diretrios e subdiretrios atuais quando o
controle criado durante o tempo de execuo. O diretrio que est atualmente expandido representado usando o
ndice1. Os diretrios acima do diretrio atualmente expandido so representados por ndices negativos com valores
absolutos mais altos. Por exemplo, 2 o diretrio-pai do diretrio atualmente expandido, e 3 o diretrio acima daquele.
Os diretrios abaixo daquele atualmente expandido permanecem no intervalo 0 a ListCount1.
Inicialmente, os controles ComboBox e ListBox contm uma lista vazia. Para os controles do sistema de arquivos, a lista
est baseada em condies que existem quando o controle criado durante o tempo de execuo:
DirListBox contm uma lista de diretrios, usando o intervalo -n at ListCount1.
DriveListBox contm a lista de conexes de unidades de disco vlidas.
FileListBox contm a lista de arquivos no diretrio que est atualmente expandido e que correspondem propriedade
Pattern. O caminho no est includo.
A propriedade List funciona em conjunto com as propriedades ListCount e ListIndex.
Para todos os controles aplicveis, exceto um DirListBox, a enumerao de uma lista de 0 at ListCount -1 retorna todos
os itens na lista. Para um controle DirListBox, a enumerao da lista de n at ListCount1 retorna uma lista contendo
todos os diretrios e subdiretrios visveis do diretrio que est atualmente expandido. Neste caso n o nmero de nveis
de diretrio acima do diretrio atualmente expandido.
Observao: Para especificar os itens que voc deseja exibir em um controle ComboBox ou ListBox, use o mtodo
AddItem. Para remover itens, use o mtodo RemoveItem. Para manter os itens em ordem alfabtica, configure a
propriedade Sorted do controle como True antes de adicionar itens lista.
Usar uma instruo Option Base = 1 na seo Declarations no afeta a enumerao de elementos em controles do Visual
Basic. O primeiro elemento sempre 0.
Quando o ndice List est fora do intervalo de entradas verdadeiras na caixa de listagem, retornada uma seqncia de
caracteres de comprimento zero (""). Por exemplo, List(-1) retorna uma seqncia de caracteres de comprimento zero para
um controle ComboBox ou ListBox.

Funes Internas

374

Propriedade ListCount
Retorna o nmero de itens na parte de listagem de um controle.
Sintaxe
object.ListCount

O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
ListCount fornece informaes especficas para cada controle:
Controles ComboBox e ListBox o nmero de itens na lista.
Controle DirListBox o nmero de subdiretrios no diretrio atual.
Controle DriveListBox o nmero de conexes de unidade de disco.
Controle FileListBox o nmero de arquivos no diretrio atual que correspondem configurao da propriedade Pattern.
Se nenhum item for selecionado, o valor da propriedade ListIndex 1. O primeiro item na lista ListIndex = 0, e
ListCount sempre um a mais que o maior valor ListIndex.

Funes Internas

375

Propriedade ListIndex
Retorna ou configura o ndice do item atualmente selecionado no controle. No disponvel durante o tempo de criao.
Sintaxe
object.ListIndex [= index]
A propriedade ListIndex tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
Uma expresso numrica especificando o ndice do item
atual, conforme descrito em Configuraes.
Configuraes
As configuraes de index so:
Configurao
Descrio
1
(Padro para controles ComboBox, DirListBox e
DriveListBox) Indica que nenhum item est selecionado
atualmente. Para um controle ComboBox, indica que o
usurio inseriu texto novo na parte de caixa de texto. Para
um controle DirListBox, indica o ndice do caminho atual.
Para um controle DriveListBox, indica o ndice da unidade
de disco atual quando o controle criado durante o tempo de
execuo.
n

(Padro para controles FileListBox e ListBox) Um nmero


indicando o ndice do item atualmente selecionado.

Comentrios
A expresso List(List1.ListIndex) retorna a seqncia de caracteres do item atualmente selecionado.
O primeiro item da lista ListIndex = 0, e ListCount sempre uma a mais que o maior valor ListIndex.
Para um controle onde os usurios podem efetuar selees mltiplas, o comportamento desta propriedade depende do
nmero de itens selecionados. Se somente um item for selecionado, ListIndex retorna o ndice daquele item. Em uma
seleo mltipla, ListIndex retorna o ndice do item contido no retngulo do foco, estando ou no efetivamente selecionado
o item.

Propriedade MaxButton
Retorna um valor indicando se um formulrio tem um boto Maximize.
Sintaxe
object.MaxButton
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes da propriedade MaxButton so:
Configurao
Descrio
True
(Padro) O formulrio tem um boto Maximize.
False
O formulrio no tem um boto Maximize.
Comentrios
Um boto Maximize permite aos usurios ampliar uma janela de formulrio at um tamanho de tela inteira. Para exibir um
boto Maximize, voc tambm deve configurar a propriedade BorderStyle do formulrio como 1 (Fixed Single), 2 (Sizable)
ou 3 (Fixed Double).
Um boto Maximize torna-se automaticamente um boto Restore quando uma janela maximizada. Minimizar ou
restaurar uma janela altera automaticamente o boto Restore de volta para o boto Maximizar.
As configuraes que voc especifica para as propriedades MaxButton, MinButton, BorderStyle e ControlBox no so
refletidas na aparncia do formulrio at o tempo de execuo.
Observao:
Maximizar um formulrio durante o tempo de execuo gera um evento Resize. A propriedade
WindowState reflete o estado atual da janela. Se voc configurar a propriedade WindowState como 2 (Maximized), o
formulrio maximizado independente de qualquer configurao vlida para as propriedades MaxButton e BorderStyle.

Propriedade MinButton
Retorna um valor indicando se um formulrio tem um boto Minimize.
Sintaxe
object.MinButton
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Valores de retorno
Os valores de retorno MinButton so:
Configurao
Descrio
True
(Padro) O formulrio tem um boto Minimize.

Funes Internas

376

False

O formulrio no tem um boto Minimize.

Comentrios
Um boto Minimize permite aos usurios minimizar uma janela de formulrio como um cone. Para exibir um boto
Minimize, voc precisa configurar a propriedade BorderStyle do formulrio como 1 (Fixed Single), 2 (Sizable) ou 3 (Fixed
Double).
As configuraes que voc especifica para as propriedades MaxButton, MinButton, BorderStyle e ControlBox no esto
refletidas na aparncia do formulrio at o tempo de execuo.
Observao:
Minimizar um formulrio como um cone durante o tempo de execuo gera um evento Resize. A
propriedade WindowState reflete o estado atual da janela. Se voc configurar a propriedade WindowState como 2
(Maximized), o formulrio ser maximizado independente de qualquer configurao vlida para as propriedades MaxButton
e BorderStyle.

Funes Internas

377

Propriedade Picture
Retorna ou configura um elemento grfico a ser exibido em um controle. Para o controle de recipiente OLE, no disponvel
durante o tempo de criao e somente leitura durante o tempo de execuo.
Sintaxe
object.Picture [= picture]
A propriedade Picture tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
picture
Uma expresso de seqncia de caracteres especificando o
arquivo contendo o elemento grfico, conforme descrito em
Configuraes.
Configuraes
As configuraes de picture so:
Configurao
Descrio
(None)
(Padro) Nenhuma figura.
(Bitmap, icon, metafile,Especifica um elemento grfico. Voc pode carregar o
GIF, JPEG)
elemento grfico a partir da janela Properties durante o
tempo de criao. Durante o tempo de execuo, voc
tambm pode configurar esta propriedade usando a funo
LoadPicture em um bitmap, cone ou metarquivo.
Comentrios
Durante o tempo de criao, voc pode transferir um elemento grfico com a rea de transferncia usando os comandos
Copy, Cut e Paste no menu Edit. Durante o tempo de execuo, voc pode usar os mtodos Clipboard como, por exemplo
GetData, SetData e GetFormat com as constantes no-texto de Clipboard vbCFBitmap, vbCFMetafile e vbCFDIB, que
esto listadas na biblioteca de objetos do Visual Basic (VB) no Object Browser.
Ao configurar a propriedade Picture durante o tempo de criao, o elemento grfico salvo e carregado com o formulrio.
Se voc criou um arquivo executvel, o arquivo contm a imagem. Quando voc carrega um elemento grfico durante o
tempo de execuo, o elemento grfico no salvo com o aplicativo. Use a instruo SavePicture para salvar um
elemento grfico de um formulrio ou caixa de figura para um arquivo.
Observao:
Durante o tempo de execuo, a propriedade Picture pode ser configurada como qualquer outra
propriedade DragIcon, Icon, Image ou Picture do objeto, ou voc pode atribuir-lhe o elemento grfico retornado pela
funo LoadPicture.

Propriedade Sorted
Retorna um valor indicando se os elementos de um controle forem automaticamente classificados em ordem alfabtica.
Sintaxe
object.Sorted
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Valores de retorno
Os valores de retorno da propriedade Sorted so:
Configurao
Descrio
True
Itens de lista so classificados por cdigo de caractere.
False
(Padro) Os itens da lista no so classificados em ordem
alfabtica.
Comentrios
Quando esta propriedade estiver configurada como True, o Visual Basic trata de quase todo o processamento necessrio
de seqncias de caracteres para manter a ordem alfabtica, incluindo mudar os nmero de ndice para itens conforme
seja necessrio atravs da adio ou remoo de itens.
Observao: Usar o mtodo AddItem para adicionar um elemento a uma localizao especfica na lista pode violar a
ordem de classificao, e adies subseqentes podem no ser corretamente classificadas.

Propriedade TabIndex
Retorna ou configura a ordem de tabulao da maioria dos objetos dentro de seu formulrio-pai.
Sintaxe
object.TabIndex [= index]
A propriedade TabIndex tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
Um nmero inteiro de 0 a (n1), onde n o nmero de
controles no formulrio que tm uma propriedade TabIndex.
Atribuir a TabIndex um valor menor que 0 gera um erro.

Funes Internas

378

Comentrios
Como padro, o Visual Basic atribui uma ordem de tabulao a controles, medida que voc os desenha em um
formulrio, com exceo dos controles Menu, Timer, Data, Image, Line e Shape, que no so includos na ordem de
tabulao. Durante o tempo de execuo, controles invisveis ou desativados e controles que no podem receber o foco
(controles Frame e Label) permanecem na ordem de tabulao, mas so ignorados durante a tabulao.
Cada novo controle colocado em ltimo lugar na ordem de tabulao. Se voc alterar o valor da propriedade TabIndex de
um controle para ajustar a ordem de tabulao padro, o Visual Basic renumera automaticamente as TabIndex de outros
controles para refletir inseres e excluses. Voc pode efetuar alteraes durante o tempo de criao usando a janela
Properties ou durante o tempo de execuo por meio de cdigo.
A propriedade TabIndex no afetada pelo mtodo ZOrder.
Observao: A ordem de tabulao de um controle no afeta sua tecla de acesso associada. Se voc pressionar a tecla
de acesso para um controle Frame ou Label, o foco se move at o prximo controle na ordem de tabulao que pode
receber o foco.
Ao carregar formulrios salvos como texto ASCII, os controles com uma propriedade TabIndex que no esto listados na
descrio do formulrio recebem automaticamente um valor TabIndex. Em controles carregados subseqentemente, se
valores TabIndex existente entram em conflito com valores anteriores atribudos, os controles recebem automaticamente
novos valores.
Quando exclui um ou mais controles, voc pode usar o comando Undo para restaurar os controles e todas as suas
propriedades, exceto a propriedade TabIndex, que no pode ser restaurada. TabIndex reconfigurada ao final da ordem
de tabulao quando voc usa Undo.

Propriedade Tag
Retorna ou configura uma expresso que armazena qualquer dado extra necessrio para seu programa. Diferente de
outras propriedades, o valor da propriedade Tag no usado pelo Visual Basic; voc pode usar esta propriedade para
identificar objetos.
Sintaxe
object.Tag [= expression]
A propriedade Tag tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
expression
Uma expresso de seqncia de caracteres identificando o
objeto. O padro uma seqncia de caracteres de
comprimento zero ("").
Comentrios
Voc pode usar esta propriedade para atribuir uma seqncia de caracteres de identificao a um objeto sem afetar
qualquer de suas configuraes de propriedade ou causar qualquer efeito colateral. A propriedade Tag til quando voc
precisa verificar a identidade de um controle ou objeto MDIForm que passado como uma varivel a um procedimento.
Dica Quando voc cria uma nova ocorrncia de um formulrio, atribua um valor exclusivo propriedade Tag.

Propriedade Text
Controle ComboBox (propriedade Style configurada como 0 [Dropdown Combo] ou como 1 [Simple Combo]) e o controle

TextBox retorna ou configura o texto contido na rea de edio.


Controle ComboBox (propriedade Style configurada como 2 [Dropdown List]) e controle ListBox retornam o item

selecionado na caixa de listagem; o valor retornado sempre equivalente ao valor retornado pela expresso List(ListIndex).
Somente leitura durante o tempo de criao; somente leitura durante o tempo de execuo.
Sintaxe
object.Text [= string]
A propriedade Text tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma expresso de seqncia de caracteres especificando
texto.
Comentrios
Somente durante o tempo de criao, os padres para a propriedade Text so:
Controles ComboBox e TextBox a propriedade Name do controle.
Controle ListBox uma seqncia de caracteres de comprimento zero ("").
Para uma ComboBox com a propriedade Style configurada como 0 (Dropdown Combo) ou como 1 (Simple Combo), ou
para uma TextBox, esta propriedade til para ler a seqncia de caracteres efetiva contida na rea de edio do controle.
Para um controle ComboBox ou ListBox com a propriedade Style configurada como 2 (Dropdown List), voc pode usar a
propriedade Text para determinar o item atualmente selecionado.
A configurao Text para um controle TextBox est limitada a 2048 caracteres, a menos que a propriedade MultiLine seja
definida como True, caso em que o limite cerca de 32.

Funes Internas

379

Propriedade Value
Controles ChecBox e OptionButton retorna ou configura o estado do controle.
Controle CommandButton retorna ou configura um valor indicando se o boto foi escolhido; no disponvel durante o

tempo de criao.
Objeto Field retorna ou configura o contedo de um campo; no disponvel durante o tempo de criao.
Controles HScrollBar e VScrollBar (barras de rolagem horizontal e vertical) retornam ou configuram a posio atual da

barra de rolagem cujo valor de retorno est sempre entre os valores da propriedade Max e Min, inclusive.
Sintaxe
object.Value [= value]
A propriedade Value tem estas partes:
Parte
Descrio
object
value

Uma expresso de objeto que avaliada como um objeto na


lista Applies To.
Valor especificando o estado, contedo ou posio de um
controle, conforme descrito em Configuraes.

Configuraes
As configuraes de value so:
Controle ChecBox 0 No selecionada (padro), 1 Selecionada e 2 Acinzentada (esmaecida).
Controle CommandButton True indica que o boto est selecionado; False (padro) indica que o boto no est
selecionado. Configurar a propriedade Value como True em cdigo aciona o evento Clic do boto.
Objeto Field restrito apenas pelos tipos de dado do campo.
Controles HScrollBar e VScrollBar configura valores entre 32.768 e 32.767 para posicionar a caixa de rolagem.
Controle OptionButton True indica que o boto est selecionado; False (padro) indica que o boto no est
selecionado.
Comentrios
A propriedade padro de um objeto presumida e no precisa ser especificada em cdigo. Por exemplo, Field a
propriedade padro de qualquer Recordset, e Value a propriedade padro de um objeto Field. Isto torna as duas
instrues abaixo equivalentes:
Dn.Fields("PubID").Value = X
Dn.("PubID") = X
A primeira instruo especifica as propriedades padro; a segunda instruo as presume.

Funes Internas

380

Propriedade Visible
Retorna ou configura um valor indicando se um objeto est visvel ou oculto.
Sintaxe
object.Visible [= boolean]
A propriedade Visible tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avaliada como um objeto na
lista Applies To.
boolean
Uma expresso Boolean especificando se o objeto visvel
ou oculto.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
(Padro) O objeto visvel.
False
O objeto est oculto.
Comentrios
Para ocultar um objeto na inicializao, configure a propriedade Visible como False durante o tempo de criao. Configurar
esta propriedade em cdigo permite ocultar e, posteriormente, reexibir um controle durante o tempo de execuo em
resposta a um determinado evento.
Observao: Usar o mtodo Show ou Hide em um formulrio o mesmo que configurar a propriedade Visible do
formulrio em cdigo como True ou False, respectivamente.

Exemplo das propriedades BacColor, ForeColor


Este exemplo reconfigura de maneira aleatria as cores de segundo e primeiro planos, duas vezes por segundo para um
formulrio e controle PictureBox. Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio
que contenha um controle PictureBox e um controle Timer e, em seguida, pressione F5.
Private Sub Form_Load ()
Timer1.Interval = 500
End Sub
Private Sub Timer1_Timer ()
BacColor = QBColor(Rnd * 15)
ForeColor = QBColor(Rnd * 10)
Picture1.BacColor = QBColor(Rnd * 15)
Picture1.ForeColor = QBColor(Rnd * 10)
End Sub

Exemplo da propriedade BorderWidth


Este exemplo usa dois controles ComboBox para selecionar diferentes larguras e estilos para as bordas de um controle
Shape. Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha um controle
Shape e um controle ComboBox. Para o ComboBox, configure Style=2 e Index=0 (para criar uma matriz de controle e,
em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Load ()
Combo1(0).Width = 1440 * 1.5
Load Combo1(1)
Combo1(1).Top = Combo1(0).Top + Combo1(0).Height * 1.5
Combo1(1).Visible = True
For I = 0 To 6
Combo1(0).AddItem "BorderStyle = " & I
Next I
For I = 1 To 10
Combo1(1).AddItem "BorderWidth = " & I
Next I
Combo1(0).ListIndex = 1
Combo1(1).ListIndex = 0
End Sub
Private Sub Combo1_Clic (Index As Integer)
If Index = 0 Then
Shape1.BorderStyle = Combo1(0).ListIndex
Else
Shape1.BorderWidth = Combo1(1).ListIndex + 1
End If
End Sub

Exemplo das propriedades Col, Row


Este exemplo coloca "Here" na clula atual e, em seguida, altera a clula ativa para a terceira clula na terceira linha e
coloca "There" na clula. Para experimentar este exemplo, use a caixa de dilogo Components para adicionar um controle
Funes Internas

381

MS Flex Grid caixa de ferramentas (no menu Project, escolha Components e, em seguida, selecione Microsoft Flex
Grid Control) e, em seguida, desenhe uma grade em um novo formulrio. Para executar o programa, pressione F5 e, em
seguida, clique na grade.
Private Sub Form_Load ()
MSFlexGrid1.Rows = 8
' Configurar linhas e colunas.
MSFlexGrid1.Cols = 5
End Sub
Private Sub MSFlexGrid1_Clic ()
' Colocar texto na clula atual.
MSFlexGrid1.Text = "Here"
' Colocar texto na terceira linha, terceira coluna.
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = 2
MSFlexGrid1.Text = "There"
End Sub
O prximo exemplo exibe a localizao da clula ativa e o intervalo da seleo medida que um usurio seleciona uma
clula ou intervalo de clulas. Observe que ao selecionar um intervalo, a clula ativa no se altera. Selecione um intervalo
e, em seguida, clique no formulrio para mover a clula ativa ao redor do permetro da seleo. Observe que o intervalo
selecionado no se altera.
Para experimentar este exemplo, crie um novo projeto, adicione um controle MS Flex Grid usando a caixa de dilogo
Components (no menu Project, escolha Components e, em seguida, selecione Microsoft Flex Grid Control) e, em
seguida, desenhe um MS Flex Grid e dois rtulos. Copie o cdigo para a seo Declarations e, em seguida, pressione F5
para executar o programa.
Private Sub Form_Load ()
MSFlexGrid1.Cols = 6 ' Configurar colunas e linhas.
MSFlexGrid1.Rows = 7
End Sub
Private Sub MSFlexGrid1_RowColChange ()
Msg = "Active cell: " & Chr(64 + MSFlexGrid1.Col)
Mst = Msg & MSFlexGrid1.Row
Label1.Caption = Msg
End Sub
Private Sub MSFlexGrid1_SelChange ()
Msg = "Selection: " & Chr(64 + MSFlexGrid1.SelStartCol)
Msg = Msg & MSFlexGrid1.SelStartRow
Msg = Msg & ":" & Chr(64 + MSFlexGrid1.SelEndCol)
Msg = Msg & MSFlexGrid1.SelEndRow
Label2.Caption = Msg
End Sub
Private Sub Form_Clic ()
' Este procedimento move a clula ativa pelo
' permetro do intervalo selecionado de
' clulas a cada clique no formulrio.
Dim GR, GC As Integer
If MSFlexGrid1.Row = MSFlexGrid1.SelStartRow Then
If MSFlexGrid1.Col = MSFlexGrid1.SelEndCol Then
GR = 1: GC = 0
Else
GR = 0: GC = 1
End If
ElseIf MSFlexGrid1.Row = MSFlexGrid1.SelEndRow Then
If MSFlexGrid1.Col = MSFlexGrid1.SelStartCol Then
GR = -1: GC = 0
Else
GR = 0: GC = -1
End If
Else
If MSFlexGrid1.Col = MSFlexGrid1.SelStartCol Then
GR = -1: GC = 0
Else
GR = 1: GC = 0
End If
End If
MSFlexGrid1.Row = MSFlexGrid1.Row + GR
MSFlexGrid1.Col = MSFlexGrid1.Col + GC
End Sub

Funes Internas

382

Exemplo da propriedade DrawWidth


Este exemplo desenha uma linha que se torna gradualmente mais espessa por um formulrio. Para experimentar este
exemplo, cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim I
' Declara varivel.
DrawWidth = 1 ' Configurar a largura inicial da caneta.
PSet (0, ScaleHeight / 2) ' Configurar o ponto inicial.
ForeColor = QBColor(5) ' Configurar a cor da caneta.
For I = 1 To 100 Step 10 ' Configurar o loop.
DrawWidth = I
' Reconfigura a largura da caneta.
Line - Step(ScaleWidth / 10, 0) ' Desenhar uma linha.
Next I
End Sub

Exemplo das propriedades FontBold, FontItalic, FontStriethru, FontUnderline


Este exemplo coloca texto em um formulrio em uma de duas combinaes de estilos a cada clique de mouse. Para
experimentar este exemplo cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no
formulrio.
Private Sub Form_Clic ()
FontStriethru = Not FontStriethru ' Ligar e desliga o tachado.
FontItalic = Not FontItalic ' Ligar e desligar o estilo de fonte.
Print "Now is the time!"
' Imprimir algum texto.
End Sub

Funes Internas

383

Exemplo da propriedade FontName


Este exemplo imprime o nome de cada fonte usando uma determinada fonte. Para experimentar este exemplo cole o
cdigo na seo Declarations de um formulrio. Pressione F5 para executar o programa e, em seguida, clique no formulrio.
Cada vez que voc clica no formulrio, o nome da fonte impresso.
Private Sub Form_Clic ()
Static I ' Declarar variveis.
Dim OldFont
OldFont = FontName ' Preservar a fonte original.
FontName = Screen.Fonts(I) ' Alterar para uma nova fonte.
Print Screen.Fonts(I) ' Imprimir o nome da fonte.
I = I + 1 ' Incrementar o contador.
If I = FontCount Then I = 0 ' Reiniciar.
FontName = OldFont ' Restaurar a fonte original.
End Sub

Exemplo da propriedade FontSize


Este exemplo imprime texto em seu formulrio em dois tamanhos diferentes de ponto a cada clique de mouse. Para
experimentar este exemplo cole o cdigo na seo Declarations de um formulrio. Pressione F5 para executar o programa
e, em seguida, clique no formulrio.
Private Sub Form_Clic ()
FontSize = 24
' Configurar FontSize.
Print "This is the 24-point type."' Imprimir o tipo grande.
FontSize = 8 ' Configurar FontSize.
Print "This is the 8-point type." ' Imprimir tipo pequeno.
End Sub

Exemplo das propriedades Height, Width


Este exemplo configura o tamanho de um formulrio como 75 por cento do tamanho da tela e centraliza o formulrio
quando ele carregado. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio. Em
seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Width = Screen.Width * .75
' Configurar a largura do formulrio.
Height = Screen.Height * .75 ' Configurar a altura do formulrio.
Left = (Screen.Width - Width) / 2
' Centralizar horizontalmente o formulrio.
Top = (Screen.Height - Height) / 2 ' Centralizar verticalmente o formulrio.
End Sub

Exemplo da propriedade Icon


Este exemplo cria um cone em branco para um formulrio e desenha pontos coloridos sobre o cone, enquanto o
formulrio est minimizado. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio e, em
seguida, pressione F5 e minimize o formulrio.
Observao: Este exemplo funciona somente com o Windows NT 3.5x.
Private Sub Form_Resize ()
Dim X, Y' Declarar variveis.
If Form1.WindowState = vbMinimized Then
Form1.Icon = LoadPicture()
' Carregar um cone em branco.
Do While Form1.WindowState = vbMinimized
' Enquanto o formulrio est minimizado,
Form1.DrawWidth = 10
' configurar o tamanho do ponto.
' Escolher a cor aleatria para o ponto.
Form1.ForeColor = QBColor(Int(Rnd * 15))
' Configurar a localizao aleatria no cone.
X = Form1.Width * Rnd
Y = Form1.Height * Rnd
PSet (X, Y) ' Desenhar o ponto no cone.
DoEvents
' Permitir outros eventos.
Loop
End If
End Sub
Este o mesmo exemplo, exceto que ele usa o mtodo LoadPicture para configurar a propriedade Icon. Este exemplo
funciona com todas as verses do Windows:
Private Sub Form_Resize ()
Dim X, Y' Declarar variveis.
If Form1.WindowState = vbMinimized Then
Form1.Icon = LoadPicture("c:\myicon.ico")
' Um cone chamado "myicon.ico" deve existir no
' diretrio c:\ para que este exemplo funcione
' corretamente.
End If
Funes Internas

384

End Sub

Exemplo da propriedade Interval


Este exemplo permite ajustar a velocidade em que um formulrio troca as cores. Para experimentar este exemplo cole o
cdigo na seo Declarations de um formulrio que contenha um controle Timer, um controle HScrollBar (barra de
rolagem horizontal) e um controle PictureBox e, em seguida, pressione F5 e clique na barra de rolagem.
Private Sub Form_Load ()
Timer1.Interval = 900 ' Configurar o intervalo.
HScroll1.Min = 100
' Configurar o mnimo.
HScroll1.Max = 900 ' Configurar o mximo.
End Sub
Private Sub HScroll1_Change ()
' Configurar o intervalo de acordo com o valor da barra de rolagem.
Timer1.Interval = 1000 - HScroll1.Value
End Sub
Private Sub Timer1_Timer ()
' Alternar BacColor entre vermelho e azul.
If Picture1.BacColor = RGB(255, 0, 0) Then
Picture1.BacColor = RGB(0, 0, 255)
Else
Picture1.BacColor = RGB(255, 0, 0)
End If
End Sub

Exemplo das propriedades Left, Top


Este exemplo configura o tamanho de um formulrio como 75 por cento do tamanho da tela e centraliza o formulrio
quando ele carregado. Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio e, em
seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Width = Screen.Width * .75
' Configurar a largura do formulrio.
Height = Screen.Height * .75 ' Configurar a altura do formulrio.
Left = (Screen.Width - Width) / 2
' Centralizar o formulrio horizontalmente.
Top = (Screen.Height - Height) / 2 ' Centralizar o formulrio verticalmente.
End Sub

Funes Internas

385

Exemplo da propriedade List


Este exemplo carrega um controle ComboBox com uma lista de nomes de sanduches e exibe o primeiro item da lista.
Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um controle
ComboBox e, em seguida pressione F5.
Private Sub Form_Load ()
Combo1.AddItem "Denver Sandwich" ' Adicionar cada item lista.
Combo1.AddItem "Reuben Sandwich"
Combo1.AddItem "Turey Sandwich"
Combo1.Text = Combo1.List(0) ' Exibir o primeiro item.
End Sub

Exemplo da propriedade ListCount


Este exemplo carrega uma lista de fontes de impressora em um controle ComboBox, exibe o primeiro item da lista, e
imprime o nmero total de fontes. Cada clique no boto de comando altera todos os itens da lista para maisculas ou
minsculas. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um
controle ComboBox (Style = 2) e um controle CommandButton e, em seguida, pressione F5 e clique no
CommandButton.
Private Sub Form_Load ()
Dim I
' Declarar varivel.
AutoRedraw = True ' Configurar AutoRedraw.
For I = 0 To Printer.FontCount - 1 ' Colocar nomes de fonte em lista.
Combo1.AddItem Printer.Fonts(I)
Next I
Combo1.ListIndex = 0 ' Configurar o texto para o primeiro item.
' Imprimir informaes de ListCount no formulrio.
Print "Number of printer fonts: "; Combo1.ListCount
End Sub
Private Sub Command1_Clic ()
Static UpperCase
Dim I
' Declarar a varivel.
For I = 0 To Combo1.ListCount - 1 ' Executar loop pela lista.
If UpperCase Then
Combo1.List(I) = UCase(Combo1.List(I))
Else
Combo1.List(I) = LCase(Combo1.List(I))
End If
Next I
UpperCase = Not UpperCase ' Alterar maisculas e minsculas.
End Sub

Exemplo da propriedade ListIndex


Este exemplo exibe os nomes de trs jogadores em um controle ListBox e os salrios correspondentes ao jogador
selecionado em um controle Label. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio
que contenha um controle ComboBox e um controle Label e, em seguida, pressione F5 e escolha um nome na
ComboBox.
Dim Player(0 To 2) ' Dimensionar duas matrizes.
Dim Salary(0 To 2)
Private Sub Form_Load ()
Dim I
' Declara varivel.
AutoSize = True
Player(0) = "Miggey McMoo" ' Inserir dados em matrizes.
Player(1) = "Alf Hinshaw"
Player(2) = "Woofer Dean"
Salary(0) = "$234,500"
Salary(1) = "$158,900"
Salary(2) = "$1,030,500"
For I = 0 To 2 ' Adicionar nomes a lista.
Combo1.AddItem Player(I)
Next I
Combo1.ListIndex = 0 ' Exibir o primeiro item da lista.
End Sub
Private Sub Combo1_Clic ()
' Exibir o salrio correspondente ao nome.
Label1.Caption = Salary(Combo1.ListIndex)
End Sub

Exemplo da propriedade Picture


Este exemplo carrega cones da biblioteca de cones do Visual Basic em dois entre trs controles PictureBox. Quando
voc clica no formulrio, a terceira PictureBox usada para alternar os cones. Voc pode usar dois cones quaisquer.

Funes Internas

386

Cole o cdigo na seo Declarations de um formulrio que contenha trs pequenos controles PictureBox (para Picture3,
configure Visible = False). Pressione F5 para executar o programa e, em seguida, clique no formulrio.
Private Sub Form_Load ()
' Carregue os cones.
Picture1.Picture = LoadPicture("ICONS\COMPUTER\TRASH02A.ICO")
Picture2.Picture = LoadPicture("ICONS\COMPUTER\TRASH02B.ICO")
End Sub
Private Sub Form_Clic ()
' Alterna os cones.
Picture3.Picture = Picture1.Picture
Picture1.Picture = Picture2.Picture
Picture2.Picture = Picture3.Picture
' Limpar a terceira figura (desnecessria se no for visvel).
Picture3.Picture = LoadPicture()
End Sub
Este exemplo cola um bitmap da rea de transferncia em um controle PictureBox. Para localizar o valor de constantes
de formato da rea de transferncia (comeando com vbCF), consulte a biblioteca de objetos Visual Basic (VB) no Object
Browser. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um controle
PictureBox. Pressione F5 e, em seguida, em outro aplicativo, copie um cone para a rea de transferncia, alterne para o
Visual Basic e clique no formulrio.
Private Sub Form_Clic ()
Picture1.Picture = Clipboard.GetData(vbCFDIB)
End Sub

Exemplo da propriedade TabIndex


Este exemplo inverte a ordem de tabulao de um grupo de botes alterando a propriedade TabIndex de uma matriz de
botes de comando. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha
quatro controles CommandButton. Configure a propriedade Name como CommandX para cada boto para criar uma
matriz de controle e, em seguida, pressione F5 e clique no formulrio para inverter a ordem de tabulao dos botes.
Private Sub Form_Clic ()
Dim I, X ' Declara variveis.
' Inverter a ordem de tabulao configurando o valor inicial de X.
If CommandX(0).TabIndex = 0 Then X = 4 Else X = 1
For I = 0 To 3
CommandX(I).Caption = X ' Configurar a legenda.
CommandX(I).TabIndex = X - 1
' Configurar a ordem de tabulao.
If CommandX(0).TabIndex = 3 Then
X = X - 1' Decrementar X.
Else
X=X+1
' Incrementar X.
End If
Next I
End Sub

Exemplo da propriedade Tag


Este exemplo exibe um cone nico para cada controle que est sendo arrastado. Para experimentar este exemplo cole o
cdigo na seo Declarations de um formulrio contendo trs controles PictureBox. Configure a propriedade DragMode
como 1 para Picture1 e Picture2 e, em seguida, pressione F5. Use o mouse para arrastar os controles Picture1 ou Picture2
sobre Picture3.
Private Sub Form_Load ()
Picture1.Tag = "ICONS\ARROWS\POINT03.ICO"
Picture2.Tag = "ICONS\ARROWS\POINT04.ICO"
End Sub
Private Sub Picture3_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
If State = vbEnter Then
' Selecionar com base na propriedade Name de cada PictureBox.
Select Case Source.Name
Case "Picture1"
' Carregar o cone de Picture1.
Source.DragIcon = LoadPicture(Picture1.Tag)
Case "Picture2"
' Carregar o cone de Picture2.
Source.DragIcon = LoadPicture(Picture2.Tag)
End Select
ElseIf State = vbLeave Then
' Quando a origem no est sobre Picture3, descarregar o cone.
Source.DragIcon = LoadPicture ()
End If

Funes Internas

387

End Sub

Exemplo da propriedade Text


Este exemplo ilustra a propriedade Text. Para experimentar este exemplo cole o cdigo na seo Declarations de um
formulrio que contenha trs controle TextBox e um controle CommandButton e, em seguida, pressione F5 e digite texto
em Text1.
Private Sub Text1_Change ()
Text2.Text = LCase(Text1.Text) ' Exibir texto em minsculas.
Text3.Text = UCase(Text1.Text) ' Exibir texto em maisculas.
End Sub
Private Sub Command1_Clic () ' Excluir texto.
Text1.Text = ""
End Sub

Exemplo da propriedade Value


Este exemplo exibe um valor numrico do controle HScrollBar (barra de rolagem horizontal) em um controle TextBox. Para
experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um controle TextBox e um
controle HScrollBar. Pressione F5 para executar o programa e, em seguida, clique na barra de rolagem.
Private Sub Form_Load ()
HScroll1.Min = 0 ' Inicializar a barra de rolagem.
HScroll1.Max = 1000
HScroll1.LargeChange = 100
HScroll1.SmallChange = 1
End Sub
Private Sub HScroll1_Change ()
Text1.Text = Format (HScroll1.Value)
End Sub

Exemplo da propriedade Visible


Este exemplo cria animao usando dois controle PictureBox. Para experimentar este exemplo cole o cdigo na seo
Declarations de um formulrio que contenha dois controles PictureBox do tamanho de cones. Configure a propriedade
Name como FileCab para ambos os controles PictureBox para criar uma matriz e, em seguida, pressione F5 e clique na
figura para visualizar a animao.
Private Sub Form_Load ()
Dim I
' Declara varivel.
FileCab(0).BorderStyle = 0 ' Configurar BorderStyle.
FileCab(1).BorderStyle = 0
' Carregar os cones nas caixas de figura.
FileCab(1).Picture = LoadPicture("ICONS\OFFICE\FILES03B.ICO")
FileCab(0).Picture = LoadPicture("ICONS\OFFICE\FILES03A.ICO")
For I = 0 To 1
FileCab(I).Move 400, 400 ' Posicionar elementos grficos no mesmo ponto.
Next I
FileCab(1).Visible = False ' Configurar como invisvel.
FileCab(0).Visible = True ' Configurar como visvel.
End Sub
Private Sub FileCab_Clic (Index As Integer)
Dim I
' Declara varivel.
For I = 0 To 1
' Alternar para visibilidade para ambos os elementos grficos.
FileCab(I).Visible = Not FileCab(I).Visible
Next I
End Sub

Propriedade Align
Retorna ou configura um valor que determina se um objeto exibido de qualquer tamanho em qualquer lugar em um
formulrio, ou se ele exibido na parte superior, inferior, esquerda ou direita do formulrio, e automaticamente
dimensionado para ajustar-se largura do formulrio.
Sintaxe
object.Align [= number]
A sintaxe da propriedade Align tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um nmero inteiro que especifica como um objeto exibido,
conforme descrito em Configuraes.
Funes Internas

388

Configuraes
As configuraes de number so:
Constante
Configurao
vbAlignNone
0

vbAlignTop

vbAlignBottom

vbAlignLeft

vbAlignRight

Descrio
(Padro em um formulrio no-MDI)
Nenhum o tamanho e a localizao pode
ser configurado durante o tempo de criao
ou em cdigo. Esta configurao ignorada
se o objeto est em um formulrio MDI.
(Padro em um formulrio MDI) Top o
objeto est em primeiro plano no formulrio,
e sua largura igual configurao da
propriedade ScaleWidth do formulrio.
Inferior o objeto est na parte inferior do
formulrio e sua largura igual
configurao da propriedade ScaleWidth do
formulrio.
Esquerda o objeto est esquerda do
formulrio e sua largura igual
configurao da propriedade ScaleWidth do
formulrio.
Direita o objeto est direita do
formulrio e sua largura igual
configurao da propriedade ScaleWidth do
formulrio.

Comentrios
Voc pode usar a propriedade Align para criar rapidamente uma barra de ferramentas ou barra de status na parte superior
ou na parte inferior de um formulrio. medida que um usurio altera o tamanho do formulrio, um objeto com Align
configurado como 1 ou 2 automaticamente redimensionado para ajustar-se largura do formulrio.
Os controles PictureBox e Data so os nicos controles padro que podem ser colocados em um formulrio MDI. A rea
interna de um formulrio MDI definida pelo espao no coberto por controles. Quando um formulrio MDI filho
maximizado dentro de um formulrio MDI pai, ele no cobrir nenhum controle.
Use as configuraes de number 3 e 4 para as alinhar barras de ferramentas esquerda e direita de um formulrio ou
formulrio MDI. Se existirem duas barras de ferramentas em um canto de um formulrio MDI, aquele alinhado na parte
superior ou inferior estende-se at o canto, tendo preferncia sobre aquele que alinhado esquerda ou direita. Objetos
alinhados esquerda e direita ocupam a rea interna em um formulrio MDI, exatamente como objetos alinhados pela
parte superior e inferior.

Propriedade Alignment
Retorna ou configura um valor que determina o alinhamento de um controle ChecBox ou OptionButton, texto em um
controle, ou valores em uma coluna de um controle DBGrid. Somente leitura durante o tempo de execuo para os
controles ChecBox, OptionButton e TextBox.
Sintaxe
object.Alignment [= number]
A sintaxe da propriedade Alignment tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Number
Um inteiro que especifica o tipo de alinhamento, conforme
descrito em Configuraes.
a

Configuraes
Para os controles ChecBox e OptionButton, as configuraes de number so:
Constante
Configurao
Descrio
vbLeftJustify
0
(Padro) O texto alinhado esquerda;
o controle alinhado direita.
vbRightJustify
1
O texto alinhado direita; o controle
alinhado esquerda.
Para controles Label e TextBox, as configuraes de number so:
Constante
Configurao
Descrio
vbLeftJustify
0
(Padro) O texto alinhado esquerda.
vbRightJustify
1
O texto alinhado direita.
vbCenter
2
O texto centralizado.
Para a coluna de um DBGrid, as configuraes de number so:
Constante
Configurao
Descrio
dbgLeft
0
O texto alinhado esquerda.
dbgRight
1
O texto alinhado direita.

Funes Internas

389

dbgCenter
dbgGeneral

2
3

O texto centralizado.
(Padro) General o texto alinhado
esquerda; os nmeros so alinhados
direita.

Comentrios
Voc pode exibir texto direita ou esquerda dos controles OptionButton e ChecBox. Como padro, o texto alinhado
esquerda.
A propriedade MultiLine em um controle Textbox deve ser configurada como True para que a propriedade Alignment
funcione corretamente. Se a configurao da propriedade MultiLine de um controle TextBox for False, a propriedade
Alignment ignorada.

Propriedades Archive, Hidden, Normal e System


Retorna ou configura um valor que determina se um controle FileListBox exibe arquivos com atributos Archive, Hidden,
Normal ou System.
Sintaxe
object.Archive [= boolean]
object.Hidden [= boolean]
object.Normal [= boolean]
object.System [= boolean]
A sintaxes das propriedades Archive, Hidden, Normal e System tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica o tipo de arquivos
exibidos, conforme descrito em Configuraes.
c

Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
(Padro para Archive e Normal) Exibe arquivos com o
atributo de propriedade no controle FileListBox.
False
(Padro para Hidden e System) Exibe arquivos sem o
atributo de propriedade no controle FileListBox.
Comentrios
Use estas propriedades para especificar os tipos de arquivos a serem exibidos em um controle FileListBox, com base nos
atributos padro de arquivos usados no ambiente operacional. A configurao destas propriedades com cdigo durante o
tempo de execuo reconfigura o controle FileListBox para exibir apenas aqueles arquivos com os atributos especificados.
Por exemplo, em uma operao de localizao e substituio, voc poderia exibir somente arquivos de sistema
configurando a propriedade System como True e as outras propriedades como False. Ou, como parte de um procedimento
de bacup de arquivo, voc poderia configurar a propriedade Archive como True, para listar apenas aqueles arquivos
modificados desde o bacup anterior.

Propriedade AutoRedraw
Retorna ou configura o resultado de um mtodo grfico para um grfico permanente.
Sintaxe
object.AutoRedraw [= boolean]
A sintaxe da propriedade AutoRedraw tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica como o objeto
regenerado, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
Ativa a regenerao automtica de um objeto Form ou
controle PictureBox. Os elementos grficos e texto so
gravados na tela e em uma imagem armazenada na
memria. O objeto no recebe eventos Paint; ele
regenerado quando necessrio, usando a imagem
armazenada na memria.
False
(Padro) Desativa a regenerao automtica de um objeto e
grava elementos grficos ou texto somente na tela. O Visual
Basic aciona o evento Paint do objeto quando necessrio
para regenerar o objeto.

Funes Internas

390

Comentrios
Esta propriedade fundamental no trabalho com os seguintes mtodos grficos: Circle, Cls, Line, Point, Print e PSet. A
configurao de AutoRedraw como True automaticamente redesenha o resultado destes mtodos em um objeto Form ou
controle PictureBox quando, por exemplo, o objeto redimensionado ou reexibido aps ter sido ocultado por outro objeto.
Voc pode configurar AutoRedraw no cdigo durante o tempo de execuo para alternar entre desenhar elementos
grficos permanentes (como, por exemplo, o segundo plano ou grade) e elementos grficos temporrios. Se voc configura
AutoRedraw como False, resultados anteriores tornam-se parte da tela de segundo plano. Quando AutoRedraw
configurada como False, os elementos grficos de segundo plano no so excludos se voc limpa a rea de desenho com
o mtodo Cls. A configurao de AutoRedraw novamente como True e, em seguida, o uso de Cls limpa os elementos
grficos de segundo plano.
Observao: Se voc configura a propriedade BacColor, todos os elementos grficos e texto so apagados, incluindo o
elemento grfico permanente. Em geral, todos os elementos grficos devem ser exibidos usando o evento Paint, a menos
que AutoRedraw seja configurada como True.
Para recuperar o grfico permanente criado quando AutoRedraw for configurada como True, use a propriedade Image.
Para passar o elemento grfico permanente a uma API do Windows quando AutoRedraw for configurada como True, use a
propriedade hDC do objeto.
Se voc configura a propriedade AutoRedraw de um formulrio como False e, em seguida, minimiza o formulrio, as
propriedades ScaleHeight e ScaleWidth so configuradas como o tamanho do cone. Quando AutoRedraw for
configurada como True, ScaleHeight e ScaleWidth permanecem no tamanho da janela restaurada.
Se AutoRedraw configurada como False, o mtodo Print imprime sobre os controles grficos como, por exemplo, os
controles Image e Shape.

Propriedade AutoShowChildren
Retorna ou configura um valor que determina se os formulrios MDI filho so exibidos ao serem carregados.
Sintaxe
object.AutoShowChildren [= boolean]
A sintaxe da propriedade AutoShowChildren tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica se os formulrio
MDI filho so automaticamente visveis, conforme descrito
em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
(Padro) Os formulrios MDI filho so automaticamente
exibidos ao serem carregados.
False
Formulrios MDI filho no so automaticamente exibidos ao
serem carregados.
Comentrios
Voc pode usar a propriedade AutoShowChildren para carregar formulrios MDI filho e deix-los ocultos at que sejam
exibidos usando o mtodo Show.

Propriedade AutoSize
Retorna ou configura um valor que determina se um controle automaticamente redimensionado para exibir todo o seu
contedo.
Sintaxe
object.AutoSize [= boolean]
A sintaxe da propriedade AutoSize tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
A expresso Booleana que especifica se o controle
redimensionado, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
Redimensiona automaticamente o controle para exibir todo o
seu contedo.
False
(Padro) Mantm o tamanho do controle constante. O
contedo recortado quando excede a rea do controle.

Funes Internas

391

Propriedade ClipControls
Retorna ou configura um valor que determina se mtodos grficos em eventos Paint regeneram o objeto inteiro ou somente
as reas recm-exibidas. Tambm determina se o ambiente operacional do Microsoft Windows cria uma rea de recorte
que exclui controles no-grficos contidos no objeto. Somente leitura durante o tempo de execuo.
Sintaxe
object.ClipControls
A sintaxe da propriedade ClipControls em estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica como os objetos
so regenerados, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean:
Configurao
Descrio
True
(Padro) Mtodos grficos em eventos Paint regeneram o
objeto inteiro. Uma rea de recorte criada ao redor de
controles no-grficos no formulrio, antes de um evento
Paint.
False
Mtodos grficos em eventos Paint regeneram somente as
reas recm-exibidas. Uma rea de recorte no criada ao
redor de controles no-grficos antes de um evento Paint.
Formulrios complexos, geralmente so carregados mais
rapidamente quando ClipControls configurada como
False.
Comentrios
Recorte o processo de determinao de quais partes de um formulrio ou recipiente, por exemplo, os controle Frame ou
PictureBox, so pintados quando o formulrio exibido. Um contorno do formulrio e controles criado na memria. O
ambiente operacional do Windows usa este contorno para pintar algumas partes como, por exemplo, o segundo plano, sem
afetar outras partes, por exemplo, o contedo de um controle TextBox. Como a regio de recorte criada na memria, a
configurao desta propriedade como False pode reduzir o tempo necessrio para pintar ou repintar um formulrio.
A regio de recorte inclui a maioria dos controles, mas no recorta ao redor dos controles Image, Label, Line ou Shape.
Evite aninhar os controles intrnsecos com ClipControls configurada como True dentro de um controle com ClipControls
configurada como False (por exemplo, um boto de comando dentro de uma caixa de figura). Este tipo de aninhamento de
controle faz com que os controles se regenerem de maneira incorreta. Para corrigir este problema, configure a propriedade
ClipControls tanto do controle de recipiente quanto dos controles aninhados como True.

Propriedade ColorMode
Retorna ou configura um valor que determina se uma impressora em cores imprime o resultado em cores ou
monocromaticamente. No est disponvel durante o tempo de criao.
Sintaxe
object.ColorMode [= value]
A sintaxe da propriedade ColorMode tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma constante ou nmero inteiro que especifica um modo de
impresso, conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Configurao
Valor
vbPRCMMonochrome
1
vbPRCMColor

Descrio
Imprime
resultado
monocromtico
(geralmente tons de preto e branco).
Imprime resultado a cores.

Comentrios
O valor padro depende do driver de impressora e das configuraes atuais da impressora. Impressoras monocromticas
ignoram esta propriedade.
Observao: O efeito das propriedades do objeto Printer dependem do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedade podem no ter efeito algum, ou diversas configuraes de propriedades diferentes
podem ter o mesmo efeito. Se voc configura a propriedade ColorMode para um impressora que no suporta cor, a
configurao ignorada. Se voc tenta referir-se propriedade ColorMode, entretanto, voc obter uma mensagem de
erro. As configuraes fora do intervalo aceito tambm podem produzir um erro. Para maiores informaes, consulte a
documentao do fabricante do driver especfico.

Funes Internas

392

Propriedade Columns (ListBox)


Retorna ou configura um valor que determina se um controle ListBox rola vertical ou horizontalmente e como os itens nas
colunas so exibidos. Se ele rola horizontalmente, a propriedade Columns determina quantas colunas so exibidas.
Sintaxe
object.Columns [= number]
A sintaxe da propriedade Columns tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um nmero inteiro que especifica como um controle rola e
como os itens so dispostos em colunas, conforme descrito
em Configuraes.
Configuraes
As configuraes de number so:
Configurao
Descrio
0
(Padro) Os itens so dispostos em uma nica coluna e o
ListBox rola verticalmente.
1 to n
Os itens so dispostos em colunas do tipo jornalstico,
preenchendo a primeira coluna, em seguida, a segunda
coluna, e assim por diante. O ListBox rola horizontalmente e
exibe o nmero especificado de colunas.
Comentrios
Para os controles ListBox de rolagem horizontal, a largura da coluna igual largura do ListBox dividido pelo nmero de
colunas.
Esta propriedade no pode ser configurada como 0 ou alterada de 0 durante o tempo de execuo isto , voc no pode
alterar um ListBox de colunas mltiplas para um ListBox de coluna nica, ou um ListBox de coluna nica para um
ListBox de mltiplas colunas durante o tempo de execuo. Entretanto, voc pode alterar o nmero de colunas em um
ListBox de colunas mltiplas durante o tempo de execuo.

Propriedade Copies
Retorna ou configura um valor que determina o nmero de cpias a serem impressas. Para o objeto Printer, no est
disponvel durante o tempo de criao.
Sintaxe
object.Copies [= number]
A sintaxe da propriedade Copies tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To
number
Uma expresso numrica que especifica o nmero de cpias
a serem impressas. Este valor deve ser um nmero inteiro.
Comentrios
Para a caixa de dilogo Print, esta propriedade retorna o nmero de cpias inserido pelo usurio na caixa Copies. Se o
sinalizador cdlPDUseDevModeCopies configurado para o controle CommonDialog, esta propriedade sempre retorna 1.
Para o objeto Printer, cpias mltiplas podem ou no ser agrupadas, dependendo do driver da impressora. Cpias
mltiplas do documento inteiro, ou cpias mltiplas de cada pgina podem ser impressas. Para impressoras que no
suportam agrupamento, configure Copies = 1, e, em seguida, use um loop no cdigo para imprimir cpias mltiplas do
documento inteiro.
Observao: O efeito das propriedades do objeto Printer depende do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedade no tm qualquer efeito, ou diversas configuraes diferentes de propriedade
podem ter o mesmo efeito. As configuraes fora do intervalo aceito podem produzir um erro. Para maiores informaes,
consulte a documentao do fabricante para o driver especfico.

Funes Internas

393

Propriedades CurrentX, CurrentY


Retorna ou configura as coordenadas horizontal (CurrentX) ou vertical (CurrentY) do prximo mtodo de desenho ou
impresso. No est disponvel durante o tempo de criao.
Sintaxe
object.CurrentX
[=
x]
object.CurrentY [= y]
A sintaxe das propriedades CurrentX e CurrentY tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To
x
Um nmero que especifica a coordenada horizontal.
y
Um nmero que especifica a coordenada vertical.
Comentrios
As coordenadas so medidas do canto superior esquerdo de um objeto. A configurao da propriedade CurrentX 0 na
borda esquerda de um objeto, e a configurao da propriedade CurrentY 0 em sua borda superior. As coordenadas so
expressas em twips, ou a unidade atual de medida definida pelas propriedades ScaleHeight, ScaleWidth, ScaleLeft,
ScaleTop e ScaleMode.
Quando voc usa os mtodos grficos abaixo, as configuraes de CurrentX e CurrentY so alteradas conforme indicado:
Este mtodo
Configura CurrentX, CurrentY como
Circle
O centro do objeto.
Cls
0, 0.
EndDoc
0, 0.
Line
O ponto final da linha.
NewPage
0, 0.
Print
A prxima posio de impresso.
PSet
O ponto desenhado.

Propriedade Default
Retorna ou configura um valor que determina qual controle CommandButton o boto de comando padro em um
formulrio.
Sintaxe
object.Default [= boolean]
A sintaxe da propriedade Default tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica se o boto de
comando o padro, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
False

O CommandButton o boto de comando padro.


(Padro) O CommandButton no o boto de comando padro.

Comentrios
Somente um boto de comando em um formulrio pode ser o boto de comando padro. Quando Default configurada
como True para um boto de comando, ela automaticamente configurada como False para todos os outros botes de
comando no formulrio. Quando a configurao da propriedade Default do boto de comando True e seu formulrio pai
est ativo, o usurio pode escolher o boto de comando (acionando seu evento Clic) pressionando ENTER. Qualquer outro
controle com o foco no recebe um evento de teclado (eyDown, eyPress ou eyUp) para a tecla ENTER, a menos que o
usurio tenha movido o foco para outro boto de comando do mesmo formulrio. Neste caso, pressionar ENTER escolhe o
boto de comando que tem o foco, ao invs do boto de comando padro.
Para um formulrio ou caixa de dilogo que suporte uma ao irreversvel como, por exemplo, uma operao de excluso,
torna o boto Cancel o boto de comando padro configurando sua propriedade Default como True.
Para controles de recipiente OLE, a propriedade Default fornecida somente para aqueles objetos que se comportam
especificamente como controles CommandButton.

Propriedade DeviceName
Retorna o nome do dispositivo suportado por um driver.
Sintaxe
object.DeviceName
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Cada driver de impressora suporta um ou mais dispositivos por exemplo, HP LaserJet IIISi um nome de dispositivo.

Funes Internas

394

Observao: O efeito de propriedades do objeto Printer depende do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedade podem no ter qualquer efeito, ou diversas configuraes de propriedade diferentes
podem ter todas o mesmo efeito. As configuraes fora do intervalo aceitvel podem produzir um erro. Para maiores
informaes, consulte a documentao do fabricante para o driver especfico.

Propriedade DragIcon
Retorna ou configura o cone a ser exibido como ponteiro em uma operao de arrastar-e-soltar.
Sintaxe
object.DragIcon [= icon]
A sintaxe da propriedade DragIcon tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
icon
Qualquer referncia de cdigo que retorna um cone vlido
como, por exemplo, uma referncia a um cone de formulrio
(Form1.Icon), uma referncia propriedade DragIcon de
outro controle (Text1.DragIcon), ou funo LoadPicture.
Configuraes
As configuraes de icon so:
Configurao
Descrio
(nenhuma)
(Padro) Um ponteiro de seta dentro de um retngulo.
Icon
Um ponteiro de mouse personalizado. Voc especifica o
cone configurando-o na janela Properties durante o tempo
de criao. Voc tambm pode usar a funo LoadPicture
durante o tempo de execuo. O arquivo que voc carrega
deve ter o formato e extenso de nome de arquivo .ico.
Comentrios
Voc pode usar a propriedade DragIcon para oferecer retorno de informaes visual durante uma operao de arrastar-esoltar por exemplo, para indicar que o controle de origem est sobre o destino correto. DragIcon comea a ter efeito
quando o usurio inicia uma operao de arrastar-e-soltar. Geralmente, voc configura DragIcon como parte de um
procedimento de evento MouseDown ou DragOver.
Observao: Durante o tempo de execuo, a propriedade DragIcon pode ser configurada como qualquer propriedade
DragIcon ou Icon do objeto, ou voc pode atribuir-lhe um cone retornado pela funo LoadPicture.
Quando voc configura a propriedade DragIcon durante o tempo de execuo atribuindo a propriedade Picture de um
controle propriedade DragIcon de outro controle, a propriedade Picture deve conter um arquivo .ico, no um arquivo
.bmp.

Propriedade DragMode
Retorna ou configura um valor que determina se o modo de arraste automtico ou manual usado para uma operao
arrastar-e-soltar.
Sintaxe
object.DragMode [= number]
A sintaxe da propriedade DragMode tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um nmero inteiro que especifica o modo de arraste,
conforme descrito em Configuraes.
Configuraes
As configuraes de number so:
Constante
Configurao
vbManual
0
vbAutomatic

Descrio
(Padro) Manual exige o uso do mtodo
Drag para iniciar uma operao arrastar-esoltar no controle de origem.
Automtico clicar o controle de origem
inicia automaticamente uma operao
arrastar-e-soltar. Controles de recipientes
OLE so automaticamente arrastados
somente quando no tm o foco.

Comentrios
Quando DragMode configurada como 1 (Automtica), o controle no responde a eventos normais do mouse. Use a
configurao 0 (Manual) para determinar quando uma operao arrastar-e-soltar inicia ou termina; voc pode usar esta
configurao para iniciar uma operao arrastar-e-soltar em resposta a um comando de menu ou de teclado ou para ativar
um controle de origem para reconhecer um evento MouseDown antes de uma operao arrastar-e-soltar.

Funes Internas

395

Clicar enquanto o ponteiro do mouse est sobre um objeto de destino durante uma operao arrastar-e-soltar gera um
evento DragDrop para o objeto de destino. Isto encerra a operao arrastar-e-soltar. Uma operao arrastar-e-soltar
tambm pode gerar um evento DragOver.
Observao: Enquanto um controle est sendo arrastado, ele no pode reconhecer outros eventos de teclado ou mouse
iniciados pelo usurio (eyDown, eyPress ou eyUp, MouseDown, MouseMove ou MouseUp). Entretanto, o controle pode
receber eventos iniciados por cdigo ou por um vnculo DDE.

Propriedade DrawMode
Retorna ou configura um valor que determina a aparncia de resultado de mtodos grficos ou a aparncia de um controle
Shape ou Line.
Sintaxe
object.DrawMode [= number]
A sintaxe da propriedade DrawMode tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um nmero inteiro que especifica a aparncia, conforme
descrito em Configuraes.
Configuraes
As configuraes de number so:
Constante
Configurao
vbBlacness
1
vbNotMergePen
2
vbMasNotPen

vbNotCopyPen

vbMasPenNot

vbInvert
vbXorPen

6
7

vbNotMasPen

vbMasPen

vbNotXorPen

10

vbNop

11

vbMergeNotPen

12

vbCopyPen

13

vbMergePenNot

14

vbMergePen

15

vbWhiteness

16

Descrio
Tela preta.
Not Merge Pen Inverso da
configurao 15 (Merge Pen).
Mas Not Pen Combinao das cores
comuns ao segundo plano e o inverso da
caneta.
Not Copy Pen Inverso da configurao
13 (Copy Pen).
Mas Pen Not Combinao das cores
comuns tanto caneta quanto ao inverso
da exibio.
Invert Inverso da cor de exibio.
Xor Pen Combinao das cores na
caneta e na cor de exibio, mas no em
ambos.
Not Mas Pen Inverso da configurao
9 (Mas Pen).
Mas Pen Combinao das cores
comuns tanto caneta quanto exibio.
Not Xor Pen Inverso da configurao 7
(Xor Pen).
Nop Nenhuma operao o
resultado permanece inalterado. Na
realidade, esta configurao desativa o
desenho.
Merge Not Pen Combinao da cor de
exibio e o inverso da cor da caneta.
Copy Pen (Padro) Cor especificada
pela propriedade ForeColor.
Merge Pen Not Combinao da cor da
caneta e o inverso da cor de exibio.
Merge Pen Combinao da cor da
caneta e da cor de exibio.
Tela branca.

Comentrios
Use esta propriedade para produzir efeitos visuais com os controles Shape ou Line ou quando desenha com os mtodos
grficos. O Visual Basic compara cada pixel no padro de desenho ao pixel correspondente no segundo plano existente e,
em seguida, aplica operaes voltadas para bit. Por exemplo, a configurao 7 (Xor Pen) usa o operador Xor para
combinar um pixel de padro de desenho a um pixel de segundo plano.
O efeito exato de uma configurao DrawMode depende da maneira como a cor de uma linha desenhada durante o tempo
de execuo combina-se as cores j na tela. As configuraes 1,5,7,11,13 e 16 produzem os resultados mais previsveis.

Propriedade DrawStyle
Retorna ou configura um valor que determina o estilo de linha para resultado de mtodos grficos.
Sintaxe

Funes Internas

396

object.DrawStyle [= number]
A sintaxe da propriedade DrawStyle tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um nmero inteiro que especifica um estilo de linha,
conforme descrito em Configuraes.
Configuraes
As configuraes de number so:
Constante
Configurao
vbSolid
0
vbDash
1
vbDot
2
vbDashDot
3
vbDashDotDot
4
vbInvisible
5
vbInsideSolid
6

Descrio
(Padro) Uniforme
Trao
Ponto
Trao-ponto
Trao-ponto-ponto
Transparente
Uniforme interna

Comentrios
Se DrawWidth for configurada como um valor maior que 1, as configuraes de DrawStyle 1 at 4 produzem uma linha
uniforme (o valor da propriedade DrawStyle no se altera). Se DrawWidth for configurada como 1, DrawStyle produz o
efeito descrito na tabela anterior para cada configurao.

Propriedade Drive
Retorna ou configura a unidade de disco selecionada durante o tempo de execuo. No est disponvel durante o tempo
de criao.
Sintaxe
object.Drive [= drive]
A sintaxe da propriedade Drive tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
drive
Uma expresso de seqncia de caracteres que especifica a
unidade de disco selecionada.

Comentrios
As unidades de disco vlidas para a propriedade Drive incluem todas as unidades de disco presentes em ou conectadas ao
sistema quando o controle criado e atualizado durante o tempo de execuo. A configurao padro da propriedade Drive
a unidade de disco atual.
Ao ler esta configurao de propriedade, a unidade de disco selecionada retornada em um dos formatos abaixo:
Disquetes "a:" ou "b:", e assim por diante
Meio fixo "c: [volume id]"
Conexes de rede "x: \\servidor\compartilhamento"
Ao configurar esta propriedade:
Somente o primeiro caractere da seqncia de caracteres significativo (a seqncia de caracteres no distingue entre
maisculas e minsculas).
A alterao da configurao para a propriedade Drive aciona um evento Change.
Selecionar uma unidade que no est presente causa um erro.
A configurao desta propriedade tambm regenera a lista de unidades de disco, oferecendo uma maneira no cdigo de
rastrear conexes de rede adicionados desde que o controle foi criado.
Se a propriedade FileName for configurada como um caminho de rede qualificado sem uma unidade de disco de destino, o
valor da propriedade Drive uma seqncia de caracteres de comprimento zero (" "), nenhuma unidade de disco est
selecionada e a configurao da propriedade ListIndex 1.
Observao: A propriedade Drive retorna um valor diferente para a propriedade ListIndex que retorna a seleo da caixa
de listagem.

Propriedade DriverName
Retorna o nome do driver para um objeto Printer.
Sintaxe
object.DriverName
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Cada driver tem um nome exclusivo. Por exemplo, o DriverName para diversas impressoras Hewlett-Pacard HPPCL5MS.
O DriverName geralmente o nome de arquivo do driver sem uma extenso.
Observao: O efeito sobre as propriedades do objeto Printer depende do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedade podem no ter efeito algum, ou diversas configuraes diferentes de propriedade

Funes Internas

397

podem ter todas o mesmo efeito. As configuraes fora do intervalo aceito podem produzir um erro. Para maiores
informaes, consulte a documentao do fabricante para o driver especfico.

Propriedade Duplex
Retorna ou configura um valor que determina se uma pgina impressa em ambos os lados (se a impressora suporta este
recurso). No est disponvel durante o tempo de criao.
Sintaxe
object.Duplex [= value]
A sintaxe da propriedade Duplex tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um valor ou constante que especifica o tipo de impresso,
conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
Valor
vbPRDPSimplex
1
vbPRDPHorizontal

vbPRDPVertical

Descrio
Impresso em apenas uma face com a
configurao atual de orientao.
Impresso em dupla face usando um giro de
pgina horizontal.
Impresso em dupla face usando um giro de
pgina vertical.

Comentrios
Com uma impresso duplex horizontal, a parte superior de ambos os lados da pgina esto na mesma extremidade da
pgina. Com a impresso duplex vertical, a parte inferior de uma pgina est na mesma extremidade da folha que a parte
superior da prxima pgina. O diagrama abaixo ilustra a impresso duplex horizontal e vertical:
{bmc bm4.BMP}
Observao: O efeito das propriedades do objeto Printer depende do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedade podem no ter qualquer efeito, ou diversas configuraes de propriedade diferentes
podem ter todas o mesmo efeito. As configuraes fora do intervalo aceito podem produzir um erro. Para maiores
informaes, consulte a documentao do fabricante para o driver especfico.

Funes Internas

398

Propriedade FileName
Retorna ou configura o caminho e nome de arquivo de um arquivo selecionado. No est disponvel durante o tempo de
criao para o controle FileListBox.
Sintaxe
object.FileName [= pathname]
A sintaxe da propriedade FileName tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
pathname
Uma expresso de seqncia de caracteres que especifica o
caminho e nome de arquivo.

Comentrios
Quando voc cria o controle durante o tempo de execuo, a propriedade FileName configurada como uma seqncia de
caracteres de comprimento zero (""), significando que nenhum arquivo est selecionado atualmente.
No controle CommonDialog, voc pode configurar a propriedade FileName antes de abrir uma caixa de dilogo para
configurar o nome de arquivo inicial.
Ler esta propriedade retorna o nome de arquivo atualmente selecionado na lista. O caminho recuperado separadamente,
usando a propriedade Path. O valor funcionalmente equivalente a List(ListIndex). Se nenhum arquivo estiver
selecionado, a FileName retorna uma seqncia de caracteres de comprimento zero.
Ao configurar esta propriedade:
Incluir uma unidade de disco, caminho ou padro na seqncia de caracteres altera a configurao das propriedades
Drive, Path e Pattern de maneira correspondente.
Incluir o nome de um arquivo existente (sem caracteres curinga) na seqncia de caracteres provoca a seleo do arquivo.
Alterar o valor desta propriedade tambm pode provocar um ou mais destes eventos: PathChange (se voc alterar o
caminho), PatternChange (se voc alterar o padro) ou DblClic (se voc atribuir um nome de arquivo existente).
Esta configurao de propriedade pode ser um caminho de rede qualificado e um nome de arquivo usando a sintaxe
abaixo:
\\servername\sharename\pathname

Propriedade FillColor
Retorna ou configura a cor usada para preencher formulrios; FillColor tambm usada para preencher crculos e caixas
criadas como os mtodos grficos Circle e Line.
Sintaxe
object.FillColor [ = value]
A sintaxe da propriedade FillColor tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um valor ou constante que determina a cor de
preenchimento, conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Configurao
Descrio
Cores RGB normais
As cores configuradas com as funes RGB ou QBColor no
cdigo.
Cores padro do sistemaAs cores especificadas com constantes de cor do sistema na
biblioteca de objetos Visual Basic (VB) no Object Browser. O
ambiente operacional do Microsoft Windows substitui as
alternativas do usurio, conforme especificado pelas
configuraes de Painel de controle do usurio.
Como padro, FillColor configurada como 0 (Preto).
Comentrios
Exceto pelo objeto Form, quando a propriedade FillStyle est configurada como padro, 1 (Transparente), a configurao
FillColor ignorada.

Propriedade FillStyle
Retorna ou configura o padro usado para preencher os controles Shape, assim como, crculos e caixas criadas com os
mtodos grficos Circle e Line.
Sintaxe
object.FillStyle [= number]
A sintaxe da propriedade FillStyle tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista

Funes Internas

399

number

Applies To.
Um nmero inteiro que especifica o estilo de preenchimento,
conforme descrito em Configuraes.

Configuraes
As configuraes de number so:
Constante
Configurao
vbFSSolid
0
vbFSTransparent
1
vbHorizontalLine
2
vbVerticalLine
3
vbUpwardDiagonal
4
vbDownwardDiagonal
5
vbCross
6
vbDiagonalCross
7

Descrio
Uniforme
(Padro) Transparente
Linha Horizontal
Linha Vertical
Diagonal para cima
Diagonal para baixo
Cruzado
Cruzado diagonal

Comentrios
Quando FillStyle configurada como 1 (Transparente), a propriedade FillColor ignorada, exceto pelo objeto Form.

Funes Internas

400

Propriedade FontCount
Retorna o nmero de fontes disponveis para o dispositivo de exibio atual ou impressora ativa.
Sintaxe
object.FontCount
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Use esta propriedade com a propriedade Fonts para visualizar uma lista de telas disponveis e fontes de impressora. As
fontes disponveis no Visual Basic variam de acordo com a configurao de seu sistema, dispositivos de exibio e
dispositivos de impresso.

Propriedade Fonts
Retorna todos os nomes de fonte disponveis para o dispositivo de exibio atual ou impressora ativa.
Sintaxe
object.Fonts(index)
A sintaxe da propriedade Fonts tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
Um nmero inteiro de 0 a FontCount 1.
Comentrios
A propriedade Fonts funciona em conjunto com a propriedade FontCount que retorna o nmero de nomes de fonte
disponveis para o objeto. As fontes disponveis no Visual Basic variam de acordo com a configurao de seu sistema,
dispositivos de exibio e dispositivos de impresso. Use ambas as propriedades Fonts e FontCount para obter
informaes sobre fontes de tela ou impressora disponveis.

Propriedade hDC
Retorna um identificador fornecido pelo ambiente operacional do Microsoft Windows ao contexto de dispositivo de um
objeto.
Sintaxe
object.hDC
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Esta propriedade um identificador de contexto de dispositivo de ambiente operacional do Windows. O ambiente
operacional do Windows gerencia a exibio do sistema atribuindo um contexto de dispositivo para o objeto Printer e para
cada formulrio e controle PictureBox em seu aplicativo. Voc pode usar a propriedade hDC para referir-se ao identificador
de contexto de dispositivo de um objeto. Este fornece um valor a ser passado a chamadas de API do Windows.
Com um controle CommonDialog, esta propriedade retorna um contexto de dispositivo para a impressora selecionada na
caixa de dilogo Print quando o sinalizador cdlReturnDC configurado, ou um contexto de informaes quando o
sinalizador cdlReturnIC configurado.
Observao: O valor da propriedade hDC pode alterar enquanto um programa est sendo executado, portanto no
armazena o valor em uma varivel; ao invs, use a propriedade hDC cada vez que voc precisar dela.
A propriedade AutoRedraw pode provocar a mudana da propriedade hDC. Se AutoRedraw for configurada como True
para um formulrio ou recipiente PictureBox, hDC funciona como um identificador para o contexto de dispositivo de um
elemento grfico permanente (equivalente propriedade Image). Quando AutoRedraw for False, hDC o valor efetivo de
hDC da janela Form ou do recipiente PictureBox. A configurao da propriedade hDC pode alterar-se, enquanto o
programa est sendo executado, independente da configurao de AutoRedraw.

Propriedade HideSelection
Retorna um valor que determina se o texto selecionado aparece realado quando o controle perde o foco.
Sintaxe
object.HideSelection
O espao reservado object representa uma expresso de objeto que avalia como um objeto na lista Applies To.
Valores de retorno
Os valores de retorno da propriedade HideSelection so:
Value
Descrio
True
(Padro) O texto selecionado no aparece realado quando o
controle perde o foco.
False
O texto selecionado aparece realado quando o controle
perde o foco.
Comentrios
Voc pode usar esta propriedade para indicar qual texto realado, enquanto outro formulrio ou uma caixa de dilogo tem
o foco por exemplo, em uma rotina de verificao ortogrfica.

Funes Internas

401

Propriedade hWnd
Retorna um identificador a um formulrio ou controle.
Observao: Esta propriedade no suportada para o controle do recipiente OLE.
Sintaxe
object.hWnd
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To
Comentrios
O ambiente operacional do Microsoft Windows identifica cada formulrio e controle em um aplicativo atribuindo-lhe um
identificador, ou hWnd. A propriedade hWnd usada com chamadas API do Windows. Muitas funes do ambiente
operacional do Windows exigem o hWnd da janela ativa como argumento.
Observao: Como o valor desta propriedade pode se alterar enquanto o programa executado, nunca armazene o valor
hWnd em uma varivel.

Funes Internas

402

Propriedade Image
Retorna um identificador a um elemento grfico permanente; o identificador fornecido pelo ambiente operacional do
Microsoft Windows.
Sintaxe
object.Image
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
A propriedade AutoRedraw de um objeto determina se a regenerao de um objeto ocorre com um elemento grfico
permanente, ou atravs de eventos Paint. O ambiente operacional do Windows identifica o elemento grfico permanente de
um objeto atribuindo-lhe um identificador; voc pode usar a propriedade Image para obter este identificador.
Um valor Image existe independente da configurao da propriedade AutoRedraw. Se AutoRedraw for True, e nada tiver
sido desenhado, a imagem exibe apenas a cor definida pela propriedade BacColor e a figura.
Voc pode atribuir o valor de Image propriedade Picture. A propriedade Image tambm oferece um valor a ser passado a
chamadas API do Windows.
As propriedades Image, DragIcon e Picture so normalmente usadas ao se atribuir valores a outras propriedades, ao
salvar com a instruo SavePicture ou ao colocar alguma coisa na rea de transferncia. Voc no pode atribui-los a
uma varivel temporria, diferente do tipo de dados Picture.
A propriedade AutoRedraw pode fazer com que Image, que um identificador se altere. Quando AutoRedraw True, a
propriedade hDC de um objeto torna-se um identificador de um contexto de dispositivo que contm o bitmap retornado por
Image.

Propriedade ItemData
Retorna ou configura um nmero especfico para cada item em um controle ComboBox ou ListBox.
Sintaxe
object.ItemData(index) [= number]
A sintaxe da propriedade ItemData tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
O nmero de um item especfico no objeto.
Number
O nmero a ser associado ao item especfico.
Comentrios
A propriedade ItemData uma matriz de valores inteiros longos com o mesmo nmero de itens que uma propriedade List
de um controle. Voc pode usar os nmeros associados a cada item para identificar os itens. Por exemplo, voc pode usar
o nmero de identificao de funcionrio para identificar cada nome de funcionrio em um controle ListBox. Ao preencher o
ListBox, preencha tambm os elementos correspondentes na matriz ItemData com os nmeros de funcionrios.
A propriedade ItemData com freqncia usada como ndice para uma matriz de estruturas de dados associadas a itens
em um controle ListBox.
Observao: Quando voc insere um item em uma lista com o mtodo AddItem, um item tambm automaticamente
inserido na matriz ItemData. Entretanto, o valor no reinicializado como zero; ele retm o valor que estava naquela
posio, antes que voc adicionasse o item lista. Quando voc usa a propriedade ItemData, certifique-se de configurar
seu valor ao adicionar novos itens a uma lista.

Propriedade eyPreview
Retorna ou configura um valor que determina se eventos de teclado para formulrios foram acionados antes de eventos de
teclado para controles. Os eventos de teclado so eyDown, eyUp e eyPress.
Sintaxe
object.eyPreview [= boolean]
A sintaxe de propriedade eyPreview tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica como os eventos
so recebidos, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
O formulrio recebe eventos de teclado primeiro e, em
seguida, o controle ativo.
False

(Padro) O controle ativo recebe eventos de teclado; o que


no ocorre com o formulrio.

Comentrios

Funes Internas

403

Voc pode usar esta propriedade para criar um procedimento de tratamento de teclado para um formulrio. Por exemplo,
quando um aplicativo usa teclas de funo, voc querer processar os pressionamentos de teclas a nvel de formulrio, ao
invs de escrever cdigo para cada controle que possa receber eventos de teclado.
Se um formulrio no tem controles visveis e ativados, ele automaticamente recebe todos os eventos de teclado.
Para manipular eventos de teclado somente a nvel de formulrio e no permitir que controles recebam eventos de teclado,
configure eyAscii como 0 no evento eyPress do formulrio, e configure eyCode como 0 no evento eyDown do formulrio.
Observao: Alguns controles interceptam eventos de teclado, de modo que o formulrio no os possa receber. Os
exemplos incluem a tecla ENTER quando o foco est no controle CommandButton, e teclas de direo quando o foco est
em um controle ListBox.

Funes Internas

404

Propriedades LargeChange, SmallChange


LargeChange Retorna ou configura a quantidade de alterao da configurao da propriedade Value em um controle de

barra de rolagem (HScrollBar ou VScrollBar) quando o usurio clica na rea entre a caixa de rolagem e a seta de
rolagem.
SmallChange Retorna ou configura a quantidade de alterao da configurao da propriedade Value em um controle de
barra de rolagem quando o usurio clica em uma seta de rolagem.
Sintaxe
object.LargeChange
[=
number]
object.SmallChange [= number]
A sintaxe das propriedades LargeChange e SmallChange tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number

Um nmero inteiro que especifica a quantidade de alterao


da propriedade Value.

Comentrios
Para ambas as propriedades, voc pode especificar um nmero inteiro entre 1 e 32.767 inclusive. Como padro, cada
propriedade configurada como 1.
O ambiente operacional do Microsoft Windows configura incrementos de rolagem proporcional para barras de rolagem em
objetos MDI Form, controles ComboBox e controles ListBox com base na quantidade de dados contida no objeto. Para os
controles HScrollBar e VScrollBar, entretanto, voc deve especificar estes incrementos. Use LargeChange e
SmallChange para configurar os incrementos de rolagem adequados maneira como a barra de rolagem est sendo
usada.
Geralmente, voc configura LargeChange e SmallChange durante o tempo de criao. Voc tambm pode reconfigur-las
no cdigo durante o tempo de execuo quando o incremento de rolagem deve alterar-se dinamicamente.
Observao: Voc configura os intervalos mximo e mnimo dos controles HScrollBar e VScrollBar com as propriedades
Max e Min.

Propriedade LinItem
Retorna ou configura os dados passados a um controle de destino em uma conversao DDE com outro aplicativo.
Sintaxe
object.LinItem [= string]
A sintaxe da propriedade LinItem tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma expresso de seqncia de caracteres que especifica
os dados a serem passados ao controle de destino.
Comentrios
Esta propriedade corresponde ao argumento item na sintaxe DDE padro, com application, topic e item como argumentos.
Para configurar esta propriedade, especifique uma unidade reconhecvel de dados em um aplicativo como uma referncia
por exemplo, uma referncia de clula como "R1C1" no Microsoft Excel.
Use LinItem em combinao com a propriedade LinTopic para especificar o vnculo de dados completo para um controle
de destino a um aplicativo de origem. Para ativar este vnculo, configure a propriedade LinMode.
Voc configura LinItem somente para um controle usado como destino. Quando o formulrio do Visual Basic uma origem
em uma conversao DDE, o nome de qualquer controle Label, PictureBox ou TextBox no formulrio pode ser o
argumento item na seqncia de caracteres application|topic!item usada pelo destino. Por exemplo, a sintaxe abaixo
representa uma referncia vlida do Microsoft Excel a um aplicativo do Visual Basic:
=VizBasicApplication|MyForm!TextBox1
Voc poderia inserir a sintaxe acima para uma clula de destino na barra de frmulas do Microsoft Excel.
Um controle DDE pode potencialmente funcionar simultaneamente como origem e destino, provocando um loop infinito se
um par origem-destino tambm for um par destino-origem consigo mesmo. Por exemplo, um controle TextBox pode ser
tanto a origem (atravs de seu formulrio pai) e destino da mesma clula no Microsoft Excel. Quando os dados em uma
TextBox do Visual Basic forem alterados, o envio de dados ao Microsoft Excel, a clula no Microsoft Excel se altera,
enviando a alterao TextBox, e assim por diante, causando o loop.
Para evitar este tipo de loop, use itens relacionados, mas no idnticos, para vnculos destino-origem e origem-destino em
ambas as direes entre aplicativos. Por exemplo, no Microsoft Excel, use clulas relacionadas (precedentes ou
dependentes) para vincular uma planilha a um controle do Visual Basic, evitando o uso de um nico item como origem e
destino. Documente qualquer par application|topic que voc estabelea, se voc inclui um Comando Paste Lin para uso
durante o tempo de execuo.
Observao: A configurao de um vnculo de dados permanente durante o tempo de criao com o comando Paste Lin
no menu Edit tambm configura as propriedades LinMode, LinTopic e LinItem. Isto cria um vnculo que salvo com o
formulrio. Cada vez que o formulrio carregado, o Visual Basic tenta restabelecer a conversao.

Funes Internas

405

Propriedade LinMode
Retorna ou configura o tipo de vnculo usado para uma conversao DDE e ativa as conexes como segue:
Controle Permite que um controle de destino em um formulrio do Visual Basic inicie uma conversao, conforme

especificado pelas propriedades LinTopic e LinItem do controle.


Formulrio Permite que um aplicativo de destino inicie uma conversao com um formulrio do Visual Basic de origem,

conforme especificado pela expresso application|topic!item do aplicativo de destino.


Sintaxe
object.LinMode [= number]
A sintaxe da propriedade LinMode tem estas trs partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Um nmero inteiro que especifica o tipo de conexo,
conforme descrito em Configuraes.
Configuraes
Para controles usados como destinos em conversaes DDE, as configuraes de number so:
Constante
Configurao
Descrio
vbLinNone
0
(Padro) None Nenhuma interao
DDE.
VbLinAutomatic
1
Automatic O controle de destino
atualizado cada vez que os dados
vinculados so alterados.
VbLinManual
2
Manual O controle de destino
atualizado somente quando o mtodo
LinRequest chamado.
VbLinNotify
3
Notify Ocorre um evento LinNotify
toda vez que os dados vinculados se
alteram, mas o controle de destino
somente atualizado quando o mtodo
LinRequest acionado.
Para formulrios usados como fonte em conversaes DDE, as configuraes de number so:
Constante
Configurao
Descrio
vbLinNone
0
(Padro) None Nenhuma interao
DDE. Nenhum aplicativo de destino
pode iniciar uma conversao com a
origem com o formulrio de origem
como tpico e nenhum aplicativo pode
enviar dados ao formulrio. Se
LinMode 0 (None) durante o tempo
de criao, voc no pode alter-la
para 1 (Source) durante o tempo de
execuo.
vbLinSource
1
Source Permite que qualquer
controle
Label,
PictureBox
ou
TextBox em um formulrio fornea
dados a qualquer aplicativo de destino
que estabelea uma conversao DDE
com o formulrio. Se tal vnculo existir,
o Visual Basic notifica automaticamente
o destino, sempre que o contedo de
um controle tenha sido alterado. Alm
disso, um aplicativo de destino pode
enviar dados a qualquer controle
Label, PictureBox ou TextBox no
formulrio. Se LinMode for 1 (Source)
durante o tempo de criao, voc pode
alter-lo para 0 (None) e retornar
durante o tempo de execuo.
Comentrios
As condies abaixo tambm aplicam-se propriedade LinMode:
Configurar LinMode como um valor diferente de zero para um controle de destino faz com que o Visual Basic tente iniciar a
conversao especificada nas propriedades LinTopic e LinItem. A origem atualiza o controle de destino de acordo com o
tipo de vnculo especificado (automatic, manual ou notify).
Se um aplicativo de origem termina uma conversao com um controle de destino do Visual Basic, o valor da configurao
LinMode deste controle altera-se para 0 (None).

Funes Internas

406

Se voc deixa LinMode de um formulrio configurada como o padro 0 (None) durante o tempo de criao, voc no pode

alterar LinMode durante o tempo de execuo. Se voc deseja que um formulrio funcione como uma origem, voc deve
configurar LinMode como 1 (Source) durante o tempo de criao. Voc pode, ento, alterar o valor de LinMode durante o
tempo de execuo.
Observao: Configurar um vnculo de dados permanente durante o tempo de criao a um comando Paste Lin do menu
Edit tambm configura as propriedades LinMode, LinTopic e LinItem. Isto cria um vnculo que salvo junto com o
formulrio. Cada vez que o formulrio carregado, o Visual Basic tenta restabelecer a conversao.

Propriedade LinTimeout
Retorna ou configura a quantidade de tempo que um controle espera por uma resposta a uma mensagem DDE.
Sintaxe
object.LinTimeout [= number]
A sintaxe da propriedade LinTimeout tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica que especifica o tempo de espera.
Comentrios
Como padro, a propriedade LinTimeout configurada como 50 (equivalente a 5 segundos). Voc pode especificar outras
configuraes em dcimos de segundo.
O tempo de resposta DDE dos aplicativos de origem variam. Use esta propriedade para ajustar o tempo que um controle de
destino aguarda por uma resposta de um aplicativo de origem. Se voc usa LinTimeout, pode evitar a gerao de um erro
do Visual Basic se um determinado aplicativo de origem levar tempo demais para responder.
Observao: O perodo mximo de tempo que um controle pode aguardar 65.535 dcimos de segundo, ou cerca de 1
hora e 49 minutos. Configurar LinTimeout como 1 informa ao controle para aguardar o tempo mximo por uma resposta
em uma conversao DDE. O usurio pode forar o controle a interromper a espera pressionando a tecla ESC.

Propriedade Loced
Retorna ou configura um valor indicando se um controle pode ser editado.
Sintaxe
object.Loced [ = boolean]
A sintaxe da propriedade Loced tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica se o controle pode
ser editado, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
Controle TextBox voc pode rolar e realar o texto no
controle, mas voc no pode edit-lo. O programa ainda pode
modificar o texto alterando a propriedade Text.
Objeto Column voc no pode editar os valores na coluna.
Objeto ComboBox voc no pode digitar na caixa de texto.
False
Controle TextBox voc pode editar o texto no controle.
Objeto Column voc pode editar os valores na coluna.
Objeto ComboBox voc pode digitar na caixa de texto e
produzir sua lista drop-down.
Comentrios
Para o objeto Column, a configurao padro de Loced o valor da propriedade DataUpdatable para o campo
subjacente; entretanto, se Column for no acoplada ou a origem dos dados no suportar DataUpdatable, o padro True.
Se DataUpdatable no campo subjacente for False, voc no cria um erro configurando esta propriedade como True.
Entretanto, ocorrer um erro quando o controle tentar gravar os dados alterados no banco de dados.
Para o controle ComboBox, quando Loced for configurada como True, o usurio no pode alterar quaisquer dados, mas
pode selecionar dados na caixa de textos e copi-los. Esta propriedade no afeta o acesso ComboBox atravs de
programa.

Propriedade ReadOnly
Retorna ou configura um valor que determina se um controle FileListBox contm arquivos com atributos Somente leitura.
Sintaxe
object.ReadOnly [ = boolean]
A sintaxe da propriedade ReadOnly tem estas partes:
Parte
Descrio

Funes Internas

407

object
boolean

Uma expresso de objeto que avalia para um objeto na lista


Applies To.
Uma expresso Booleana que especifica se o controle exibe
arquivos com atributo Somente leitura, conforme descrito em
Configuraes.

Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
O controle inclui arquivos Somente leitura na lista.
False
Nenhum arquivo Somente leitura listado no controle.
Comentrios
Use a propriedade ReadOnly com um controle FileListBox para especificar se os arquivos com atributo Somente leitura
so exibidos ou no na lista de arquivos.

Funes Internas

408

Exemplo da propriedade Align


Este exemplo utiliza um controle PictureBox como barra de ferramentas em um objeto MDIForm com um controle
CommandButton para mover a PictureBox, da parte superior para a parte inferior do formulrio. Para experimentar este
exemplo, crie um novo MDIForm e configure a propriedade MDIChild de Form1 como True. Desenhe uma PictureBox no
MDIForm, e coloque um CommandButton na PictureBox. Cole o cdigo na seo Declarations do MDIForm e, em
seguida, pressione F5. Clique no CommandButton para mover a PictureBox.
Private Sub Command1_Clic ()
If Picture1.Align = vbAlignTop Then
Picture1.Align = vbAlignBottom
' Alinha-se parte inferior do formulrio.
Else
Picture1.Align = vbAlignTop
' Alinha-se parte superior do formulrio.
End If
End Sub

Exemplo da propriedade AutoRedraw


Este exemplo exibe, alternadamente, dois elementos grficos em um controle PictureBox: um crculo preenchido
permanente e linhas verticais temporrias. Clique em PictureBox para desenhar ou redesenhar as linhas. Redimensionar o
formulrio exige que o elemento grfico temporrio seja redesenhado. Para experimentar este exemplo cole o cdigo na
seo Declarations de um formulrio que tenha um controle PictureBox chamado Picture1. Pressione F5 para executar o
programa e clique no elemento grfico, cada vez que o formulrio for redimensionado.
Private Sub Form_Load ()
Picture1.ScaleHeight = 100
' Configurar a escala como 100.
Picture1.ScaleWidth = 100
Picture1.AutoRedraw = True ' Ativar AutoRedraw.
Picture1.ForeColor = 0
' Configurar ForeColor.
Picture1.FillColor = QBColor(9) ' Configurar FillColor.
Picture1.FillStyle = 0 ' Configurar FillStyle.
Picture1.Circle (50, 50), 30 ' Desenhar um crculo.
Picture1.AutoRedraw = False ' Desativar AutoRedraw.
End Sub
Private Sub Picture1_Clic ()
Dim I
' Declarar varivel.
Picture1.ForeColor = Rgb(Rnd * 255, 0, 0)
' Seleciona cor aleatria.
For I = 5 To 95 Step 10
' Desenhar linhas.
Picture1.Line (I, 0)-(I, 100)
Next
End Sub

Exemplo da propriedade AutoShowChildren


Este exemplo apresenta um objeto MDIForm com um formulrio MDI filho, usa a propriedade AutoShowChildren para
criar um formulrio oculto como outra ocorrncia do formulrio MDI filho e, em seguida, cria um formulrio MDI filho visvel.
Para experimentar este exemplo, configure a propriedade MDIChild como True em Form1 e, em seguida, crie um
MDIForm com o comando Add MDI Form no menu Project. Copie o cdigo para a seo Declarations do MDIForm e, em
seguida, pressione F5 para executar o programa.
Private Sub MDIForm_Load()
MDIForm1.AutoShowChildren = False ' Configurar para ocultar os formulrios filhos.
Dim HideForm As New Form1 ' Declarar novo formulrio.
HideForm.Caption = "HideForm"
' Configurar sua legenda.
Load HideForm ' Carrega-o; ele est oculto.
MDIForm1.AutoShowChildren = True ' Configurar para exibir formulrios filhos.
Dim ShowForm As New Form1 ' Declarar outro novo formulrio.
ShowForm.Caption = "ShowForm" ' Configurar sua legenda.
Load ShowForm ' Carregue-o; ele exibido.
End Sub

Exemplo da propriedade ClipControls


Este exemplo mostra como a propriedade ClipControls afeta a regenerao de um formulrio. Para experimentar este
exemplo cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5. Observe que a cor do
formulrio inteiro se altera, cada vez que voc o redimensiona ou cobre parte dele com outro formulrio ou aplicativo.
Encerre o programa e configure ClipControls como False e, em seguida, execute novamente o programa. Observe que
somente as partes recm-expostas do formulrio so regeneradas.
Private Sub Form_Paint ()
' Selecionar uma cor aleatria para o segundo plano.
BacColor = &HFFFFFF * Rnd
End Sub

Funes Internas

409

Exemplo da propriedade Columns


Este exemplo ilustra como os dois tipos diferentes de controles ListBox funcionam quando contm os mesmos dados. Para
experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha dois controles ListBox.
Configure a propriedade Columns como 2 para List2 e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Load ()
Dim I
' Declara varivel.
List1.Move 50, 50, 2000, 1750 ' Organizar caixas de listagem.
List2.Move 2500, 50, 3000, 1750
For I = 0 To Screen.FontCount -1 ' Preencher ambas as caixas com
List1.AddItem Screen.Fonts(I) ' nomes de fontes de tela.
List2.AddItem Screen.Fonts(I)
Next I
End Sub

Exemplo da propriedade DragIcon


Este exemplo altera a configurao da propriedade DragIcon toda vez que voc arrasta um controle PictureBox. Para
experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um controle PictureBox.
Configure a propriedade DragMode = 1 e, em seguida, pressione F5 e arraste o controle PictureBox.
Private Sub Form_DragDrop (Source As Control, X As Single, Y As Single)
Dim Pic ' Declara varivel.
Source.Move X, Y
' Configurar a posio do controle.
Pic = "ICONS\OFFICE\CRDFLE01.ICO"
' Obter o nome do arquivo de cone.
If Source.DragIcon = False Then
' Se nenhuma figura estiver carregada,
Source.DragIcon = LoadPicture(Pic)
' Carregar a figura.
Else
Source.DragIcon = LoadPicture() ' Descarregar a figura.
End If
End Sub

Funes Internas

410

Exemplo da propriedade DragMode


Este exemplo ativa e desativa a capacidade de arrastar um controle CommandButton cada vez que um formulrio
clicado. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um
CommandButton e, em seguida, pressione F5 e clique no formulrio
Private Sub Form_Clic ()
' Verificar o DragMode.
If Command1.DragMode = vbManual Then
' Ativ-lo.
Command1.DragMode = vbAutomatic
Else
' ou desativ-lo.
Command1.DragMode = vbManual
End If
End Sub

Exemplo da propriedade DrawMode


Este exemplo permite o desenho de um formulrio arrastando-se o ponteiro do mouse. Cada clique de mouse configura um
valor diferente para a propriedade DrawMode. Para experimentar este exemplo cole o cdigo na seo Declarations de um
formulrio e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Load
DrawWidth = 10 ' Configurar DrawWidth.
End Sub
Private Sub Form_Clic ()
Static M As Integer
' Configurao atual de DrawMode.
ForeColor = QBColor(Int(Rnd * 15)) ' Escolher uma cor.
M = ((M + 1) Mod 16) + 1 ' Manter DrawMode 16 ou menor.
DrawMode = M ' Configurar DrawMode.
End Sub
Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button Then
' Enquanto o boto est pressionado,
PSet (X, Y) ' desenhe um grande ponto.
End If
End Sub

Exemplo da propriedade DrawStyle


Este exemplo desenha sete linhas no formulrio, sendo que cada linha exibe uma propriedade DrawStyle diferente. (Se
voc configura AutoRedraw = True, o formulrio acumula um novo conjunto de linhas cada vez que voc o redimensiona
e, em seguida, clica nele.) Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio e, em
seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim I
' Declarar varivel.
ScaleHeight = 8 ' Dividir a altura por 8.
For I = 0 To 6
DrawStyle = I' Alterar o estilo.
Line (0, I + 1) - (ScaleWidth, I + 1)
' Desenha uma nova linha.
Next I
End Sub

Funes Internas

411

Exemplo da propriedade Drive


Este exemplo exibe uma lista de arquivos para a unidade de disco e diretrio atuais. Para experimentar este exemplo cole o
cdigo na seo Declarations de um formulrio que contenha um controle DriveListBox, um controle DirListBox e um
controle FileListBox e, em seguida, pressione F5. Use o mouse para alterar a unidade de disco e diretrio.
Private Sub Drive1_Change ()
Dir1.Path = Drive1.Drive ' Quando a unidade de disco for alterada, configure o caminho do diretrio.
End Sub
Private Sub Dir1_Change ()
File1.Path = Dir1.Path ' Quando o diretrio se alterar configure o caminho do arquivo.
End Sub

Exemplo da propriedade FileName


Este exemplo exibe uma mensagem em um controle Label quando um nome de arquivo em um controle FileListBox
clicado duas vezes. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha
um controle Label, um controle DirListBox e um controle FileListBox e, em seguida, pressione F5, e clique duas vezes em
qualquer nome de arquivo no controle FileListBox.
Private Sub Dir1_Change ()
File1.Path = Dir1.Path ' Configurar o caminho de File1.
End Sub
Private Sub File1_PathChange ()
Dir1.Path = File1.Path ' Configurar o caminho de Dir1.
End Sub
Private Sub File1_DblClic ()
' Exibir o nome de arquivo selecionado ao ser clicado duas vezes.
Label1.Caption = "Your selection: " +_ File1.FileName
End Sub

Exemplo da propriedade FillColor


Este exemplo constri um crculo em seu formulrio com configuraes aleatrias de propriedade FillColor e FillStyle
quando voc clica o mouse. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio e, em
seguida pressione F5 e clique no formulrio.
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
FillColor = QBColor(Int(Rnd * 15)) ' Escolher FillColor aleatria.
FillStyle = Int(Rnd * 8) ' Escolher FillStyle aleatrio.
Circle (X, Y), 250 ' Desenhar um crculo.
End Sub

Exemplo da propriedade FillStyle


Este exemplo exibe um crculo em um formulrio com configuraes aleatrias de FillColor e FillStyle quando voc clica o
mouse. Para experimentar este exemplo cole o cdigo na seo Declarations e, em seguida, pressione F5 para executar o
programa.
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
FillColor = QBColor(Rnd * 15) ' Escolher FillColor aleatria.
FillStyle = Int(Rnd * 8) ' Escolher FillStyle aleatrio.
Circle (X, Y), 250 ' Desenhar um crculo.
End Sub

Funes Internas

412

Exemplo da propriedade FontCount


Este exemplo imprime uma lista de fontes de impressora em um controle ListBox. Para experimentar este exemplo cole o
cdigo na seo Declarations de um formulrio que contenha um controle ListBox chamado List1 e, em seguida, pressione
F5 e clique no formulrio.
Private Sub Form_Clic ()
Dim I
' Declarar varivel.
For I = 0 To Printer.FontCount -1
' Determinar o nmero de fontes.
List1.AddItem Printer.Fonts (I) ' Colocar cada fonte na caixa de listagem.
Next I
End Sub

Exemplo da propriedade Fonts


Este exemplo imprime uma lista das fontes de impressora em um controle ListBox. Para experimentar este exemplo cole o
cdigo na seo Declarations de um formulrio que contenha um controle ListBox chamado List1. Pressione F5 para
executar o programa e, em seguida, clique no formulrio.
Private Sub Form_Clic ()
Dim I
' Declara varivel.
For I = 0 To Printer.FontCount -1
' Determinar o nmero de fontes.
List1.AddItem Printer.Fonts (I) ' Colocar cada fonte na caixa de listagem.
Next I
End Sub

Exemplo da propriedade hDC


Este exemplo desenha um tringulo e, em seguida, usa uma funo do Microsoft Windows para preench-lo com cor. Para
experimentar este exemplo, crie um novo mdulo usando o comando Add Module no menu Project. Cole a instruo
Declare na seo Declarations do novo mdulo, certificando-se de que a instruo esteja em uma linha sem quebras ou
mudanas de linha. Em seguida, cole o procedimento Sub na seo Declarations de um formulrio. Pressione F5 e clique
no formulrio.
' Declarao de uma rotina Windows. Esta instruo
' para o mdulo.
Declare Sub FloodFill Lib "GDI32" Alias "FloodFill" _
(ByVal hDC As Long, ByVal X As Long, ByVal Y As _
Long, ByVal crColor As Long) As Long
' Colocar o cdigo abaixo no formulrio.
Private Sub Form_Clic ()
ScaleMode = vbPixels ' O Windows desenha em pixels.
ForeColor = vbBlac
' Configurar a linha de desenho como preto.
Line (100, 50)-(300, 50) ' Desenhar um tringulo.
Line -(200, 200)
Line -(100, 50)
FillStyle = vbFSSolid ' Configurar FillStyle como uniforme.
FillColor = RGB(128, 128, 255) ' Configurar FillColor.
' Chamar o Windows API para preencher.
FloodFill hDC, 200, 100, ForeColor
End Sub

Funes Internas

413

Exemplo da propriedade HideSelection


Este exemplo permite selecionar texto em cada formulrio e alternar o foco entre formulrios clicando a barra de ttulo de
cada formulrio. A seleo permanece visvel at mesmo quando o formulrio no est ativo. Para experimentar este
exemplo, crie dois formulrios e desenhe um controle TextBox em cada um deles. Configure a propriedade MultiLine como
True para ambos os controles TextBox e configure a propriedade HideSelection como False para um dos controles
TextBox. Cole o cdigo na seo Declarations de ambos os mdulos do formulrio e, em seguida, pressione F5.
Private Sub Form_Load ()
Open "README.TXT" For Input As 1 ' Carregar o arquivo na caixa de texto.
Text1.Text = Input$(LOF(1), 1)
Close 1
Form2.Visible = True ' Carregar Form2, se ainda no estiver carregado.
' Posicionar os formulrios lado a lado.
Form1.Move 0, 1050, Screen.Width / 2, Screen.Height
Form2.Move Screen.Width / 2, 1050, Screen.Width / 2, Screen.Height
' Ampliar a caixa de texto para preencher o formulrio.
Text1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub

Exemplo da propriedade hWnd


Este exemplo fora o formulrio a permanecer sempre em primeiro plano. Para experimentar este exemplo, crie um
formulrio (no um formulrio MDI filho) e, em seguida, crie um menu para o formulrio chamado Main. Insira nele um submenu chamado Always On Top e configure seu Name com mnuTopmost. Crie um novo mdulo usando o comando Add
Module no menu Project. Cole a instruo Declare na seo Declarations do novo mdulo, certificando-se de que a
instruo esteja em uma linha sem quebras ou mudanas de linha. Em seguida, cole o procedimento Sub na seo
Declarations do formulrio e pressione F5.
' Declarao de uma rotina Windows.
' Esta instruo deve ser colocada no mdulo.
Declare Function SetWindowPos Lib "user32" Alias_ "SetWindowPos" (ByVal hwnd As Long, ByVal_ hWndInsertAfter As
Long, ByVal x As Long, ByVal y As_ Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags_ As Long) As Long
' Configurar alguns valores de constante (de WIN32API.TXT).
Const conHwndTopmost = -1
Const conHwndNoTopmost = -2
Const conSwpNoActivate = &H10
Const conSwpShowWindow = &H40
Private Sub mnuTopmost_Clic ()
' Adicionar ou remover a marca de seleo do menu.
mnuTopmost.Checed = Not mnuTopmost.Checed
If mnuTopmost.Checed Then
' Ativar o atributo TopMost.
SetWindowPos hWnd, conHwndTopmost, 0, 0, 0, 0,_ conSwpNoActivate Or conSwpShowWindow
Else
' Desativar o atributo TopMost.
SetWindowPos hWnd, conHwndNoTopmost, 0, 0, 0,_ 0, conSwpNoActivate Or conSwpShowWindow
End If
End Sub
Este exemplo produz automaticamente a parte de lista drop-down de um controle ComboBox toda vez que o ComboBox
recebe o foco. Para experimentar este exemplo, crie um novo formulrio contendo um controle ComboBox e um controle
OptionButton (usado apenas para receber o foco). Crie um novo mdulo usando o comando Add Module no menu
Project. Cole a instruo Declare na seo Declarations do novo mdulo, certificando-se de que a instruo esteja em uma
linha sem quebra ou mudana de linha. Em seguida, cole o procedimento Sub na seo Declarations do formulrio e
pressione F5. Use a tecla TAB para mover o foco de, e para a ComboBox.
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal
wParam As Long, lParam As Long) As Long
Private Sub Combo1_GotFocus ()
Const CB_SHOWDROPDOWN = &H14F
Dim Tmp
Tmp = SendMessage(Combo1.hWnd, CB_SHOWDROPDOWN, 1, ByVal 0&)
End Sub

Exemplo da propriedade Image


Este exemplo desenha um crculo no primeiro controle PictureBox toda vez que voc clica nele. Quando voc clica na
segunda PictureBox, o elemento grfico da primeira PictureBox copiado nela. Para experimentar este exemplo, cole o

Funes Internas

414

cdigo na seo Declarations de um formulrio que contenha dois grandes controles PictureBox do mesmo tamanho.
Pressione F5 para executar o programa e, em seguida, clique nos controles PictureBox.
Private Sub Form_Load ()
' Configurar AutoRedraw como True.
Picture1.AutoReDraw = True
End Sub
Private Sub Picture1_Clic ()
' Declara variveis.
Dim PW, PH
' Configurar FillStyle como Solid.
Picture1.FillStyle = vbFSSolid
' Escolher a cor aleatria.
Picture1.FillColor = QBColor(Int(Rnd * 15))
PW = Picture1.ScaleWidth ' Configurar ScaleWidth.
PH = Picture1.ScaleHeight ' Configurar ScaleHeight.
' Desenhar um crculo em local aleatrio.
Picture1.Circle (Int(Rnd * PW), Int(Rnd * PH)), 250
End Sub
Private Sub Picture2_Clic ()
' Copiar Image para Picture2.
Picture2.Picture = Picture1.Image
End Sub

Exemplo da propriedade ItemData


Este exemplo preenche um controle ListBox com nomes de funcionrios e preenche a matriz de propriedades ItemData
com os nmeros dos funcionrios usando a propriedade NewIndex para manter os nmeros sincronizados com a lista
classificada. Um controle Label exibe o nome e nmero de um item, quando o usurio efetua uma seleo. Para
experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha uma ListBox e um Label.
Configure a propriedade Sorted para a ListBox como True e, em seguida, pressione F5 e clique na ListBox.
Private Sub Form_Load ()
' Preencher List1 e a matriz ItemData com
' os itens correspondentes em ordem classificada.
List1.AddItem "Judy Phelps"
List1.ItemData(List1.NewIndex) = 42310
List1.AddItem "Chien Lieu"
List1.ItemData(List1.NewIndex) = 52855
List1.AddItem "Mauro Sorrento"
List1.ItemData(List1.NewIndex) = 64932
List1.AddItem "Cynthia Bennet"
List1.ItemData(List1.NewIndex) = 39227
End Sub
Private Sub List1_Clic ()
' Anexar o nmero e o nome do funcionrio.
Msg = List1.ItemData(List1.ListIndex) & " "
Msg = Msg & List1.List(List1.ListIndex)
Label1.Caption = Msg
End Sub

Exemplo da propriedade eyPreview


Este exemplo cria um manipulador de teclado de formulrio no evento eyDown. Cada uma das quatro primeiras teclas de
funo exibe uma mensagem diferente. Para experimentar este exemplo cole o cdigo na seo Declarations de um
formulrio e, em seguida, pressione F5. Uma vez que o programa esteja em execuo, pressione qualquer uma das quatro
primeiras (F1 F4) teclas de funo.
Private Sub Form_Load ()
eyPreview = True
End Sub
Private Sub Form_eyDown (eyCode As Integer, Shift As Integer)
Select Case eyCode
Case vbeyF1: MsgBox "F1 is your friend."
Case vbeyF2: MsgBox "F2 could copy text."
Case vbeyF3: MsgBox "F3 could paste text."
Case vbeyF4: MsgBox "F4 could format text."
End Select
End Sub

Funes Internas

415

Exemplo das propriedades LargeChange, SmallChange


Este exemplo usa uma barra de rolagem para mover um controle PictureBox pelo formulrio. Para experimentar este
exemplo cole o cdigo na seo Declarations de um formulrio que contenha um pequeno controle PictureBox e um
controle HScrollBar e, em seguida, pressione F5 e clique na barra de rolagem.
Private Sub Form_Load ()
HScroll1.Max = 100 ' Configurar o valor mximo.
HScroll1.LargeChange = 20
' Cruzar em 5 cliques.
HScroll1.SmallChange = 5 ' Cruzar em 20 cliques.
Picture1.Left = 0 ' Iniciar a figura esquerda.
Picture1.BacColor = QBColor(3)
' Configura a cor da caixa de figura.
End Sub
Private Sub HScroll1_Change ()
' Mover a figura de acordo com a barra de rolagem.
Picture1.Left = (HScroll1.Value / 100) * ScaleWidth
End Sub

Exemplo das propriedades LinItem, LinMode, LinTopic


No exemplo, cada clique de mouse faz com que uma clula em uma planilha do Microsoft Excel atualize o contedo de um
controle TextBox do Visual Basic. Para experimentar este exemplo, inicie o Microsoft Excel, abra uma nova planilha
chamada Sheet1 e coloque alguns dados na primeira coluna. No Visual Basic, crie um formulrio contendo um controle
TextBox. Cole o cdigo na seo Declarations e, em seguida, pressione F5 para executar o programa.
Private Sub Form_Clic ()
Dim CurRow As String
Static Row ' Nmero de linha da planilha.
Row = Row + 1 ' Incrementar Row.
If Row = 1 Then ' Somente na primeira vez.
' Certificar-se de que o vnculo no est ativo.
Text1.LinMode = 0
' Configurar o nome do aplicativo e o nome do tpico.
Text1.LinTopic = "Excel|Sheet1"
Text1.LinItem = "R1C1"
' Configurar LinItem.
Text1.LinMode = 1
' Configurar LinMode como Automatic.
Else
' Atualizar a linha no item de dados.
CurRow = "R" & Row & "C1"
Text1.LinItem = CurRow ' Configurar LinItem.
End If
End Sub

Funes Internas

416

Propriedade GridLineWidth
Retorna ou configura a largura em pixels das linhas de grade para um controle MSFlexGrid.
Sintaxe
object.GridLineWidth [= value]
A sintaxe da propriedade GridLineWidth tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro especificando a largura da linha de grade.
A configurao mnima 1 (padro); a configurao mxima
10.

Propriedade LinTopic
Para um controle de destino retorna ou configura o aplicativo de origem e o tpico (o agrupamento de dados
fundamentais usados naquele aplicativo). Use LinTopic com a propriedade LinItem para especificar o vnculo de dados
completo.
Para um formulrio de origem retorna ou configura o tpico ao qual o formulrio de origem responde em uma
conversao DDE.
Sintaxe
object.LinTopic [= value]
A sintaxe da propriedade LinTopic tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso de seqncia de caracteres especificando um
elemento de sintaxe DDE.
Comentrios
A propriedade LinTopic consiste em uma seqncia de caracteres que fornece parte das informaes necessrias para
configurar um vnculo de destino ou vnculo de origem. A seqncia de caracteres que voc usa depende se voc est
trabalhando com um controle de destino ou um formulrio de origem. Cada seqncia de caracteres corresponde a um ou
mais elementos da sintaxe DDE padro que inclui application, topic e item.
Observao: Embora a definio padro de um vnculo DDE inclua os elementos application, topic e item, a sintaxe
efetiva usada em aplicativos para um vnculo de destino a um aplicativo de origem pode variar ligeiramente. Por exemplo,
no Microsoft Excel, voc usa a sintaxe:
application|topic!item
Dentro do Microsoft Word for Windows, voc usa:
application topic item
(No utilize o caractere de ligao [|] ou ponto de exclamao [!].)
Dentro de um aplicativo do Visual Basic, voc usa:
application|topic
O ponto de exclamao para topic est implcito.

Destination Control Para configurar LinTopic para um controle de destino, use uma seqncia de caracteres com a
sintaxe application|topic como segue:
application o nome do aplicativo de onde os dados so solicitados, normalmente o nome de arquivo executvel, sem um
extenso por exemplo, Excel (para o Microsoft Excel).
O caractere de ligao (|, ou cdigo de caractere 124) separa o aplicativo do tpico.
topic o dado fundamental de agrupamento usado no aplicativo de origem por exemplo, uma planilha no Microsoft
Excel.
Alm disso, somente para um controle de destino, voc deve configurar a propriedade LinItem relacionada para especificar
o elemento item para o vnculo. Uma referncia de clula como, por exemplo, R1C1, corresponde a um item em uma
planilha do Microsoft Excel.
Formulrio de origem Para configurar LinTopic de um formulrio de origem, configure value como um identificador
adequado para o formulrio. Um aplicativo de destino usa esta seqncia de caracteres como argumento topic ao
estabelecer um vnculo DDE com o formulrio. Embora esta seqncia de caracteres seja tudo o que voc precisa para
configurar LinTopic no Visual Basic para um formulrio de origem, o aplicativo de destino tambm precisa especificar:
O elemento application que o aplicativo de destino utiliza, que o nome de arquivo do projeto do Visual Basic sem a
extenso .vbp (se voc estiver executando seu aplicativo no ambiente de desenvolvimento do Visual Basic) ou o nome de
arquivo do aplicativo do Visual Basic sem a extenso .exe (se voc estiver executando seu aplicativo como um arquivo
executvel autnomo). A propriedade EXEName do objeto App oferece esta seqncia de caracteres em seu cdigo do
Visual Basic, a menos que o nome de arquivo tenha sido alterado pelo usurio. (EXEName sempre retorna o verdadeiro
nome de arquivo do aplicativo em disco; DDE sempre utiliza o nome original que foi especificado na caixa de dilogo
Project Properties.)
O elemento item que utilizado pelo aplicativo de destino, que corresponde configurao da propriedade Name para o
controle Label, PictureBox ou TextBox no formulrio de origem.

Funes Internas

417

A sintaxe abaixo um exemplo de uma referncia vlida do Microsoft Excel a um aplicativo do Visual Basic funcionando
como origem:
=VizBasicApplication|FormN!TextBox1
Voc poderia inserir esta referncia a uma clula de destino na barra de frmulas do Microsoft Excel.
Para ativar o vnculo de dados configurado com LinTopic, configure a propriedade LinMode como o valor no-zero
adequado para especificar o tipo de vnculo desejado. Como regra geral, configure LinMode aps voc ter configurado
LinTopic. Para um controle de destino, alterar LinTopic quebra um vnculo existente e encerra a conversao DDE. Para
um formulrio de origem, alterar LinTopic quebra todos os vnculos de destino que estejam usando este tpico. Por estes
motivos, sempre configure a propriedade LinMode como 0 antes de alterar LinTopic. Aps alterar LinTopic para um
controle de destino, voc deve configurar LinMode como 1 (Automatic), 2 (Manual) ou 3 (Notify) para estabelecer uma
conversao com o novo tpico.
Observao: Configurar um vnculo de dados permanente durante o tempo de criao com o comando Paste Lin no
menu Edit tambm configura as propriedades LinMode, LinTopic e LinItem. Isto cria um vnculo que salvo com o
formulrio. Cada vez que o formulrio carregado, o Visual Basic tenta restabelecer a conversao.

Propriedades Max e Min (Barra de rolagem)


Max retorna ou configura a propriedade Value mxima da posio de uma caixa de rolagem quando ela est na

extremidade inferior ou na extremidade superior. Para o controle ProgressBar, ele retorna ou configura seu valor mximo.
Min retorna ou configura a propriedade Value mnima quando a caixa de rolagem est na extremidade superior ou

inferior. Para o controle ProgressBar, ele retorna ou configura seu valor mnimo.
Sintaxe
object.Max [= value]
object.Min [= value]
As sintaxes das propriedades Max e Min tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso numrica especificando a configurao
mxima ou mnima da propriedade Value, conforme descrito
em Configuraes.
Configuraes
Para cada propriedade, voc pode especificar um nmero inteiro entre -32.768 e 32.767, inclusive. As configuraes padro
so:
Max 32.767.
Min 0.
Comentrios
O ambiente operacional do Microsoft Windows automaticamente configura intervalos para barras de rolagem proporcionais
ao contedo de formulrios, controles ComboBox e controles ListBox. Para um controle de barra de rolagem (HScrollBar
ou VScrollBar), entretanto, voc deve especificar estes intervalos. Use Max e Min para configurar um intervalo adequado
para o modo como o controle de barra de rolagem usado por exemplo, como dispositivo de entrada ou como um
indicador de velocidade ou quantidade.
De maneira tpica, voc configura Max e Min durante o tempo de criao. Voc tambm pode configur-los em cdigo
durante o tempo de execuo se o intervalo de rolagem precisar ser alterado de maneira dinmica por exemplo, ao
adicionar registros a um banco de dados que pode ser inteiramente rolado. Voc configura os incrementos de rolagem
mximos e mnimos para um controle de barra de rolagem atravs das propriedades LargeChange e SmallChange.
Observao:
Se Max for configurado como menor que Min, o valor mximo configurado como a posio da
extremidade esquerda ou extremidade superior, respectivamente, de uma barra de rolagem horizontal ou vertical. A
propriedade Max de um controle ProgressBar deve ser sempre maior que sua propriedade Min, e sua propriedade Min
deve ser sempre maior que ou igual a 0.
As propriedades Max e Min definem o intervalo do controle. A propriedade Min do controle ProgressBar 0 e, como
padro, sua propriedade Max 100, representando a porcentagem de durao da operao.

Propriedade MaxLength
Retorna ou configura um valor indicando se existe um nmero mximo de caracteres que podem ser inseridos no controle
TextBox e, se for o caso, especifica o nmero mximo de caracteres que podem ser inseridos.
Observao: Em sistemas DBCS (conjunto de caracteres de byte duplo), cada caractere pode ocupar dois bytes ao invs
de apenas um, o que limita o nmero de caracteres que podem ser inseridos.
Sintaxe
object.MaxLength [= value]
A sintaxe da propriedade MaxLength tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro especificando o nmero mximo de
caracteres que um usurio pode inserir em um controle
Funes Internas

418

TextBox. O padro para a propriedade MaxLength 0,


indicando nenhum mximo diferente daquele criado pelas
restries de memria no sistema do usurio para controles
TextBox de linha nica e um mximo de aproximadamente 32
para controles TextBox de linhas mltiplas. Qualquer nmero
superior a 0 indica o nmero mximo de caracteres.
Comentrios
Use a propriedade MaxLength para limitar o nmero de caracteres que podem ser inseridos pelo usurio em uma
TextBox.
Se o texto que excede configurao da propriedade MaxLength for atribudo a uma TextBox a partir de cdigo, nenhum
erro ocorre; mas, somente o nmero mximo de caracteres atribudo propriedade Text, e os caracteres extras so
truncados. A alterao desta propriedade no afeta o contedo atual de uma TextBox, mas afetar quaisquer alteraes
subseqentes do contedo.

Propriedade MDIChild
Retorna ou configura um valor indicando se um formulrio exibido como formulrio MDI filho dentro de um formulrio MDI.
Somente leitura durante o tempo de execuo.
Sintaxe
object.MDIChild
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
A configurao da propriedade MDIChild so:
Configurao
Descrio
True
O formulrio um formulrio MDI filho e exibido dentro do
formulrio MDI pai.
False
(Padro) O formulrio no um formulrio MDI filho.

Comentrios
Use esta propriedade ao criar um aplicativo de interface de documentos mltiplos (MDI). Durante o tempo de execuo, os
formulrios com esta propriedade configurada como True so exibidos em um formulrio MDI. Um formulrio MDI filho pode
ser maximizado, minimizado ou movido, tudo isto dentro do formulrio MDI pai.
Ao trabalhar com formulrios MDI filho, tenha em mente o seguinte:
Durante o tempo de execuo, quando um formulrio MDI filho maximizado, sua legenda combinada com aquela do
formulrio MDI pai.
Durante o tempo de criao, um formulrio MDI filho exibido como qualquer outro formulrio, pois ele exibido dentro de
formulrio pai durante o tempo de execuo. O cone de um formulrio MDI filho na janela Project diferente de cones de
outros tipos de formulrios.
Formulrios MDI filho no podem ser de janela restrita.
O tamanho inicial e posicionamento de formulrios MDI filho so controlados pelo ambiente operacional do Microsoft
Windows, a menos que voc especificamente os configure no procedimento de evento Load.
Se um formulrio MDI filho referido antes que o pai seja carregado, o formulrio MDI pai automaticamente carregado.
Entretanto, se o formulrio MDI pai for referido antes de carregar um formulrio MDI filho, o formulrio filho no
carregado.
Observao: Todos os formulrios MDI filho tm bordas dimensionveis, uma caixa de menu de controle e botes
Minimize e Maximize, independente da configurao das propriedades BorderStyle, ControlBox, MinButton, e
MaxButton.
Qualquer referncia a um objeto MDIForm, incluindo a leitura e configurao de propriedades, provoca a carga do
formulrio e este se torna visvel.

Funes Internas

419

Propriedade MouseIcon
Retorna ou configura um cone de mouse personalizado.
Sintaxe
object.MouseIcon = LoadPicture(pathname)
object.MouseIcon [= picture]
A sintaxe da propriedade MouseIcon tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
pathname
Uma expresso de seqncia de caracteres especificando o
caminho e nome de arquivo do arquivo contendo o cone
personalizado.
picture
A propriedade Picture de um objeto Form, controle PictureBox
ou controle Image.
Comentrios
A propriedade MouseIcon oferece um cone personalizado que usado quando a propriedade MousePointer
configurada como 99.
Embora o Visual Basic no crie ou suporte arquivos de cursores coloridos (.cur) como, por exemplo, aqueles que
acompanham o Windows NT, voc pode usar a propriedade MouseIcon para carregar arquivos de cone ou de cursor. Os
arquivos de cursor colorido como, por exemplo, aqueles que acompanham o Windows NT 3.51 so exibidos em preto e
branco. Para exibir um cursor colorido, use o arquivo de cone colorido (.ico). A propriedade MouseIcon oferece a seu
programa um fcil acesso a cursores personalizados de qualquer tamanho, com qualquer localizao desejada de ponto de
acesso. O Visual Basic no carrega arquivos de cursor animado, embora as verses de 32 bits do Windows suportem estes
cursores.

Propriedade MousePointer
Retorna ou configura um valor indicando o tipo de ponteiro de mouse exibido quando o mouse est sobre uma determinada
parte de um objeto durante o tempo de execuo.
Sintaxe
object.MousePointer [= value]
A sintaxe da propriedade MousePointer tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro especificando o tipo de ponteiro de mouse
exibido, conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
Valor
vbDefault
0
VbArrow
1
VbCrosshair
2
VbIbeam
3
VbIconPointer
4
VbSizePointer

VbSizeNESW

VbSizeNS

VbSizeNWSE

VbSizeWE

VbUpArrow
VbHourglass
VbNoDrop
VbArrowHourglass
vbArrowQuestion
vbSizeAll
vbCustom

10
11
12
13
14
15
99

Descrio
(Padro) Forma determinada pelo objeto.
Seta.
Cruz (ponteiro em forma de cruz).
Ponteiro em forma de I.
cone (Pequeno quadrado dentro de um
quadrado).
Dimensionar (seta de quatro pontas nas
direes norte, sul, leste e oeste).
Dimensionar NE SW (seta dupla apontando para
nordeste e sudoeste).
Dimensionar N S (seta dupla apontando para o
norte e sul).
Dimensionar NW SE (seta dupla apontando para
noroeste e sudeste).
Dimensionar W E (seta dupla apontando para
leste e oeste).
Seta para cima.
Ampulheta (espera).
No soltar.
Seta e ampulheta.
Seta e ponto de interrogao.
Dimensionar tudo.
cone
personalizado
especificada
pela
propriedade MouseIcon.

Comentrios
Voc pode usar esta propriedade quando deseja indicar alteraes no funcionamento medida que o ponteiro do mouse
passa sobre controles em um formulrio ou caixa de dilogo. A configurao de ampulheta (11) til para indicar que o
usurio deve aguardar que um processo ou operao termine.

Funes Internas

420

Observao: Se o seu aplicativo chama DoEvents, a propriedade MousePointer pode se alterar temporariamente quando
se encontra sobre um componente ActiveX.

Propriedade MultiLine
Retorna ou configura um valor indicando se um controle TextBox pode aceitar e exibir linhas de texto mltiplas. Somente
leitura durante o tempo de execuo.
Sintaxe
object.MultiLine
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes da propriedade MultiLine so:
Configurao
Descrio
True
Permite mltiplas linhas de texto.
False
(Padro) Ignora mudanas de linha e restringe os dados a
uma nica linha.
Comentrios
Um controle TextBox de linhas mltiplas quebra as linhas de texto, medida que o usurio digita o texto que se estende
alm da caixa de texto.
Voc tambm pode adicionar barras de rolagem a controles TextBox maiores usando a propriedade ScrollBars. Se
nenhuma barra de rolagem horizontal for especificada, o texto em uma TextBox de linhas mltiplas muda automaticamente
de linha.
Observao: Em um formulrio que no tenha nenhum boto padro, o pressionamento de ENTER em um controle
TextBox de linhas mltiplas move o foco para a linha seguinte. Se existir um boto padro, voc deve pressionar
CTRL+ENTER para mover-se at a linha seguinte.

Funes Internas

421

Propriedade MultiSelect
Retorna ou configura um valor indicando se um usurio pode efetuar selees mltiplas em um controle FileListBox ou
ListBox e como as selees mltiplas podem ser feitas. Somente leitura durante o tempo de execuo.
Sintaxe
object.MultiSelect
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes da propriedade MultiSelect so:
Configurao
Descrio
0
(Padro) No permitida mltipla seleo.
1
Seleo mltipla simples. Um clique de mouse ou o
pressionamento da BARRA DE ESPAOS seleciona ou anula a
seleo de um item da lista. (Teclas de direo movem o foco.)
2
Seleo mltipla ampliada. O pressionamento de SHIFT e o
clique do mouse, ou o pressionamento de SHIFT e uma das
teclas de direo (SETA ACIMA, SETA ABAIXO, SETA ESQUERDA e
SETA DIREITA) ampliam a seleo, do item anteriormente
selecionado at o item atual. O pressionamento de CRL e o
clique do mouse selecionam ou anulam a seleo de um item
da lista.

Propriedade NewIndex
Retorna o ndice do item mais recentemente adicionado a um controle ComboBox ou ListBox. Somente leitura durante o
tempo de execuo.
Sintaxe
object.NewIndex
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Voc pode usar esta propriedade com listas classificadas quando precisa de uma lista de valores que correspondem a cada
item na matriz de propriedades ItemData. medida que voc adiciona um item a uma lista classificada, o Visual Basic
insere o item na lista em ordem alfabtica. Esta propriedade lhe informa onde o item foi inserido, de modo que voc possa
inserir um valor correspondente na propriedade ItemData no mesmo ndice.
A propriedade NewIndex retorna -1 se no existirem itens na lista ou se um item tiver sido excludo, desde que o ltimo
item foi adicionado.

Funes Internas

422

Propriedade Orientation
Retorna ou configura um valor indicando se os documentos so impressos em modo retrato ou paisagem. No est
disponvel durante o tempo de criao.
Sintaxe
object.Orientation [= value]
A sintaxe da propriedade Orientation tem estas partes:
Parte
Descrio
Object
Value

Uma expresso de objeto que avalia para um objeto na lista


Applies To.
Um valor ou constante que determina a orientao da pgina,
conforme descrito em Configuraes.

Configuraes
As configuraes de value so:
Constante
Valor
vbPRORPortrait
1
vbPRORLandscape

Descrio
Os documentos so impressos com a parte
superior no lado estreito do papel.
Os documentos so impressos com sua parte
superior no lado largo do papel.

Comentrios
Estas constantes so listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Observao: O efeito das propriedades do objeto Printer depende do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedades podem no ter qualquer efeito, ou diversas configuraes de propriedades podem
ter todas o mesmo efeito. As configuraes fora do intervalo aceitvel podem ou no produzir um erro. Para maiores
informaes, consulte a documentao do fabricante do driver especfico.

Propriedade Page
Retorna o nmero de pgina atual.
Sintaxe
object.Page
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O Visual Basic mantm uma contagem de pginas que foram impressas desde que seu aplicativo iniciou ou desde a ltima
vez em que a instruo EndDoc foi utilizada no objeto Printer. Esta contagem inicia-se em um e incrementada em um se:
Voc usa o mtodo NewPage.
Voc usa o mtodo Print e o texto que deseja imprimir no se ajusta pgina atual.
Observao: Resultados de mtodos grficos que no se ajustem pgina no geram uma nova pgina. O resultado
recortado para ajustar-se rea de impresso da pgina.

Funes Internas

423

Propriedade PaperBin
Retorna ou configura um valor indicando que a bandeja padro de papel na impressora de onde o papel alimentado
durante a impresso. No est disponvel durante o tempo de criao.
Sintaxe
object.PaperBin [= value]
A sintaxe da propriedade PaperBin tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um valor ou constante especificando a bandeja padro de
papel, conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
vbPRBNUpper
VbPRBNLower
VbPRBNMiddle
VbPRBNManual

Valor
1
2
3
4

VbPRBNEnvelope

VbPRBNEnvManual

VbPRBNAuto

VbPRBNTractor

VbPRBNSmallFmt

VbPRBNLargeFmt
VbPRBNLargeCapacity

10
11

VbPRBNCassette

14

Descrio
Usa papel da bandeja superior.
Usa papel da bandeja inferior.
Usa papel da bandeja central.
Aguarda a insero manual de cada folha
de papel.
Usa envelopes do alimentador de
envelopes.
Usa envelopes do alimentador de
envelopes, mas aguarda a insero
manual.
(Padro) Usa papel da bandeja padro
atual.
Usa papel alimentado do alimentador por
trao.
Usa papel do alimentador de papel
pequeno.
Usa papel da bandeja de papel grande.
Usa papel do alimentador de grande
capacidade.
Usa papel do cartucho acoplado.

Comentrios
Estas constantes esto listada na biblioteca de objetos Visual Basic (VB) no Object Browser.
Nem todas as opes de bandeja esto disponveis em todas as impressoras. Verifique a documentao da impressora
para descries mais especficas destas opes.
Observao: O efeito das propriedades do objeto Printer depende do driver fornecido pelo fabricante da impressora.
Algumas configuraes de impressora podem no ter efeito algum, ou diversas configuraes de propriedades diferentes
podem ter todas o mesmo efeito. As configuraes fora do intervalo aceito podem ou no produzir um erro. Para maiores
informaes, consulte a documentao do fabricante do driver especfico.

Funes Internas

424

Propriedade PaperSize
Retorna ou configura um valor indicando o tamanho do papel para a impressora atual. No est disponvel durante o tempo
de criao.
Sintaxe
object.PaperSize [= value]
A sintaxe da propriedade PaperSize tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um valor ou constante especificando o tamanho do papel,
conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante

Valor

Descrio

vbPRPSLetter
vbPRPSLetterSmall
vbPRPSTabloid
vbPRPSLedger
vbPRPSLegal
vbPRPSStatement
vbPRPSExecutive
vbPRPSA3
vbPRPSA4
vbPRPSA4Small
vbPRPSA5
vbPRPSB4
vbPRPSB5
vbPRPSFolio
vbPRPSQuarto
vbPRPS10x14
vbPRPS11x17
vbPRPSNote
vbPRPSEnv9
vbPRPSEnv10
vbPRPSEnv11
vbPRPSEnv12
vbPRPSEnv14
vbPRPSCSheet
vbPRPSDSheet
vbPRPSESheet
vbPRPSEnvDL
vbPRPSEnvC3
vbPRPSEnvC4
vbPRPSEnvC5
vbPRPSEnvC6
vbPRPSEnvC65
vbPRPSEnvB4
vbPRPSEnvB5
vbPRPSEnvB6
vbPRPSEnvItaly
vbPRPSEnvMonarch
vbPRPSEnvPersonal
vbPRPSFanfoldUS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
29
30
28
31
32
33
34
35
36
37
38
39

vbPRPSFanfoldStdGerman

40

vbPRPSFanfoldLglGerman

41

vbPRPSUser

256

Carta, 8 1/2 x 11 pol.


Carta pequeno, 8 1/2 x 11 pol.
Tablide, 11 x 17 pol.
Ficha contbil, 17 x 11 pol.
Ofcio, 8 1/2 x 14 pol.
Declarao, 5 1/2 x 8 1/2 pol.
Executivo, 7 1/2 x 10 1/2 pol.
A3, 297 x 420 mm
A4, 210 x 297 mm
A4 Pequeno, 210 x 297 mm
A5, 148 x 210 mm
B4, 250 x 354 mm
B5, 182 x 257 mm
Folio, 8 1/2 x 13 pol.
Quarto, 215 x 275 mm
10 x 14 pol.
11 x 17 pol.
Nota, 8 1/2 x 11 pol.
Envelope #9, 3 7/8 x 8 7/8 pol.
Envelope #10, 4 1/8 x 9 1/2 pol.
Envelope #11, 4 1/2 x 10 3/8 pol.
Envelope #12, 4 1/2 x 11 pol.
Envelope #14, 5 x 11 1/2 pol.
Folha tamanho C
Folha tamanho D
Folha tamanho E
Envelope DL, 110 x 220 mm
Envelope C3, 324 x 458 mm
Envelope C4, 229 x 324 mm
Envelope C5, 162 x 229 mm
Envelope C6, 114 x 162 mm
Envelope C65, 114 x 229 mm
Envelope B4, 250 x 353 mm
Envelope B5, 176 x 250 mm
Envelope B6, 176 x 125 mm
Envelope, 110 x 230 mm
Envelope Monarch, 3 7/8 x 7 1/2 pol.
Envelope, 3 5/8 x 6 1/2 pol.
Formulrio contnuo padro americano, 14
7/8 x 11 pol.
Formulrio contnuo padro alemo, 8 1/2 x
12 pol.
Formulrio contnuo ofcio alemo, 8 1/2 x
13 pol.
Definido pelo usurio

Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Configurar a propriedade Height ou Width de uma impressora, configura automaticamente PaperSize como vbPRPSUser.
Observao: O efeito das propriedades do objeto Printer dependem do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedades podem no ter efeito algum, ou diversas configuraes diferentes podem ter todas
o mesmo efeito. As configuraes fora do intervalo aceito podem ou no produzir um erro. Para maiores informaes,
consulte a documentao do fabricante para o driver especfico.

Funes Internas

425

Propriedade PasswordChar
Retorna ou configura um valor indicando se os caracteres digitados por um usurio ou caracteres de espao reservado so
exibidos em um controle TextBox; retorna ou configura o caractere usado como espao reservado.
Sintaxe
object.PasswordChar [= value]
A sintaxe da propriedade PasswordChar tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso de seqncia de caracteres especificando o
caractere de espao reservado.
Comentrios
Use esta propriedade para criar um campo de senha em uma caixa de dilogo. Embora voc possa usar qualquer
caractere, a maioria dos aplicativos do Windows usam o asterisco (*) (Chr(42)).
Esta propriedade no afeta a propriedade Text; a propriedade Text contm exatamente o que o usurio digita ou o que foi
configurado a partir do cdigo. Configure PasswordChar como uma seqncia de caracteres de comprimento zero (""), que
o padro, para exibir o texto efetivo.
Voc pode atribuir qualquer seqncia de caracteres a esta propriedade, mas somente o primeiro caracteres significativo;
todos os outros so ignorados.
Observao: Se a propriedade MultiLine for configurada como True, a configurao da propriedade PasswordChar no
surtir qualquer efeito.

Propriedade Pattern
Retorna ou configura um valor indicando os nomes de arquivo exibidos em um controle FileListBox durante o tempo de
execuo.
Sintaxe
object.Pattern [= value]
A sintaxe da propriedade Pattern tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso de seqncia de caracteres indicando uma
especificao de arquivo, por exemplo "*.*" ou "*.FRM". O
padro "*.*", que retorna uma lista de todos os arquivos.
Alm de usar caracteres curinga, voc tambm pode usar
padres mltiplos separados por ponto e vrgula (;). Por
exemplo, "*.exe; *.bat" retornariam uma lista de todo os
arquivos executveis e todos os arquivos de lote MS-DOS.
Comentrios
A propriedade Pattern desempenha um papel fundamental na criao de recursos de manipulao e procura de arquivos
de um aplicativo. Use Pattern em combinao com outras propriedades de controle de arquivos para oferecer ao usurio
maneiras de explorar arquivos ou grupos de arquivos semelhantes. Por exemplo, em um aplicativo dedicado ao
acionamento de outros programas, voc poderia designar que somente arquivos .exe sejam exibidos na caixa de listagem
de arquivos (*.exe). Outras propriedades-chave de controle de arquivo incluem Drive, FileName e Path.
Alterar o valor da propriedade Pattern gera um evento PatternChange.

Propriedade Port
Retorna o nome da porta atravs da qual o documento enviado impressora.
Sintaxe
object.Port
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O sistema operacional determina o nome da porta, por exemplo LPT1: ou LPT2:.
Observao: O efeito das propriedades do objeto Printer dependem do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedades podem no ter efeito algum, ou diversas configuraes de propriedades diferente
podem ter todas o mesmo efeito. As configuraes fora do intervalo aceito, podem ou no produzir um erro. Para maiores
informaes, consulte a documentao do fabricante do driver especfico.

Funes Internas

426

Propriedade PrevInstance
Retorna um valor indicando se uma ocorrncia anterior de um aplicativo j est sendo executada.
Sintaxe
object.PrevInstance
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Voc pode usar esta propriedade em um procedimento de evento Load para especificar se um usurio j est executando
uma ocorrncia de um aplicativo. Dependendo do aplicativo, voc pode querer que apenas uma ocorrncia em execuo
no ambiente operacional do Microsoft Windows a cada vez.

Propriedade PrintQuality
Retorna ou configura um valor indicando a resoluo da impressora. No est disponvel durante o tempo de criao.
Sintaxe
object.PrintQuality [= value]
A sintaxe da propriedade PrintQuality tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um valor ou constante especificando a resoluo da
impressora, conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
Valor
vbPRPQDraft
-1
vbPRPQLow
-2
vbPRPQMedium
-3
vbPRPQHigh
-4

Descrio
Resoluo rascunho
Baixa resoluo
Resoluo mdia
Alta resoluo

Alm dos valores negativos predefinidos, voc tambm pode configurar value como um valor positivo de pontos por
polegada (dpi), por exemplo, 300.
Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
O valor padro depende do driver da impressora e das configuraes atuais da impressora. O efeito destas configuraes
variam entre impressoras e entre drivers de impressora. Em algumas impressoras, algumas ou todas as configuraes
podem produzir o mesmo resultado.
Observao: O efeito das propriedades do objeto Printer dependem do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedades podem no ter efeito algum, e diversas configuraes de propriedades podem ter
todas o mesmo efeito. As configuraes fora do intervalo aceito podem ou no produzir um erro. Para maiores informaes,
consulte a documentao do fabricante do driver especfico.

Funes Internas

427

Propriedade RowHeight
Retorna ou configura a altura de todas as linhas no controle DBGrid. RowHeight sempre a mesma unidade de medida
que o recipiente do controle DBGrid.
Sintaxe
object.RowHeight[= value ]
A sintaxe da propriedade RowHeight tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso numrica especificando a altura.
Comentrios
Os usurios podem alterar RowHeight de qualquer linha durante o tempo de execuo, posicionando o ponteiro do mouse
em uma linha de grade entre linhas e arrastando.

Propriedades ScaleHeight e ScaleWidth


Retorna ou configura o nmero de unidades para as medidas horizontal (ScaleWidth) e vertical (ScaleHeight) do interior
de um objeto ao usar mtodos grficos ou ao posicionar controles. Para objetos MDIForm, no est disponvel durante o
tempo de criao e somente leitura durante o tempo de execuo.
Sintaxe
object.ScaleHeight [= value]
object.ScaleWidth [= value]
As sintaxes das propriedades ScaleHeight e ScaleWidth tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso numrica especificando a medida horizontal
ou vertical.
Comentrios
Voc pode usar estas propriedades para criar uma escala de coordenadas para desenho ou impresso. Por exemplo, a
instruo ScaleHeight = 100 altera as unidades de medida da altura interior efetiva do formulrio. Ao invs da altura ser n
unidades atuais (twips, pixels,...), a altura ser 100 unidades definidas pelo usurio. Portanto, uma distncia de 50 unidades
corresponde metade da altura/largura do objeto, e uma distncia de 101 unidades estar fora do objeto por 1 unidade.
Use a propriedade ScaleMode para definir uma escala com base em uma unidade padro de medida, por exemplo, twips,
pontos, pixels, caracteres, polegadas, milmetros ou centmetros.
A configurao destas propriedades como valores positivos efetua aumentos de coordenadas de cima para baixo e da
esquerda para a direita. Configur-los com valores negativos efetua os aumentos de coordenadas de baixo para cima e da
direita para a esquerda.
Usando estas propriedades e as propriedades ScaleLeft e ScaleTop relacionadas, voc pode configurar um sistema
completo de coordenadas como coordenadas positivas e negativas. Todas as quatro destas propriedades Scale interagem
com a propriedade ScaleMode das seguintes formas:
Configurar qualquer outra propriedade Scale como qualquer valor configura automaticamente ScaleMode como 0. Uma
ScaleMode de 0 definida pelo usurio.
Configurar ScaleMode como um nmero maior que 0 altera ScaleHeight e ScaleWidth como a nova unidade de medida e
configura ScaleLeft e ScaleTop como 0. Alm disso, as configuraes CurrentX e CurrentY alteram-se para refletir as
novas coordenadas do ponto atual.
Voc tambm pode usar o mtodo Scale para configurar as propriedades ScaleHeight, ScaleWidth, ScaleLeft e ScaleTop
em uma instruo.
Observao: As propriedades ScaleHeight e ScaleWidth no so as mesmas que as propriedades Height e Width.
Para objetos MDIForm, ScaleHeight e ScaleWidth referem-se somente rea no coberta pelos controles PictureBox no
formulrio. Evite usar estas propriedades para dimensionar uma PictureBox no evento Resize de um MDIForm.

Propriedades ScaleLeft e ScaleTop


Retornam ou configuram as coordenadas horizontal (ScaleLeft) e vertical (ScaleTop) das bordas esquerda e superior de
um objeto ao usar mtodos grficos ou ao posicionar controles.
Sintaxe
object.ScaleLeft [= value]
object.ScaleTop [= value]
As sintaxes das propriedades ScaleLeft e ScaleTop tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso numrica especificando uma coordenada
horizontal ou vertical. O padro 0.
Comentrios

Funes Internas

428

Usando estas propriedade e as propriedades ScaleHeight e ScaleWidth relacionadas, voc pode configurar um sistema
completo de coordenadas com coordenadas positivas e negativas. Estas quatro propriedades Scale interagem com a
propriedade ScaleMode das seguintes formas:
Configurar qualquer outra propriedade Scale como qualquer valor configura automaticamente ScaleMode como 0. Um
ScaleMode de 0 definido pelo usurio.
Configurar a propriedade ScaleMode como um nmero maior que 0 altera ScaleHeight e ScaleWidth para a nova unidade
de medida, e configura ScaleLeft e ScaleTop como 0. As configuraes de propriedades CurrentX e CurrentY alteram-se
para refletir as novas coordenadas do ponto atual.
Voc tambm pode usar o mtodo Scale para configurar as propriedades ScaleHeight, ScaleWidth, ScaleLeft e ScaleTop
em uma instruo.
Observao: As propriedades ScaleLeft e ScaleTop no so as mesmas que as propriedades Left e Top.

Propriedade ScaleMode
Retorna ou configura um valor indicando a unidade de medida para coordenadas de um objeto ao usar mtodos grficos ou
ao posicionar controles.
Sintaxe
object.ScaleMode [= value]
A sintaxe da propriedade ScaleMode tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro especificando a unidade de medida,
conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
Configurao
vbUser
0

VbTwips

VbPoints
VbPixels

2
3

vbCharacters

VbInches
VbMillimeters
VbCentimeters

5
6
7

Descrio
Indica que uma ou mais das propriedades
ScaleHeight, ScaleWidth, ScaleLeft e
ScaleTop esto configuradas como valores
personalizados.
(Padro) Twip (1440 twips por polegada
lgica; 567 twips por centmetro lgico).
Ponto (72 pontos por polegada lgica).
Pixel (menor unidade de resoluo de
monitor ou impressora).
Caractere (horizontal = 120 twips por
unidade; vertical = 240 twips por unidade).
Polegada.
Milmetro.
Centmetro.

Comentrios
Usando as propriedades ScaleHeight, ScaleWidth, ScaleLeft e ScaleTop, voc pode criar um sistema de coordenadas
personalizado com coordenadas positivas e negativas. Estas quatro propriedades Scale interagem com a propriedade
ScaleMode das seguintes formas:
Configurar o valor de qualquer outra propriedade Scale como qualquer valor, configura automaticamente ScaleMode como
0. Uma ScaleMode de 0 definida pelo usurio.
Configurar a propriedade ScaleMode como um nmero maior que 0 altera ScaleHeight e ScaleWidth para a nova unidade
de medida e configura ScaleLeft e ScaleTop como 0. As configuraes de propriedades CurrentX e CurrentY alteram-se
para refletir as novas coordenadas do ponto atual.

Propriedade ScrollBars
Retorna ou configura um valor indicando se um objeto tem barras de rolagem horizontal ou vertical. Somente leitura durante
o tempo de execuo.
Sintaxe
object.ScrollBars
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
Para um objeto MDIForm, as configuraes da propriedade ScrollBars so:
Configurao
Descrio
True
(Padro) O formulrio tem uma barra de rolagem horizontal ou
vertical, ou ambas.
False
O formulrio no tem barra de rolagem.
Para um controle TextBox as configuraes de propriedades de ScrollBars so:
Constante
Configurao
Descrio

Funes Internas

429

vbSBNone
vbHorizontal
vbVertical
vbBoth

0
1
2
3

(Padro) Nenhuma
Horizontal
Vertical
Ambas

Comentrios
Para um controle TextBox com a configurao 1 (Horizontal), 2 (Vertical), ou 3 (Ambos), voc deve configurar a
propriedade MultiLine como True.
Durante o tempo de execuo, o ambiente operacional do Microsoft Windows implementa automaticamente uma interface
de teclado padro para permitir a navegao em controles TextBox com as teclas de direo (SETA ACIMA, SETA ABAIXO, SETA
ESQUERDA, e SETA DIREITA), as teclas HOME e END, e assim por diante.
Barras de rolagem somente so exibidas em um objeto se o seu contedo se estende para alm das bordas do objeto. Por
exemplo, em um objeto MDIForm, se parte de um formulrio filho estiver oculto atrs da borda do formulrio MDI pai, ser
exibida uma barra de rolagem horizontal (controle HScrollBar). De maneira semelhante, aparecer uma barra de rolagem
vertical em um controle TextBox quando ele no pode exibir todas as suas linhas de texto. Se ScrollBars for configurada
como False, o objeto no ter barras de rolagem, independente de seu contedo.

Propriedade SelCount
Retorna o nmero de itens selecionados em um controle ListBox.
Sintaxe
object.SelCount
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
A propriedade SelCount retorna 0 se nenhum item estiver selecionado. Caso contrrio, retorna o nmero de itens da lista
atualmente selecionada. Esta propriedade particularmente til quando usurios podem efetuar selees mltiplas.

Propriedade Selected
Retorna ou configura o status da seleo de um item em um controle FileListBox ou ListBox. Esta propriedade uma
matriz de valores Boolean com o mesmo nmero de itens que a propriedade List. No est disponvel durante o tempo de
criao.
Sintaxe
object.Selected(index) [= boolean]
A sintaxe da propriedade Selected tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
O nmero de ndice do item no controle.
Boolean
Uma expresso Booleana especificando se o item est
selecionado, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
O item est selecionado.
False
(Padro) O item no est selecionado.
Comentrios
Esta propriedade particularmente til quando os usurios podem efetuar selees mltiplas. Voc pode verificar
rapidamente quais itens esto selecionados em uma lista. Voc tambm pode usar esta propriedade para selecionar ou
anular a seleo de itens em uma lista a partir do cdigo.
Se a propriedade MultiSelect for configurada como 0, voc pode usar a propriedade ListIndex para obter o ndice do item
selecionado. Entretanto, em uma seleo mltipla, a propriedade ListIndex retorna o ndice do item contido no retngulo de
foco, esteja o item efetivamente selecionado ou no.
Se a propriedade Style de um controle ListBox for configurada como 1 (caixas de seleo), a propriedade Selected
retorna True somente para aqueles itens cujas caixas de seleo esto selecionadas. A propriedade Selected no
retornar True para estes itens que esto apenas realados.

Propriedades SelEndCol, SelStartCol, SelEndRow e SelStartRow


Retornam ou configuram a primeira ou ltima linha ou coluna de um intervalo de clulas. No esto disponveis durante o
tempo de criao.
SelEndCol a ltima coluna selecionada direita.
SelStartCol a primeira coluna selecionada esquerda.
SelEndRow a ltima linha selecionada.
SelStartRowA primeira linha selecionada.
Sintaxe
object.SelEndCol [= value ]
object.SelStartCol [= value]
object.SelEndRow [= value]
object.SelStartRow [= value]
As sintaxes das propriedades SelEndCol, SelStartCol, SelEndRow e SelStartRow tm estas partes:
Funes Internas

430

Parte
object
value

Descrio
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
Uma expresso numrica especificando a primeira ou a ltima
coluna ou linha.

Comentrios
Voc pode usar estas propriedades para selecionar uma rea especfica de um controle DBGrid a partir de cdigo ou
retornar em cdigo as dimenses de uma rea selecionada pelo usurio.
SelStartCol e SelStartRow juntos especificam a clula no canto superior esquerdo de um intervalo selecionado.
SelEndCol e SelEndRow especificam o canto inferior direito de um intervalo selecionado.
Para especificar uma clula sem mover a seleo atual, use as propriedades Col e Row.
O valor padro para SelStartCol e SelEndCol -1.

Funes Internas

431

Propriedades SelLength, SelStart e SelText


SelLength retorna ou configura o nmero de caracteres selecionados.
SelStart retorna ou configura o ponto inicial do texto selecionado; indica a posio do ponto de insero se nenhum

texto estiver realado.


SelText retorna ou configura a seqncia de caracteres contendo o texto atualmente selecionado; consiste em uma

seqncia de caracteres de comprimento zero ("") se nenhum caractere estiver realado.


Estas propriedades no esto disponveis durante o tempo de criao.
Sintaxe
object.SelLength [= number]
object.SelStart [= index]
object.SelText [= value]
As sintaxes das propriedades SelLength, SelStart e SelText tm estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica especificando o nmero de
caracteres selecionados. Para SelLength e SelStart, o
intervalo de configuraes vai de 0 at o comprimento do texto
o nmero total de caracteres na rea de edio de um
controle ComboBox ou TextBox.
index
Uma expresso numrica especificando o ponto inicial do
texto selecionado, conforme descrito em Configuraes.

value

Uma expresso de seqncia de caracteres contendo o texto


selecionado.

Comentrios
Use estas propriedades para tarefas do tipo configurar o ponto de insero, estabelecer um intervalo de insero,
selecionar subseqncias de caracteres em um controle, ou apagar texto. Usado em conjunto com o objeto Clipboard,
estas propriedades so teis para operaes de cpia, recorte e colagem.
Ao trabalhar com estas propriedades:
Configurar SelLength como menor que 0 provoca um erro durante o tempo de execuo.
Configurar SelStart como maior que o comprimento do texto configura a propriedade para o comprimento do texto
existente; alterar SelStart altera a seleo at um ponto de insero e configura SelLength como 0.
Configurar SelText como um novo valor, configura SelLength como 0 e substitui o texto selecionado pela nova seqncia
de caracteres.

Propriedade Shape
Retorna ou configura um valor indicando a aparncia de um controle Shape.
Sintaxe
object.Shape [= value]
A sintaxe da propriedade Shape tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Um nmero inteiro especificando a aparncia do controle,
conforme descrito em Configuraes.
Configuraes
As configuraes de value so:
Constante
vbShapeRectangle
vbShapeSquare
vbShapeOval
vbShapeCircle
VbShapeRoundedRectangle
VbShapeRoundedSquare

Configurao
0
1
2
3
4
5

Descrio
(Padro) Retngulo
Quadrado
Oval
Crculo
Retngulo arredondado
Quadrado arredondado

Propriedade Shortcut
Configura um valor que especifica uma tecla de atalho para um objeto Menu. No est disponvel durante o tempo de
execuo.
Comentrios
Use esta propriedade para oferecer atalhos de teclado para comandos de menu. Voc pode configurar esta propriedades
usando o Menu Editor. Para uma lista de teclas de atalho que voc pode usar, verifique a lista Shortcut no Menu Editor.

Funes Internas

432

Observao: Alm das teclas de atalho, voc tambm pode designar teclas de acesso a comandos, menus e controles
usando um E comercial (&) na configurao de propriedade Caption.

Propriedade Stretch
Retorna ou configura um valor indicando se um elemento grfico redimensionado para ajustar-se ao tamanho de um
controle Image.
Sintaxe
object.Stretch [= boolean]
A sintaxe da propriedade Stretch tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando se o elemento grfico
redimensionado, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
O elemento grfico redimensionado para ajustar-se ao
controle.
False
(Padro) O controle redimensionado para ajustar-se ao
grfico.
Comentrios
Se Stretch est configurada como True, o redimensionamento tambm redimensiona o elemento grfico nela contida.

Propriedade Style
Retorna ou configura um valor indicando o tipo de exibio e comportamento do controle. Somente leitura durante o tempo
de execuo.
Sintaxe
object.Style
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes de propriedades Style para os controles Checbox, CommandButton, e OptionButton so:
Constante
Valor
Descrio
vbButtonStandard
0
(Padro) Padro. O controle exibido como era
em verses anteriores do Visual Basic. Isto ,
um controle Checbox exibido como uma caixa
de seleo com um rtulo junto a ele, um
OptionButton como um boto de opo com
um rtulo junto a ele, e um CommandButton
como CommandButton padro sem um
elemento grfico associado.
vbButtonGraphical
1
Grfico. O controle exibido em estilo grfico.
Isto , um controle ChecBox exibido como um
boto do tipo CommandButton que permanece
pressionado
ou
solto
at
que
outro
OptionButton em seu grupo de opes seja
selecionado em um CommandButton exibido
como um CommandButton padro que
tambm pode ser exibido como um grfico
associado.
As configuraes de propriedades Style para o controle ComboBox so:
Constante
Valor
Descrio
vbComboDropDown
0
(Padro) Caixa de combinao drop-down.
Inclui uma listagem drop-down em uma caixa de
texto. O usurio pode selecionar na lista ou
digitar na caixa de texto.
vbComboSimple
1
Caixa de combinao simples. Inclui uma caixa
de texto e uma lista que no funciona como
drop-down. O usurio pode selecionar na lista
ou digitar na caixa de texto. O tamanho de uma
caixa de combinao Simple inclui tanto a parte
de lista quanto de edio. Como padro, uma
caixa de combinao Simple dimensionada,
de modo que nada da lista exibido. Aumente a

Funes Internas

433

vbComboDrop-DownList 2

propriedade Height para exibir mais da lista.


Lista drop-down. Este estilo permite apenas a
seleo na lista drop-down.

As configuraes das propriedades Style para o controle ListBox so:


Constante
Valor
Descrio
vbListBoxStandard
0
(Padro) Padro. O controle ListBox exibido
como foi em verses anteriores do Visual Basic;
isto , como uma lista de itens de texto.
vbListBoxChecbox
1
ChecBox. O controle ListBox exibido com
uma caixa de seleo junto a cada item de
texto. Mltiplos itens na ListBox podem ser
selecionados realando-se a caixa de seleo
ao lado dela.
Comentrios
Para o controle ComboBox, siga estas orientaes ao decidir qual configurao escolher:
Use a configurao 0 (Dropdown Combo) ou a configurao 1 (Simple Combo) para dar ao usurio uma lista de escolhas.
Qualquer um dos estilos permite ao usurio inserir uma alternativa na caixa de texto. A configurao 0 economiza espao
no formulrio pois a parte da lista se fecha quando o usurio seleciona um item.
Use a configurao 2 (Dropdown List) para exibir uma lista fixa de alternativas de onde o usurio pode selecionar. A parte
de lista se fecha quando o usurio seleciona um item.

Propriedade TabStop
Retorna ou configura um valor indicando se um usurio pode usar a tecla TAB para dar o foco a um objeto.
Sintaxe
object.TabStop [= boolean]
A sintaxe da propriedade TabStop tem estas trs partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando se o objeto uma
parada de tabulao, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
(Padro) Designa o objeto como uma parada de tabulao.
False
Salta o objeto quando o usurio est usando a tecla TAB,
embora o objeto ainda mantenha seu lugar na ordem de
tabulao efetiva, conforme determinado pela propriedade
TabIndex.
Comentrios
Esta propriedade lhe permite adicionar ou remover um controle da ordem de tabulao em um formulrio. Por exemplo, se
voc est usando um controle PictureBox para desenhar um grfico, configure sua propriedade TabStop como False,
assim o usurio no pode passar para PictureBox usando a tecla TAB.

Propriedade Title
Retorna ou configura o ttulo do aplicativo que exibido na Lista de Tarefas do Microsoft Windows. Se alterado durante o
tempo de execuo, as alteraes no so salvas com o aplicativo.
Sintaxe
object.Title [= value]
A sintaxe da propriedade Title tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso de seqncia de caracteres especificando o
ttulo do aplicativo. O comprimento mximo de value 40
caracteres. Em sistemas DBCS (conjunto de caracteres de byte
duplo), isto significa o comprimento mximo 40 bytes.
Comentrios
Esta propriedade est disponvel durante o tempo de criao na caixa de dilogo para o comando Project Properties no
menu Project.

Propriedade TopIndex
Retorna ou configura um valor que especifica qual item em um controle ComboBox, DirListBox, DriveListBox,
FileListBox ou ListBox est em exibio em primeiro plano. No est disponvel durante o tempo de criao.

Funes Internas

434

Sintaxe
object.TopIndex [= value]
A sintaxe da propriedade TopIndex tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
O nmero do item de lista que exibido em primeiro lugar. O
padro 0, ou o primeiro item da lista.
Comentrios
Use esta propriedade para rolar por um controle sem selecionar um item.
Se a propriedade Columns configurada como 0 para o controle ListBox, o item exibido em primeiro lugar, se existirem
itens suficientes abaixo dele para preencher a parte visvel da lista.
Se a configurao da propriedade Columns for maior que 0 para o controle ListBox, a coluna do item move-se para a
extremidade esquerda sem alterar sua posio dentro da coluna.

Funes Internas

435

Propriedades TwipsPerPixelX, TwipsPerPixelY


Retorna o nmero de twips por pixel para um objeto medido horizontalmente (TwipsPerPixelX) ou verticalmente
(TwipsPerPixelY).
Sintaxe
object.TwipsPerPixelX
object.TwipsPerPixelY
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Rotinas de API Windows geralmente exigem medidas em pixels. Voc pode usar estas propriedades para converter
rapidamente medidas sem alterar a configurao da propriedade ScaleMode de um objeto.

Propriedade WindowList
Retorna ou configura um valor que determina se um objeto Menu mantm uma lista das janelas MDI filho atuais em um
objeto MDIForm. Somente leitura durante o tempo de execuo.
Sintaxe
object.WindowList
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes da propriedade WindowList so:
Configurao
Descrio
True
O objeto Menu mantm uma lista de janelas abertas e exibe
uma marca de seleo junto janela ativa. Os usurios
podem clicar no nome da janela para ativar aquela janela.
False
(Padro) O Menu no mantm uma lista de janelas abertas.
Comentrios
Muitos aplicativos de interface de documento mltiplo (MDI) como, por exemplo, o Microsoft Excel e o Microsoft Word for
Windows, tm um menu Windows contendo uma lista de janelas MDI filhas abertas. Esta propriedade permite adicionar
esta funcionalidade a seu aplicativo.
Somente um objeto Menu em um formulrio tem sua propriedade WindowList configurada como True.
Quando voc seleciona a caixa de seleo WindowList no Menu Editor para um objeto Menu, a lista de janelas MDI filho
abertas para o menu que voc est criando exibida.

Funes Internas

436

Propriedade WindowState
Retorna ou configura um valor indicando o estado visual de uma janela de formulrio durante o tempo de execuo.
Sintaxe
object.WindowState [= value]
A sintaxe da propriedade WindowState tem estas partes:
Parte
Descrio
Object
value

Uma expresso de objeto que avalia para um objeto na lista


Applies To.
Um nmero inteiro especificando o estado do objeto, conforme
descrito em Configuraes.

Configuraes
As configuraes de value so:
Constante
Valor
vbNormal
0
VbMinimized
1
VbMaximized
2

Descrio
(Padro) Normal.
Minimizado (minimizado como cone)
Maximizado (ampliando at o tamanho
mximo)

Comentrios
Antes que um formulrio seja exibido, a propriedade WindowState sempre configurada como Normal (0), independente
de sua configurao inicial. Isto refletido nas configuraes de propriedades Height, Left, ScaleHeight, ScaleWidth, Top
e Width. Se um formulrio estiver oculto aps ter sido exibido, estas propriedades refletem o estado anterior at que o
formulrio seja novamente exibido, independente de qualquer alterao efetuada na propriedade WindowState neste meio
tempo.

Propriedade WordWrap
Retorna ou configura um valor indicando se um controle Label com sua propriedade AutoSize configurada como True
ampliada vertical ou horizontalmente para ajustar-se ao texto especificado em sua propriedade Caption.
Sintaxe
object.WordWrap [= boolean]
A sintaxe da propriedade WordWrap tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando se o Label se amplia
para ajustar ao texto, conforme descrito em Configuraes.
Configuraes
As configuraes de boolean so:
Configurao
Descrio
True
O texto muda de linha; o controle Label se amplia ou contrai
verticalmente para ajustar o texto e o tamanho fonte. O
tamanho horizontal no se altera.
False
(Padro) O texto no muda de linha; o Label se amplia ou
contrai horizontalmente para ajustar-se ao comprimento do
texto, e verticalmente para ajustar-se ao tamanho da fonte e
ao nmero de linhas.
Comentrios
Use esta propriedade para determinar como um controle Label exibe seu contedo. Por exemplo, um grfico que se altera
dinamicamente pode ter um Label contendo texto que tambm se altera. Para manter um tamanho horizontal constante
para o Label e permitir que o texto aumente e diminua, configure as propriedades WordWrap e AutoSize como True.
Se voc deseja que um controle Label se expanda somente horizontalmente, configure WordWrap como False. Se no
quiser que Label mude de tamanho, configure AutoSize como False.
Observao: Se AutoSize for configurada como False, o texto sempre muda de linha, independente do tamanho do
controle Label ou da configurao da propriedade WordWrap. Isto pode obscurecer uma parte do texto porque o Label
no se amplia em nenhuma direo.

Propriedades X1, Y1, X2, Y2


Retornam ou configuram as coordenadas do ponto inicial (X1, Y1) e do ponto final (X2, Y2) de um controle Line. As
coordenadas horizontais so X1 e X2; as coordenadas verticais so Y1 e Y2.
Sintaxe
object.X1 [= value]
object.Y1 [= value]
object.X2 [= value]
object.Y2 [= value]

Funes Internas

437

As sintaxes das propriedades X1, Y1, X2, e Y2 tm estas partes:


Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
value
Uma expresso numrica especificando uma coordenada.
Comentrios
Use estas propriedades para ampliar dinamicamente um controle Line de um ponto a outro durante o tempo de execuo.
Por exemplo, voc pode mostrar os relacionamentos entre os item em uma lista e itens em outra lista ou conecta pontos em
um mapa.

Exemplo da propriedade MaxLength


Este exemplo utiliza um valor numrico em um controle TextBox para limitar o comprimento de texto em outro controle
TextBox. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha dois
controles TextBox. Torne Text1 bastante grande e, em seguida, pressione F5. Digite um nmero em Text2 e texto em Text1.
Private Sub Text1_Change ()
Text1.MaxLength = Text2.Text
End Sub

Funes Internas

438

Exemplo da propriedade MDIChild


Este exemplo cria uma segunda ocorrncia de um formulrio MDI filho dentro de um objeto MDIForm. Para experimentar
este exemplo, configure a propriedade MDIChild como True em Form1 e, em seguida, crie um objeto MDIForm com o
comando Add MDI Form no menu Project. Cole o cdigo na seo Declarations do MDIForm e, em seguida, pressione F5
para executar o programa.
Private Sub MDIForm_Load ()
Dim NewForm As New Form1 ' Declarar novo formulrio.
NewForm.Show ' Exibir novo formulrio.
End Sub

Exemplo da propriedade MouseIcon


Este exemplo ilustra como a propriedade MouseIcon configura um cone de mouse personalizado. Para experimentar este
exemplo, crie um controle ListBox em um formulrio e, em seguida, configure a propriedade MultiSelect como 1 ou 2.
Durante o tempo de execuo, selecione um ou mais itens. cones diferentes aparecero, dependendo se voc selecionou
um nico item ou mltiplos itens.
Private Sub Form_Load ()
' Colocar alguns itens na ListBox.
List1.AddItem "Selection 1"
List1.AddItem "Selection 2"
List1.AddItem "Selection 3"
List1.AddItem "Selection 4"
List1.AddItem "Selection 5"
End Sub
Private Sub List1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
' Configurar o cone de mouse personalizado para itens mltiplos.
If List1.SelCount > 1 Then
List1.MouseIcon = LoadPicture("ICONS\COMPUTER\MOUSE04.ICO")
List1.MousePointer = 99
Else' Configurar o cone de mouse personalizado para um nico item.
List1.MouseIcon = LoadPicture("ICONS\COMPUTER\MOUSE02.ICO")
List1.MousePointer = 99
End If
End Sub

Exemplo da propriedade MousePointer


Este exemplo transforma o ponteiro do mouse em uma ampulheta, enquanto crculos so desenhados na tela e, em
seguida, altera a ampulheta de volta para um ponteiro ao final do procedimento. Para experimentar este exemplo cole o
cdigo na seo Declarations de um formulrio. Pressione F5 para executar o programa e, em seguida, clique no formulrio.
Private Sub Form_Clic ()
Dim I
' Declarar varivel.
' Alterar o ponteiro do mouse para uma ampulheta.
Screen.MousePointer = vbHourglass
' Configurar cores aleatrias e desenhar crculos no formulrio.
For I = 0 To ScaleWidth Step 50
ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Circle (I, ScaleHeight * Rnd), 400
Next
' Retornar o ponteiro do mouse ao normal.
Screen.MousePointer = vbDefault
End Sub

Funes Internas

439

Exemplo da propriedade MultiSelect


Este exemplo preenche um controle ListBox com os nomes de suas fontes de tela e ilustram como a propriedade
MultiSelect afeta o comportamento de um ListBox. Para experimentar este exemplo, crie dois controles ListBox em um
controle CommandButton em um formulrio. No primeiro ListBox, configure a propriedade MultiSelect como 1 ou 2.
Durante o tempo de execuo, selecione diversos itens no primeiro ListBox e, em seguida, clique no CommandButton.
Todos os itens selecionados so exibidos no segundo ListBox. Execute o exemplo diversas vezes com configuraes
diferentes da propriedade MultiSelect. Cole o cdigo na seo Declarations e, em seguida, pressione F5 para executar o
programa.
Private Sub Form_Load ()
Dim I
' Declara varivel.
' Preencher a caixa de listagem com nomes de fonte de tela.
For I = 0 To Screen.FontCount - 1
List1.AddItem Screen.Fonts(I)
Next I
End Sub
Private Sub Command1_Clic ()
Dim I
' Declarar varivel.
' Limpar todos os itens da lista.
List2.Clear
' Se um item estiver selecionado, adicione-o a List2.
For I = 0 To List1.ListCount - 1
If List1.Selected(I) Then
List2.AddItem List1.List(I)
End If
Next I
End Sub

Exemplo da propriedade Page


Este exemplo imprime trs pginas de texto com o nmero de pgina atual na parte superior de cada pgina. Para
experimentar este exemplo cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no
formulrio.
Private Sub Form_Clic ()
Dim Header, I, Y ' Declarar variveis.
Print "Now printing..." ' Colocar nota em formulrio.
Header = "Printing Demo-Page"
' Configurar a seqncia de caracteres de cabealho.
For I = 1 To 3
Printer.Print Header; ' Imprimir o cabealho.
Printer.Print Printer.Page ' Imprimir o nmero da pgina.
Y = Printer.CurrentY + 10 ' Configurar a posio para linha.
' Desenhar uma linha na pgina.
Printer.Line (0, Y) - (Printer.ScaleWidth, Y) ' Desenhar linha.
For = 1 To 50
Printer.Print String(, " "); ' Imprimir seqncia de caracteres de espaos.
Printer.Print "Visual Basic "; ' Imprimir texto.
Printer.Print Printer.Page ' Imprimir o nmero de pgina.
Next
Printer.NewPage
Next I
Printer.EndDoc
End
End Sub

Funes Internas

440

Exemplo da propriedade PasswordChar


Este exemplo ilustra como a propriedade PasswordChar afeta a maneira como um controle TextBox exibe texto. Para
experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um TextBox e, em
seguida, pressione F5 e clique no formulrio. Cada vez que voc clica no formulrio, o texto alterna entre um caractere de
senha asterisco (*) e texto normal.
Private Sub Form_Clic ()
If Text1.PasswordChar = "" Then
Text1.PasswordChar = "*"
Else
Text1.PasswordChar = ""
End If
End Sub

Exemplo da propriedade Pattern


Este exemplo atualiza um controle TextBox com o novo padro selecionado em um controle FileListBox. Os controles so
configurados de tal maneira que quando o usurio insere um padro no TextBox, por exemplo, *.txt, este refletido no
FileListBox, de maneira muito semelhante interao que voc v em uma caixa de dilogo File Open tpica em um
aplicativo do Windows. Se um caminho inteiro como, por exemplo, C:\Bin\*.exe for inserido no controle TextBox, o texto
automaticamente analisado em caminho e componentes padro pelo controle FileListBox. Para experimentar este
exemplo cole o cdigo na seo Declarations de um formulrio que contenha os seguintes controles: um DirListBox, um
FileListBox, um TextBox e um CommandButton. Pressione F5 e digite um padro de arquivo vlido no TextBox.
Private Sub Form_Load ()
Command1.Default = True ' Configurar a propriedade Default.
End Sub
Private Sub Command1_Clic ()
' O texto analisado nos componentes caminho e padro.
File1.Filename = Text1.Text
Dir1.Path = File1.Path ' Configurar caminho do diretrio.
End Sub
Private Sub File1_PatternChange ()
Text1.Text = File1.Pattern ' Configurar texto como novo padro.
End Sub
Private Sub Dir1_Change
File1.Path = Dir1.Path ' Configurar caminho da caixa de listagem de arquivos.
End Sub

Exemplo da propriedade Port


Este exemplo examina cada objeto Printer na coleo Printers para descobrir uma conectada a uma porta especfica e
torn-la a impressora padro.
Dim P As Object
For Each P In Printers
If P.Port = "LPT2:" Or P.DeviceName Lie "*LaserJet*" Then
Set Printer = P
Exit For
End If
Next P

Funes Internas

441

Exemplo da propriedade RowHeight


Este exemplo configura a altura da linha atual como 500 twips quando voc clica no formulrio. Para experimentar este
exemplo, crie um novo projeto, use a caixa de dilogo Components para adicionar um controle DBGrid caixa de
ferramentas (no menu Project, escolha Components e, em seguida, selecione Microsoft Data Bound Grid Control) e,
em seguida, desenhe um controle DBGrid. Cole o cdigo na seo Declarations do formulrio, pressione F5 para executar
o programa e, em seguida, selecione uma clula e clique no formulrio.
Private Sub Form_Load ()
DBGrid1.Rows = 5
' Configurar colunas e linhas.
DBGrid1.Cols = 7
End Sub
Private Sub Form_Clic ()
DBGrid1.RowHeight(DBGrid1.Row) = 500
End Sub

Exemplo das propriedades ScaleHeight, ScaleWidth


Este exemplo usa as propriedades ScaleHeight e ScaleWidth para alterar as unidades de medida vertical e horizontal de
um formulrio. Para experimentar este exemplo, cole o cdigo da seo Declarations de um formulrio e, em seguida,
pressione F5. Para ver os efeitos, clique no formulrio, redimensione-o e, em seguida, clique novamente nele.
Private Sub Form_Clic ()
Dim Radius As Integer' Declarar varivel.
ScaleHeight = 100
' Configurar unidades de altura.
ScaleWidth = 100 ' Configurar unidades de largura.
For Radius = 5 to 50 Step 5
FillStyle = 1
Circle (50, 50), Radius' Desenhar crculo.
Next Radius
End Sub

Exemplo das propriedades ScaleLeft, ScaleTop


Este exemplo cria uma grade em um controle PictureBox e configura coordenadas para o canto superior esquerdo como
-1,-1, ao invs de 0,0. A cada 0,25 segundos, pontos so aleatoriamente plotados, do canto superior esquerdo at o canto
inferior direito. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um
grande PictureBox e um controle Timer e, em seguida, pressione F5.
Private Sub Form_Load ()
Timer1.Interval = 250 ' Configurar o intervalo do Timer.
Picture1.ScaleTop = -1
' Configurar a escala para a parte superior da grade.
Picture1.ScaleLeft = -1
' Configurar a escala para a parte esquerda da grade.
Picture1.ScaleWidth = 2 ' Configurar a escala (-1 a 1).
Picture1.ScaleHeight = 2
Picture1.Line (-1, 0)-(1, 0) ' Desenhar linha horizontal.
Picture1.Line (0, -1)-(0, 1) ' Desenhar linha vertical.
End Sub
Private Sub Timer1_Timer ()
Dim I
' Declarar varivel.
' Plotar pontos de maneira aleatria dentro de um intervalo.
For I = -1 To 1 Step .05
Picture1.PSet (I * Rnd, I * Rnd) ' Desenhar um ponto.
Next I
End Sub

Funes Internas

442

Exemplo da propriedade ScaleMode


Este exemplo mostra como configuraes diferentes da propriedade ScaleMode alteram o tamanho de um crculo. Para
experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique no
formulrio. Quando voc clica no formulrio, a unidade de medida se altera para a prxima configurao de ScaleMode e
um crculo desenhado no formulrio.
Private Sub Form_Clic ()
' Cicle atravs de cada uma das sete configuraes.
ScaleMode = ((ScaleMode + 1) Mod 7) + 1
' Desenhar um crculo com o raio 2 no centro do formulrio.
Circle (ScaleWidth / 2, ScaleHeight / 2), 2
End Sub

Exemplo das propriedades SelLength, SelStart, SelText


Este exemplo permite ao usurio especificar algum texto a ser pesquisado e, em seguida, procura pelo texto e o seleciona
se for encontrado. Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha
um amplo controle TextBox e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Load ()
Text1.Text = "Two of the pea human experiences "
Text1.Text = Text1.Text & " are good food and classical music."
End Sub
Private Sub Form_Clic ()
Dim Search, Where ' Declarar variveis.
' Obter a seqncia de caracteres de pesquisa do usurio.
Search = InputBox("Enter test to be found:")
Where = InStr(Text1.Text, Search) ' Localizar a seqncia de caracteres no texto.
If Where Then
' Se encontrar,
Text1.SelStart = Where - 1 ' configurar o incio da seleo e
Text1.SelLength = Len(Search) ' configurar o comprimento da seleo.
Else
MsgBox "String not found."' Notificar o usurio.
End If
End Sub
Este exemplo mostra como o objeto Clipboard usado em operaes de recorte, cpia, colagem e excluso. Para
experimentar este exemplo, crie um formulrio com um controle TextBox e use o Menu Editor para criar um menu Edit
(para cada um dos comandos, configure a propriedade Caption = Cut, Copy, Paste e Delete, respectivamente; configure a
propriedade Name = EditCut, EditCopy, EditPaste e EditDelete respectivamente.).
Private Sub EditCut_Clic ()
' Limpar o contedo da rea de transferncia.
Clipboard.Clear
' Copiar o texto selecionado para a rea de transferncia.
ClipBoard.SetText Screen.ActiveControl.SelText
' Excluir o texto selecionado.
Screen.ActiveControl.SelText = ""
End Sub
Private Sub EditCopy_Clic ()
' Limpar o contedo da rea de transferncia.
Clipboard.Clear
' Copiar o texto selecionado para a rea de transferncia.
ClipBoard.SetText Screen.ActiveControl.SelText
End Sub
Private Sub EditPaste_Clic ()
' Colocar texto da rea de transferncia no controle ativo.
Screen.ActiveControl.SelText = ClipBoard.GetText ()
End Sub
Private Sub EditDelete_Clic ()
' Excluir o texto selecionado.
Screen.ActiveControl.SelText = ""
End Sub

Exemplo da propriedade Shape


Este exemplo ilustra as seis possibilidades de formas do controle Shape. Para experimentar este exemplo cole o cdigo na
seo Declarations de um formulrio que contenha um controle OptionButton e um controle Shape. Para o OptionButton,
configure a propriedade Index como 0 para criar uma matriz de controle de um elemento e, em seguida, pressione F5.
Clique em cada OptionButton para ver uma forma diferente.
Private Sub Form_Load ()

Funes Internas

443

Dim I
' Declarar varivel.
Option1(0).Caption = "Shape #0"
For I = 1 To 5
' Criar cinco ocorrncias de Option1.
Load Option1(I)
' Configurar a localizao do novo boto de opo.
Option1(I).Top = Option1(I - 1).Top + Option1(0).Height + 40
' Configurar a legenda do boto de opo.
Option1(I).Caption = "Shape #" & I
' Exibir o novo boto de opo.
Option1(I).Visible = True
Next I
End Sub
Private Sub Option1_Clic (Index As Integer)
Shape1.Shape = Index
End Sub

Exemplo da propriedade Stretch


Este exemplo carrega um cone de seta de um diretrio de cones para um controle Image. A seta se arrasta pelo formulrio
quando a propriedade Stretch for configurada como True, e salta pelo formulrio quando Stretch for configurada como
False. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um controle
Image, um controle ChecBox e um controle Timer e, em seguida, pressione F5 e clique no formulrio. Certifique-se de
verificar o caminho at seu diretrio de cones e alter-lo se necessrio. Para visualizar os efeitos da propriedade Stretch,
clique no ChecBox e, em seguida, clique novamente no formulrio.
Dim ImgW' Declarar varivel.
Private Sub Form_Load ()
' Carregar um cone no controle Image.
Image1.Picture = LoadPicture("ICONS\ARROWS\ARW02RT.ICO")
Image1.Left = 0 ' Mover a imagem para o lado esquerdo.
ImgW = Image1.Width' Salvar a largura da imagem.
Timer1.Interval = 300
Timer1.Enabled = False ' Desativar o cronmetro.
Chec1.Caption = "Stretch Property"
End Sub
Private Sub Form_Clic ()
Timer1.Enabled = True
End Sub

' Ativar o cronmetro.

Private Sub Timer1_Timer ()


Static MoveIcon As Integer ' Sinalizador para mover o cone.
If Not MoveIcon Then
Image1.Move Image1.Left + ImgW, Image1.Top, ImgW * 2
Else
' Mover a imagem e a retorna largura original.
Image1.Move Image1.Left + ImgW, Image1.Top, ImgW
End If
' Se a imagem est fora da borda do formulrio, reiniciar.
If Image1.Left > ScaleWidth Then
Image1.Left = 0
Timer1.Enabled = False
End If
MoveIcon = Not MoveIcon ' Reconfigurar o sinalizador.
End Sub
Private Sub Chec1_Clic ()
Image1.Stretch = Chec1.Value
End Sub

Exemplo da propriedade TopIndex


Este exemplo preenche um controle ListBox com nomes e fontes de tela e, em seguida, rola a ListBox quando voc clica
no formulrio. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um
controle ListBox e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Load ()
Dim I
' Declarar varivel.
For I = 0 To Screen.FontCount -1 ' Preencher caixa de listagem com
List1.AddItem Screen.Fonts(I) ' nomes de fonte de tela.
Next I
End Sub
Funes Internas

444

Private Sub Form_Clic ()


Dim X ' Declarar varivel.
X = List1.TopIndex
' Obter o ndice atual.
List1.TopIndex = List1.TopIndex + 5 ' Reconfigurar o primeiro item da lista.
If List1.TopIndex = X Then List1.TopIndex = 0
End Sub

Exemplo da propriedade WindowList


Este exemplo cria alguns comandos de menu, ilustra o funcionamento do menu WindowList e mostra como permitir que
seus usurios adicionem novos formulrios a um aplicativo de interface de documentos mltiplos (MDI). Para experimentar
este exemplo, crie um objeto MDIForm com o comando Add MDI Form no menu Project. No Form1, configure a
propriedade MDIChild como True e crie um menu chamado File. Selecione a caixa WindowList no menu File. Em seu
menu File, crie um comando New, configure sua propriedade Name como FileMenu e configure sua propriedade Index
como 0 para criar uma matriz de controle. Cole o cdigo na seo Declarations do formulrio e, em seguida, pressione F5
para executar o programa. A escolha do comando New no menu File cria novos formulrios MDI filhos. Seus nomes esto
listados na parte inferior do menu File.
Private Sub Form_Load ()
FileMenu(0).Caption = "&New" ' Configurar a tecla de acesso na legenda.
Load FileMenu(1) ' Criar um novo item de menu.
FileMenu(1).Caption = "-" ' Configurar separador.
Load FileMenu(2) ' Criar um novo item de menu.
FileMenu(2).Caption = "E&xit" ' Configurar legenda e tecla de acesso.
End Sub
Private Sub FileMenu_Clic (Index As Integer)
Select Case Index
Case 0 ' Selecionar o comando Novo.
Dim NewForm As New Form1
' Criar uma duplicata de Form1.
' Carregar NewForm e configurar uma legenda exclusiva.
NewForm.Caption = "Untitled" & Forms.Count
Case 2 ' Selecionar o comando Sair.
End ' Encerrar o programa.
End Select
End Sub

Exemplo da propriedade WindowState


Este exemplo oculta uma caixa de dilogo (Form2) quando o formulrio pai (Form1) est minimizado e reexibe a caixa de
dilogo quando o formulrio pai retorna a seu estado original ou maximizado. Para experimentar este exemplo cole o
cdigo na seo Declarations de Form1 de um aplicativo que contenha dois formulrios. Pressione F5 para iniciar o
exemplo. Mova Form1, de modo que voc possa visualizar ambos os formulrios e, em seguida, minimize ou maximize o
formulrio e observe o comportamento de Form2.
Private Sub Form_Load ()
Form2.Show ' Mostrar Form2.
End Sub
Private Sub Form_Resize ()
' Se o formulrio pai estiver minimizado...
If Form1.WindowState = vbMinimized Then
' ...ocultar Form2.
Form2.Visible = False
' Se o formulrio pai no estiver minimizado...
Else
' ...restaura Form2.
Form2.Visible = True
End If
End Sub

Exemplo da propriedade WordWrap


Este exemplo coloca texto em dois controle Label e usa a propriedade WordWrap para ilustrar seus diferentes
comportamentos. Para experimentar este exemplo cole o cdigo na seo Declarations de um formulrio que contenha dois
controles Label e, em seguida, pressione F5 e clique no formulrio para alternar a configurao da propriedade WordWrap.
Private Sub Form_Load ()
Dim Author1, Author2, Quote1, Quote2
' Declarar variveis.
Label1.AutoSize = True
' Configurar AutoSize.
Label2.AutoSize = True
Label1.WordWrap = True ' Configurar WordWrap.
Quote1 = "I couldnt wait for success, so I went on without it."
Author1 = " - Jonathan Winters"

Funes Internas

445

Quote2 = "Logic is a system whereby one may go wrong with confidence."


Author2 = " - Charles ettering"
Label1.Caption = Quote1 & Chr(10) & Author1
Label2.Caption = Quote2 & Chr(10) & Author2
End Sub
Private Sub Form_Clic ()
Label1.Width = 1440 ' Configurar a largura como 1 polegada em twips.
Label2.Width = 1440
Label1.WordWrap = Not Label1.WordWrap ' Ligar e desligar a propriedade WordWrap.
Label2.WordWrap = Not Label2.WordWrap
End Sub

Funes Internas

446

Exemplo das propriedades X1, Y1, X2, Y2


Este exemplo exibe uma linha animada que caminha para baixo do formulrio quando voc clica nele. Para experimentar
este exemplo cole o cdigo na seo Declarations de um formulrio que contenha um controle Timer e um controle Line e,
em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Load ()
Timer1.Interval = 100 ' Configurar o intervalo de Timer.
' Posicionar a linha prxima ao canto superior esquerdo.
' Configurar as propriedades de Line1.
With Line1
.X1 = 100
.Y1 = 100
.X2 = 500
.Y2 = 300
End With
Timer1.Enabled = False
End Sub
Private Sub Form_Clic ()
Timer1.Enabled = True
End Sub

' Iniciar o cronmetro.

Private Sub Timer1_Timer ()


Static Odd ' Declarar varivel.
If Odd Then
Line1.X2 = Line1.X2 + 250
Line1.Y2 = Line1.Y2 + 600
Else
Line1.X1 = Line1.X1 + 250
Line1.Y1 = Line1.Y1 + 600
End If
Odd = Not Odd ' Alternar o valor.
' Se a linha estiver fora do formulrio, reiniciar.
If Line1.Y1 > ScaleHeight Then
Timer1.Enabled = False ' Esperar por outro clique.
With Line1
.X1 = 100
.Y1 = 100
.X2 = 500
.Y2 = 300
End With
Odd = False
End If
End Sub

Propriedade ActiveControl
Retorna o controle que tem o foco. Quando um formulrio referido, como em ChildForm.ActiveControl, a ActiveControl
especifica o controle que teria o foco, se o formulrio referido estivesse ativo. No disponvel durante o tempo de criao;
somente leitura durante o tempo de execuo.
Sintaxe
object.ActiveControl
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Voc pode usar ActiveControl para acessar as propriedades de um controle ou acionar seus mtodos: Por exemplo,
Screen.ActiveControl.Tag = "0". Um erro durante o tempo de execuo ocorre se todos os controles do formulrio estiverem
invisveis ou desativados.
Cada formulrio pode ter um controle ativo (Form.ActiveControl), independente do formulrio estar ou no ativo. Voc pode
escrever cdigo que manipula o controle ativo em cada formulrio de seu aplicativo, mesmo quando o formulrio no o
formulrio ativo.
Esta propriedade especialmente til em um aplicativo de interface de documento mltiplo (MDI) onde um boto em uma
barra de ferramentas deve iniciar uma ao em um controle de um formulrio MDI filho. Quando um usurio clica no boto
Copy na barra de ferramentas, seu cdigo pode referir-se a texto no controle ativo no formulrio MDI filho, como em
ActiveForm.ActiveControl.SelText.
Observao: Se voc planeja passar Screen.ActiveControl a um procedimento, deve declarar o argumento naquele
procedimento com a clusula As Control ao invs de especificar um tipo de controle (As TextBox ou As ListBox) mesmo que
ActiveControl sempre se refira ao mesmo tipo de controle.

Funes Internas

447

Propriedade Appearance
Retorna ou configura o estilo de pintura de controles em um MDIForm ou objeto Form durante o tempo de criao.
Somente leitura durante o tempo de execuo.
Sintaxe
object.Appearance
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes da propriedade Appearance so:
Configurao
Descrio
0
Plano. Pinta controles e formulrios sem efeitos visuais.
1
(Padro) 3D. Pinta controles com efeitos tridimensionais.
Comentrios
Se configurado como 1 durante o tempo de criao, a propriedade Appearance desenha controles com efeitos
tridimensionais. Se a propriedade BorderStyle do formulrio estiver configurada como Fixed Double (vbFixedDouble, ou
3), a legenda e borda do formulrio tambm so pintadas com efeitos tridimensionais. A configurao de Appearance como
1 tambm faz com que o formulrio e seus controles tenham sua propriedade BacColor configurada como a cor
selecionada para objetos 3D na guia Appearance da caixa de dilogo Display Properties do sistema operacional.
A configurao da propriedade Appearance como 1 para um objeto MDIForm afeta apenas o formulrio MDI pai. Para ter
efeitos tridimensionais sobre formulrios MDI filho, voc deve configurar a propriedade Appearance de cada formulrio filho
como 1.

Funes Internas

448

Propriedade Bold
Retorna ou configura o estilo de fonte do objeto Font como negrito ou no-negrito.
Sintaxe
object.Bold [= boolean]
A sintaxe da propriedade Bold tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies To.
boolean

Uma expresso Booleana especificando o estilo de fonte, conforme descrito em


Configuraes.

Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
Ativa a formatao negrito.
False
(Padro) Desativa a formatao negrito.
Comentrios
O objeto Font no est diretamente disponvel durante o tempo de criao. Ao invs, voc configura a propriedade Bold
selecionando a propriedade Font de um controle na janela Properties e clicando no boto Properties. Na caixa Font Style
da caixa de dilogo Font, selecione Bold ou Bold Italic. Durante o tempo de execuo, entretanto, voc configura Bold
diretamente especificando suas configuraes no objeto Font.

Propriedade FontTransparent
Retorna ou configura um valor que determina se o texto e elementos grficos de segundo plano em um objeto Form ou
Printer ou um controle PictureBox so exibidos nos espaos ao redor de caracteres.
Sintaxe
object.FontTransparent [= boolean]
A sintaxe da propriedade FontTransparent tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
A expresso Booleana especificando o estado de texto e
elementos grficos de segundo plano, conforme descrito em
Configuraes.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
(Padro) Permite que elementos grficos e texto de segundo
plano sejam exibidos ao redor dos espaos dos caracteres em
uma fonte.
False
Mascara os elementos grficos e texto existente ao redor dos
caracteres de uma fonte.
Comentrios
Configura FontTransparent durante o tempo de criao usando a janela Properties ou durante o tempo de execuo
usando cdigo. A alterao de FontTransparent durante o tempo de execuo no afeta os elementos grficos e o texto j
desenhado em Form, Printer ou PictureBox.

Propriedade Italic
Retorna ou configura o estilo de fonte do objeto Font para itlico ou no-itlico.
Sintaxe
object.Italic [= boolean]
A sintaxe da propriedade Italic tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando o estilo de fonte
conforme descrito em Configuraes.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
Ativa a formatao itlica.
False
(Padro) Desativa a formatao itlica.
Comentrios
O objeto Font no est diretamente disponvel durante o tempo de criao. Ao invs, voc configura a propriedade Italic
selecionando a propriedade Font de um controle na janela Properties e clicando no boto Properties. Na caixa Font Style
Funes Internas

449

da caixa de dilogo Font, selecione Italic ou Bold Italic. Durante o tempo de execuo, entretanto, voc configura Italic
diretamente, especificando sua configurao para o objeto Font.

Propriedade LBound
Retorna o valor ordinal mais baixo de um controle em uma matriz de controle.
Sintaxe
object.LBound
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
A propriedade LBound igual ao valor da propriedade Index do primeiro controle na matriz. Tipicamente este valor 0,
pois o Visual Basic atribui automaticamente um valor Index de 0 ao primeiro controle em uma matriz de controle. Se voc
alterar manualmente o valor Index para o primeiro controle em uma matriz para algum outro valor (por exemplo, 1),
LBound retorna o valor que voc atribuiu manualmente a Index (neste exemplo, 1).

Funes Internas

450

Propriedade Size (Font)


Retorna ou configura o tamanho da fonte usada no objeto Font.
Sintaxe
object.Size [= number]
A sintaxe da propriedade Size tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica especificando o tamanho da fonte
em pontos.
Comentrios
Use esta propriedade para formatar o texto no tamanho da fonte desejada. O tamanho da fonte padro determinado pelo
sistema operacional. Para alterar o padro, especifique o tamanho da fonte em pontos. O valor mximo para a propriedade
Size 2048 pontos.
O objeto Font no est diretamente disponvel durante o tempo de criao. Ao invs, voc configura a propriedade Size
selecionando a propriedade Font na janela Properties e clicando no boto Properties. Na caixa Size da caixa de dilogo
Font, selecione o tamanho desejado. Durante o tempo de execuo, entretanto, configure Size diretamente, especificando
sua configurao para o objeto Font.

Propriedade StartMode
Retorna ou configura um valor que determina se um aplicativo se inicia como um projeto autnomo ou como um
componente ActiveX. Somente leitura durante o tempo de execuo.
Sintaxe
object.StartMode
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes da propriedade StartMode so:
Constante
Valor
Descrio
vbSModeStandalone
0
(Padro) O aplicativo iniciado como um
projeto autnomo.
VbSModeAutomation
1
O aplicativo iniciado como um
componente ActiveX.
Comentrios
Estas constantes esto listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.
Durante o tempo de criao, voc pode configurar StartMode na caixa de dilogo Project Options como 1
(vbSModeAutomation) para depurar um aplicativo como se ele tivesse sido iniciado como um componente ActiveX.
Uma vez que o projeto seja compilado, o valor da propriedade StartMode determinado pela forma como o aplicativo
iniciado, no por sua configurao nominal na caixa de dilogo Project Options.
Quando StartMode est configurada como 1, e no existem classes pblicas no projeto, voc deve usar a instruo End e
selecionar End no menu ou barra de ferramentas Run, para encerrar o aplicativo. Se voc escolhe Close no menu
System, o formulrio se fecha, mas o projeto ainda estar sendo executado.

Funes Internas

451

Propriedade StrieThrough
Retorna ou configura o estilo de fonte do objeto Font como tachado ou no-tachado.
Sintaxe
object.StrieThrough [= boolean]
A sintaxe da propriedade StrieThrough tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean

Uma expresso Booleana especificando o estilo de fonte,


conforme descrito em Configuraes.

Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
Ativa a formatao tachada.
False

(Padro) Desativa formatao tachado.

Comentrios
O objeto Font no est diretamente disponvel durante o tempo de criao. Ao invs, voc configura a propriedade
StrieThrough selecionando a propriedade Font de um controle na janela Properties e clicando no boto Properties. Na
caixa de dilogo Font, selecione a caixa de seleo Strieout .Durante o tempo de execuo, entretanto, voc configura
StrieThrough diretamente especificando sua configurao para o objeto Font.

Propriedade TracDefault
Retorna ou configura um valor que determina se o objeto Printer sempre aponta para a mesma impressora ou altera a
impressora para a qual ele aponta, se voc altera a configurao de impressora padro Painel de controle do sistema
operacional. No est disponvel durante o tempo de criao.
Sintaxe
object.TracDefault [= boolean]
A sintaxe da propriedade TracDefault tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando a impressora para a
qual aponta object, conforme descrito em Configuraes.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
(Padro) O objeto Printer altera a impressora para a qual ele
aponta quando voc altera as configuraes de impressora
padro no Painel de controle do sistema operacional.
False
O objeto Printer continua a apontar para a mesma impressora,
embora voc altere as configuraes de impressora padro no
Painel de controle do sistema operacional.
Comentrios
A alterao da configurao da propriedade TracDefault enquanto um trabalho de impresso est sendo executado envia
uma instruo EndPage implcita ao objeto Printer.

Propriedade Type (Picture)


Retorna o formato grfico de um objeto Picture. No disponvel durante o tempo de criao; somente leitura durante o
tempo de execuo.
Sintaxe
object.Type
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Valores de retorno
Os valores de retorno para a propriedade Type so:
Constante
Valor
Descrio
vbPicTypeNone
0
Picture est vazia
vbPicTypeBitmap
1
Bitmap (arquivos .bmp)
vbPicTypeMetafile
2
Metarquivo (arquivos .wmf)
vbPicTypeIcon
3
cone (arquivos .ico)
vbPicTypeEMetafile
4
Metarquivo aprimorado (arquivos .emf)
Comentrios
Funes Internas

452

Estas constantes so listadas na biblioteca de objetos Visual Basic (VB) no Object Browser.

Propriedade UBound
Retorna o valor ordinal mais alto de um controle em uma matriz de controle.
Sintaxe
object.UBound
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
UBound igual ao valor da propriedade Index do ltimo controle na matriz.

Propriedade Underline
Retorna ou configura o estilo de fonte do objeto Font como sublinhado ou no-sublinhado.
Sintaxe
object.Underline [= boolean]
A sintaxe da propriedade Underline tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando o estilo de fonte,
conforme descrito em Configuraes.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
Ativa a formatao sublinhada.
False
(Padro) Desativa a formatao sublinhada.
Comentrios
O objeto Font no est diretamente disponvel durante o tempo de criao. Ao invs, voc pode configurar a propriedade
Underline selecionando a propriedade Font de um controle na janela Properties e clicando no boto Properties. Na caixa
de dilogo Font, selecione a caixa de seleo Underline. Durante o tempo de execuo, entretanto, voc configura
Underline diretamente especificando sua configurao para o objeto Font.

Propriedade UseMnemonic
Retorna ou configura um valor que especifica se um E comercial (&) includo no texto da propriedade Caption do controle
Label define uma tecla de acesso.
Sintaxe
object.UseMnemonic [= boolean]
A propriedade UseMnemonic tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando se o controle Label
ativa uma tecla de acesso, conforme descrito em
Configuraes.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
(Padro) Qualquer E comercial aparecendo no texto da
propriedade Caption faz com que o caractere posterior ao E
comercial torne-se uma tecla de acesso. O prprio E comercial
no exibido na interface do controle Label.
False
Qualquer E comercial aparecendo no texto da propriedade
Caption exibido como um E comercial na interface do
controle Label.
Comentrios
Durante o tempo de execuo, pressionar ALT+ a tecla de acesso definida na propriedade Caption do controle Label move
o foco para o controle seguinte ao controle Label na ordem de tabulao.

Funes Internas

453

Propriedade Weight
Retorna ou configura o peso dos caracteres que compem um objeto Font. O peso refere-se espessura dos caracteres,
ou "taxa de negrito". Quanto mais alto o valor, mais negrito o caractere.
Sintaxe
object.Weight [= number]
A sintaxe da propriedade Weight tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica especificando o peso da fonte.
Comentrios
O objeto Font no est diretamente disponvel durante o tempo de criao. Voc configura a propriedade Weight do objeto
Font selecionando a propriedade Font do controle na janela Properties e clicando no boto Properties. Voc configura
implicitamente a propriedade Weight selecionando um item na caixa Font Style na caixa de dilogo Font. As configuraes
Regular e Italic tm um valor Weight de 400 (o padro), e as configuraes Bold e Bold Italic tm um valor Weight de 700.
Durante o tempo de execuo, entretanto, voc configura Weight diretamente especificando sua configurao para o objeto
Font.
Se voc configura um Weight de um objeto Font como um valor diferente de 400 ou 700 durante o tempo de execuo, o
Visual Basic converte seu valor para 400 ou 700, dependendo de qual valor est mais prximo do valor configurado por
voc. Os intervalos precisos so: Weight > 400 e < 551 converte para 400; Weight > 550 converte para 700.

Exemplo da propriedade ActiveControl


Este exemplo exibe o texto do controle ativo. Para experimentar este exemplo, cole o cdigo na seo Declarations de um
formulrio que contenha controles TextBox, Label e CommandButton e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic ()
If TypeOf Screen.ActiveControl Is TextBox Then
Label1.Caption = Screen.ActiveControl.Text
Else
Label1.Caption = "Button: " + Screen.ActiveControl.Caption
End If
End Sub
Este exemplo mostra como voc pode usar o objeto Clipboard em operaes de recorte, cpia, colagem e excluso
usando botes em uma barra de ferramentas. Para experimentar este exemplo, coloque os controles TextBox e ChecBox
em Form1 e, em seguida, crie um novo formulrio MDI. Neste formulrio, insira um controle PictureBox e, em seguida,
insira um CommandButton na PictureBox. Configure a propriedade Index de CommandButton como 0 (criando uma
matriz de controle). Configure a propriedade MDIChild de Form1 como True.
Para executar o exemplo, copie o cdigo na seo Declarations de MDIForm e, em seguida, pressione F5. Observe que
quando o ChecBox tem o foco, os botes no funcionam, pois ChecBox agora o controle ativo, ao invs de TextBox.
Private Sub MDIForm_Load ()
Dim I
' Declarar varivel.
Command1(0).Move 0, 0, 700, 300 ' Posicionar o boto na barra de ferramentas.
For I = 1 To 3 ' Criar outros botes.
Load Command1(I) ' Criar boto.
Command1(I).Move I * 700, 0, 700, 300 ' Posicionar e dimensionar o boto.
Command1(I).Visible = True
' Exibir o boto.
Next I
Command1(0).Caption = "Cut" ' Configurar legendas de boto.
Command1(1).Caption = "Copy"
Command1(2).Caption = "Paste"
Command1(3).Caption = "Del"
End Sub
Private Sub Command1_Clic (Index As Integer)
' ActiveForm refere-se ao formulrio ativo no formulrio MDI.
If TypeOf ActiveForm.ActiveControl Is TextBox Then
Select Case Index
Case 0 ' Recortar.
' Copiar o texto selecionado para a rea de transferncia.
Clipboard.SetText ActiveForm.ActiveControl.SelText
' Excluir o texto selecionado.
ActiveForm.ActiveControl.SelText = ""
Case 1 ' Copiar.
' Copiar o texto selecionado para a rea de transferncia.
Clipboard.SetText ActiveForm.ActiveControl.SelText
Case 2 ' Colar.
' Colocar o texto da rea de transferncia na caixa de texto.
ActiveForm.ActiveControl.SelText = Clipboard.GetText()

Funes Internas

454

Case 3 ' Excluir.


' Excluir o texto selecionado.
ActiveForm.ActiveControl.SelText = ""
End Select
End If
End Sub

Exemplo das propriedades Bold, Italic, Size, StrieThrough, Underline e Weight


Este exemplo imprime texto em um formulrio a cada clique de mouse. Para experimentar este exemplo, cole o cdigo na
seo Declarations de um formulrio e, em seguida, pressione F5 e clique duas vezes no formulrio.
Private Sub Form_Clic ()
Font.Bold = Not Font.Bold ' Ligar e desligar negrito.
Font.StrieThrough = Not Font.StrieThrough ' Ligar e desligar tachado.
Font.Italic = Not Font.Italic ' Ligar e desligar itlico.
Font.Underline = Not Font.Underline ' Ligar e desligar sublinhado.
Font.Size = 16
' Configurar a propriedade Size.
If Font.Bold Then
Print "Font weight is " & Font.Weight & " (negrito)."
Else
Print "Font weight is " & Font.Weight & " (no negrito)."
End If
End Sub

Exemplo da propriedade FontTransparent


Este exemplo imprime texto sobre um grfico em um controle PictureBox. Coloque um PictureBox em um formulrio,
configure sua propriedade AutoSize como True e carregue sua propriedade Picture com um arquivo bitmap (.bmp). Para
experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique
duas vezes no formulrio.
Private Sub Form_Clic ()
' Ligar e desligar propriedade.
Picture1.FontTransparent = Not Picture1.FontTransparent
Picture1.Print "Demo of FontTransparent property."
End Sub

Exemplo das propriedades LBound, UBound


Este exemplo imprime os valores destas duas propriedades em uma matriz de controle. Coloque um controle
OptionButton em um formulrio e configure sua propriedade Index como 0 (para criar uma matriz de controle). Para
experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio e, em seguida, pressione F5 e clique
duas vezes no formulrio.
Private Sub Form_Paint ()
Static FlagFormPainted As Integer
If FlagFormPainted <> True Then ' Quando um formulrio pintado pela primeira vez,
For i = 1 To 3
Load Option1(i) ' adicionar trs botes de opo matriz.
Option1(i).Top = Option1(i - 1).Top + 350
Option1(i).Visible = True
Next I
For I = 0 to 3' Colocar legendas nos botes de opo.
Option1(i).Caption = "Option #." & CStr(i)
Next I
Option1(0).Value = True ' Selecionar o primeiro boto de opo.
FlagFormPainted = True ' Terminar a pintura do formulrio.
End If
End Sub
Private Sub Form_Clic ()
Print "Control arrays Count property is " & Option1().Count
Print "Control arrays Lbound property is " & Option1().LBound
Print "Control arrays Ubound property is " & Option1().UBound
End Sub

Exemplo da propriedade StartMode


Este exemplo mostra um possvel efeito da configurao da propriedade StartMode como 1 (vbSModeAutomation)
durante o tempo de criao. Crie um projeto ActiveX EXE. Crie um novo formulrio. No menu Project, escolha o comando
Project Properties. Selecione a guia Componente e, em seguida, selecione o boto de opo do componente ActiveX no
grupo Start Mode. Escolha O para fechar a caixa de dilogo Project Properties. Para experimentar este exemplo, cole o
cdigo na seo Declarations do formulrio e, em seguida, pressione F5 e clique duas vezes no menu Control, esquerda
da barra de ttulo do formulrio. Se o formulrio no for exibido, insira Form1.Show na janela Immediate.
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu And App.StartMode = vbSModeAutomation Then
Msg = "Form will close but application will still be running." & Chr(10)
Funes Internas

455

Msg = Msg + "To terminate application without a public class" & Chr(10)
Msg = Msg + "you must use an End statement"
MsgBox Msg
End If
End Sub

Funes Internas

456

Exemplo da propriedade UseMnemonic


Este exemplo l a configurao da propriedade UseMnemonic de um controle Label. Para experimentar este exemplo,
cole o cdigo na seo Declarations de um formulrio que contenha um Label e, em seguida, pressione F5 e clique no
formulrio.
Private Sub Form_Clic()
If Label1.UseMnemonic And InStr(Label1, "&") Then
MsgBox "The label has an access ey character."
ElseIf Label1.UseMnemonic And Not InStr(Label1, "&") Then
MsgBox "The label supperts an access ey character but doesnt have an ampersand."
Else
MsgBox "The label doesnt support an access ey character."
End If
End Sub

Exemplo das propriedades Type e Width


Este exemplo l a configurao das propriedades Type e Width de um objeto Picture em um controle PictureBox. Para
experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha um PictureBox cuja
propriedade Picture configurada como um cone e, em seguida, pressione F5 e clique no formulrio.
Private Sub Form_Clic()
If Picture1.Picture.Type = vbPicTypeIcon Then
Print "The graphic in the picture box is an icon."
Else
Print "The Picture property isnt set to an icon."
End If
Print "Width of the graphic in HiMetrics is " & Picture1.Picture.Width
Print "Width of picture box itself in twips is" & Picture1.Width
End Sub

Propriedade ActiveForm
Retorna o formulrio que a janela ativa. Se um objeto MDIForm est ativo ou referido, ele especifica o formulrio MDI
filho.
Sintaxe
object.ActiveForm
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Use a propriedade ActiveForm para acessar as propriedades de um formulrio ou para acionar seus mtodos por
exemplo, Screen.ActiveForm.MousePointer = 4.
Esta propriedade especialmente til em um aplicativo de interface de documento mltiplo (MDI) onde um boto em uma
barra de ferramentas deve iniciar uma ao ou um controle em um formulrio MDI filho. Quando um usurio clica no boto
Copy na barra de ferramentas, seu cdigo pode referir-se ao texto no controle ativo no formulrio MDI filho por exemplo,
ActiveForm.ActiveControl.SelText.
Quando um controle em um formulrio tem o foco, este formulrio o formulrio ativo na tela (Screen.ActiveForm). Alm
disso, um objeto MDIForm pode obter um formulrio filho que o formulrio ativo dentro do conceito de formulrio MDI pai
(MDIForm.ActiveForm). A ActiveForm na tela no necessariamente o mesmo que a ActiveForm no formulrio MDI
como, por exemplo, quando uma caixa de dilogo est ativa. Por este motivo, especifique o MDIForm com ActiveForm
quando existe uma possibilidade de uma caixa de dilogo ser a configurao da propriedade ActiveForm.
Observao: Quando um formulrio MDI filho ativo no est maximizado, as barras de ttulo de ambos os formulrios, pai
e filho, aparecem ativas.
Se voc planeja passar Screen.ActiveForm ou MDIForm.ActiveForm a um procedimento, deve declarar o argumento
naquele procedimento com o tipo genrico (As Form) ao invs de um tipo de formulrio especfico (As MyForm) mesmo que
ActiveForm sempre se refira ao mesmo tipo de formulrio.
A propriedade ActiveForm determina o valor padro do objeto ProjectTemplate.

Propriedade Caption
Formulrio determina o texto exibido na barra de ttulo do objeto Form ou MDIForm. Quando o formulrio est

minimizado, este texto exibido abaixo do cone do formulrio.


Controle determina o texto exibido em, ou junto a um controle.
Objeto MenuLine determina o texto exibido para um controle Menu ou um objeto na coleo MenuItems.

Para um controle Menu, Caption normalmente para leitura/gravao durante o tempo de execuo. Mas, Caption
somente leitura em menus exibidos ou fornecidos pelo Visual Basic a suplementos como, por exemplo, o objeto MenuLine.
Sintaxe
object.Caption [= string]
A sintaxe da propriedade Caption tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Funes Internas

457

string

Applies To. Se object for omitido, presume-se que o


formulrio associado ao mdulo do formulrio ativo seja
object.
Uma expresso de seqncia de caracteres que avaliada
como texto exibido como legenda.

Comentrios
Quando voc cria um novo objeto, sua legenda padro a configurao da propriedade Name. Esta legenda padro inclui
o nome do objeto e um nmero inteiro, por exemplo, Command1 ou Form1. Para um rtulo mais descritivo, configure a
propriedade Caption.
Voc pode usar a propriedade Caption para atribuir uma tecla de acesso a um controle. Na legenda, inclua um E comercial
(&) imediatamente antes do caractere que voc deseja designar como uma tecla de acesso. O caractere sublinhado.
Pressione a tecla ALT mais o caractere sublinhado para mover o foco at aquele controle. Para incluir um E comercial em
uma legenda sem criar uma tecla de acesso, inclua dois Es comerciais (&&). Um nico E comercial exibido na legenda e
nenhum caractere ser sublinhado.
O tamanho da legenda de um controle Label ilimitado. Para formulrios e todos os outros controles que tm legendas, o
limite 255 caracteres.
Para exibir a legenda de um formulrio, configure a propriedade BorderStyle como Fixed Single (1 ou vbFixedSingle),
Sizable (2 ou vbSizable), ou Fixed Dialog (3 ou vbFixedDialog). Uma legenda longa demais para a barra de ttulo de um
formulrio truncada. Quando um formulrio MDI filho maximizado dentro de um objeto MDIForm, a legenda do
formulrio filho includa na legenda do formulrio pai.
Dica Para um rtulo, configure a propriedade AutoSize como True para redimensionar automaticamente o controle, para
ajust-lo sua legenda.

Funes Internas

458

Propriedade Checed
Retorna ou configura um valor que determina se uma marca de seleo exibida junto a um item de menu.
Sintaxe
object.Checed [= boolean]
A sintaxe da propriedade Checed tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica se uma marca de
seleo exibida junto a um item de menu.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
Coloca uma marca de seleo junto a um item de menu.
False

(Padro) No coloca uma marca de seleo junto a um item


de menu.

Comentrios
Durante o tempo de criao, voc pode usar o Menu Editor para configurar Checed como True. Durante o tempo de
execuo, voc pode ligar e desligar Checed como parte de um procedimento de evento Clic anexado a um controle Menu.
Voc tambm pode configurar o valor de Checed em um procedimento de inicializao ou no procedimento de evento Load
de um formulrio.
Para um controle Menu, Checed normalmente para leitura/gravao durante o tempo de execuo. Mas Checed
somente leitura para itens de menu que so expostos ou fornecidos pelo Visual Basic a suplementos como, por exemplo o
comando Add-In Manager no menu Add-Ins.

Propriedade Count (Colees VB)


Retorna o nmero de objetos em uma coleo.
Sintaxe
object.Count
O espao reservado object uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Voc pode usar esta propriedade com uma instruo For...Next para executar uma operao nos formulrios ou controles
em uma coleo. Por exemplo, o cdigo abaixo move todos os controles em um formulrio 0,5 polegada para a direita (a
configurao de propriedade ScaleMode 1 ou vbTwips):
For I = 0 To Form1.Controls.Count - 1
Form1.Controls(I).Left = Form1.Controls(I).Left + 720
Next I
Voc tambm pode usar este tipo de estrutura para ativar ou desativar rapidamente todos os controles em um formulrio.
Quando usado com a instruo If TypeOf, voc pode ciclar por todos os controles e alterar, por exemplo, a configurao de
propriedade Enabled de somente as caixas de texto ou a configurao de propriedade BacColor de somente os botes de
opo.

Propriedade Enabled
Retorna ou configura um valor que determina se um formulrio ou controle pode responder a eventos gerados pelo usurio.
Sintaxe
object.Enabled [= boolean]
A sintaxe da propriedade Enabled tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To. Se object for omitido, presume-se que o formulrio
associado ao mdulo do formulrio ativo seja object.
boolean
Uma expresso Booleana que especifica se object pode
responder a eventos gerados pelo usurio.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
(Padro) Permite que object responda a eventos.
False

Impede que object responda a eventos.

Comentrios
A propriedade Enabled permite que formulrios e controles sejam ativados ou desativados durante o tempo de execuo.
Por exemplo, voc pode desativar objetos que no se aplicam ao estado atual do aplicativo. Voc tambm pode desativar

Funes Internas

459

um controle usado puramente para finalidades de exibio como, por exemplo, uma caixa de texto que oferece informaes
somente leitura.
Desativar um controle Timer configurando Enabled como False cancela a contagem regressiva configurada pela
propriedade Interval do controle.
Para um controle Menu, Enabled normalmente para leitura/gravao durante o tempo de execuo. Mas Enabled
somente leitura para itens de menu que so expostos ou fornecidos pelo Visual Basic a suplementos como, por exemplo, o
comando Add-In Manager no menu Add-Ins.

Propriedade HelpContextID
Retorna ou configura um nmero de contexto associado a um objeto. Usado para fornecer Ajuda vinculada ao contexto a
seu aplicativo.
Sintaxe
object.HelpContextID [= number]
A sintaxe da propriedade HelpContextID tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To. Se object for omitido, presume-se que o formulrio
associado ao mdulo do formulrio ativo seja object.
Number
Uma expresso numrica que especifica o nmero de contexto
do tpico da Ajuda associado a object.
Configuraes
As configuraes para number so:
Configurao
Descrio
0
(Padro) Nenhum nmero de contexto especificado.
>0
Um nmero inteiro especificando um nmero de contexto
vlido.
Comentrios
Para Ajuda vinculada ao contexto sobre um objeto em seu aplicativo, voc precisa atribuir o mesmo nmero de contexto
tanto ao object quando ao tpico da Ajuda associado, ao compilar seu arquivo da Ajuda.
Se voc criou um arquivo da Ajuda para o ambiente operacional do Microsoft Windows para seu aplicativo e configurou a
propriedade HelpFile do aplicativo, quando um usurio pressiona a tecla F1, o Visual Basic chama a Ajuda
automaticamente e procura pelo tpico identificado pelo nmero de contexto atual.
O nmero de contexto atual o valor de HelpContextID para o objeto que tem o foco. Se a HelpContextID for configurada
como 0, ento o Visual Basic procura na HelpContextID do recipiente do objeto e, em seguida, no recipiente daquele
objeto, e assim por diante. Se um nmero de contexto atual diferente de zero no puder ser encontrado, a tecla F1
ignorada.
Para um controle Menu, HelpContextID normalmente para leitura/gravao durante o tempo de execuo. Mas,
HelpContextID somente leitura para itens de menu que so exibidos ou fornecidos pelo Visual Basic a suplementos
como, por exemplo, o comando Add-In Manager no menu Add-Ins.
Observao: Montar um arquivo da Ajuda exige o Microsoft Windows Help Compiler, que includo no Visual Basic
Professional Edition.

Propriedade Index (Matriz de controle)


Retorna ou configura o nmero que identifica com exclusividade um controle em uma matriz de controle. Disponvel
somente se o controle fizer parte de uma matriz de controle.
Sintaxe
object[(number)].Index
A sintaxe da propriedade Index tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
A expresso numrica que avaliada como um nmero inteiro
que identifica um controle individual dentro de uma matriz de
controle.
Configuraes
As configuraes para number so:
Configurao
Descrio
Nenhum valor
(Padro) No faz parte de uma matriz de controle.
0 a 32.767
parte de uma matriz. Especifica um nmero inteiro maior que,
ou igual a 0 que identifica um controle dentro de uma matriz de
controle. Todos os controles em uma matriz de controle tm a
mesma propriedade Name. O Visual Basic atribui
automaticamente o prximo nmero inteiro dentro da matriz de
controle.

Funes Internas

460

Comentrios
Visto que elementos de matriz de controle compartilham a mesma configurao da propriedade Name, voc deve usar a
propriedade Index no cdigo para especificar um determinado controle na matriz. Index deve aparecer como um nmero
inteiro (ou uma expresso numrica que avaliada como um nmero inteiro) entre parnteses junto ao nome da matriz de
controle por exemplo, MyButtons(3). Voc usa a configurao da propriedade Tag para distinguir um controle de outro
dentro de uma matriz de controle.
Quando um controle na matriz reconhece que ocorreu um evento, o Visual Basic chama o procedimento de evento da
matriz de controle, e passa a configurao de Index aplicvel como argumento adicional. Esta propriedade tambm
usada quando voc cria controles de maneira dinmica durante o tempo de execuo com a instruo Load, ou os remove
com a instruo Unload.
Embora, o Visual Basic atribua como padro o prximo valor de nmero inteiro como o valor de Index para um novo
controle em uma matriz de controle, voc pode ignorar este valor atribudo e ignorar nmeros inteiros. Voc tambm pode
configurar Index como um nmero inteiro diferente de 0 para o primeiro controle da matriz. Se voc se refere a um valor
Index no cdigo que no identifica um dos controles em uma matriz de controle, ocorre um erro de tempo de execuo do
Visual Basic.
Observao: Para remover um controle de uma matriz de controle, altere a configurao da propriedade Name do
controle e exclua a configurao da propriedade Index do controle.

Propriedade Name
Retorna o nome usado no cdigo para identificar um formulrio, controle ou objeto de acesso a dados. Somente leitura

durante o tempo de execuo.


Retorna ou configura o nome de um objeto fonte.

Sintaxe
object.Name
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To. Se object for
omitido, presume-se que o formulrio associado ao mdulo do formulrio ativo seja object.
Comentrios
O nome padro para novos objetos o tipo de objeto mais um nmero inteiro exclusivo. Por exemplo, o primeiro objeto
Form novo Form1, um novo objeto MDIForm MDIForm1 e o terceiro controle TextBox que voc cria em um formulrio
Text3.
A propriedade Name de um objeto deve iniciar-se com uma letra, e ter no mximo 40 caracteres. Ela pode incluir nmeros e
caracteres sublinhado (_), mas no pode incluir pontuao ou espaos. Os formulrios no podem ter o mesmo nome que
outro objeto pblico como, por exemplo, Clipboard, Screen ou App. Embora, a configurao da propriedade Name possa
ser uma palavra-chave, nome de propriedade ou nome de outro objeto, isto pode criar conflitos em seu cdigo.
Voc pode usar a propriedade Name do formulrio com a instruo Dim durante o tempo de execuo para criar outras
ocorrncias do formulrio. Voc no pode ter dois formulrios com o mesmo nome durante o tempo de criao.
Voc pode criar uma matriz de controle do mesmo tipo configurando a propriedade Name como o mesmo valor. Por
exemplo, quando voc configura o nome de todos os botes de opo em um grupo como MyOpt, o Visual Basic atribui
valores exclusivos propriedade Index de cada controle para diferenci-los de outros na matriz. Dois controles de tipos
diferentes no podem compartilhar o mesmo nome.
Observao: Embora o Visual Basic, com freqncia, utilize a configurao da propriedade Name como valor padro
para as propriedades Caption, LinTopic e Text, alterar uma destas propriedades no afeta as outras.

Propriedade Parent
Retorna o formulrio, objeto ou coleo que contm um controle, ou outro objeto ou coleo.
Sintaxe
object.Parent
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Use a propriedade Parent para acessar as propriedades, mtodos ou controles de um pai do objeto. Por exemplo:
MyButton.Parent.MousePointer = 4
A propriedade Parent til em um aplicativo em que voc passa objetos como argumentos. Por exemplo, voc poderia
passar uma varivel de controle a um procedimento geral em um mdulo e usar a propriedade Parent para acessar seu
formulrio pai.
No existe relacionamento entre a propriedade Parent e a propriedade MDIChild. Existe, entretanto, um relacionamento
pai-filho entre um objeto MDIForm e qualquer objeto Form que tenha uma propriedade MDIChild configurada como True.

Propriedade Path
Retorna ou configura o caminho atual. No est disponvel durante o tempo de criao. Para o objeto App, somente leitura
durante o tempo de execuo.
Sintaxe
object.Path [= pathname]
A sintaxe da propriedade Path tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Funes Internas

461

pathname

Applies To.
Uma expresso de seqncia de caracteres que avaliada
como o nome do caminho.

Comentrios
O valor da propriedade Path uma seqncia de caracteres indicando um caminho, por exemplo, C:\Ob ou
C:\Windows\System. Para um controle DirListBox ou FileListBox, o padro o caminho atual quando o controle criado
durante o tempo de execuo. Para o objeto App, Path especifica o caminho do arquivo de projeto .VBP ao executar o
aplicativo a partir do ambiente de desenvolvimento ou o caminho do arquivo .exe quando o aplicativo executado como um
arquivo executvel.
Use esta propriedade ao criar os recursos de manipulao e procura de arquivos do aplicativo. Configurar a propriedade
Path afeta um controle semelhando ao comando chdir do MS-DOS caminhos relativos so permitidos, com ou sem uma
especificao de unidade de disco. As especificao de uma unidade de disco apenas com dois pontos (:) seleciona o
diretrio atual naquela unidade de disco.
A propriedade Path tambm pode ser configurada como um caminho de rede qualificado sem uma conexo de unidade de
disco usando a sintaxe abaixo:
\\servername\sharename\path
A sintaxe acima altera a propriedade Drive para uma seqncia de caracteres de comprimento zero ("").
Alterar o valor de Path produz estes efeitos:
Em um controle DirListBox, gera um evento Change.
Em um controle FileListBox, gera um evento PathChange.
Observao: Para DirListBox, o valor de retorno de Path diferente daquele List(ListIndex), que retorna apenas a
seleo.

Propriedade Zoom
Retorna ou configura a porcentagem pela qual o resultado impresso deve ser escalonado para cima ou para baixo. No
est disponvel durante o tempo de criao.
Sintaxe
object.Zoom [= number]
A sintaxe da propriedade Zoom tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
number
Uma expresso numrica que avaliada como uma
porcentagem segundo a qual o resultado impresso deve ser
escalonado. O padro 0, que especifica que a pgina
impressa aparece com seu tamanho normal.
Comentrios
A configurao da propriedade Zoom escalona o tamanho da pgina fsica para cima ou para baixo, segundo um fator de
Zoom/100, at o tamanho aparente do resultado impresso. Por exemplo, uma pgina tamanho carta impressa com Zoom
configurada como 50 contm tantos dados quanto uma pgina do tamanho 17 por 22 polegadas pois o texto impresso e os
elementos grficos so escalonados para metade de sua altura e largura originais.
Observao: O efeito das propriedades do objeto Printer depende do driver fornecido pelo fabricante da impressora.
Algumas configuraes de propriedade podem no ter efeito algum, ou diversas configuraes de propriedade diferentes
podem ter todas o mesmo efeito. As configuraes fora do intervalo aceito podem ou no produzir um erro. Para maiores
informaes, consulte a documentao do fabricante para o driver especfico.

Propriedade Font
Retorna o objeto Font.
Sintaxe
object.Font
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Use a propriedade Font de um objeto para identificar um objeto Font especfico cujas propriedades voc deseja usar. Por
exemplo, o cdigo abaixo altera a configurao da propriedade Bold de um objeto Font identificado pela propriedade Font
de um objeto TextBox:
txtFirstName.Font.Bold = True

Funes Internas

462

Propriedade Container
Retorna ou configura o recipiente de um controle em um Form. No est disponvel durante o tempo de criao.
Sintaxe
Set object.Container [= container]
A sintaxe da propriedade Container em estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
container
Uma expresso de objeto que avaliada como um objeto que
pode servir como um recipiente para outros controles,
conforme descrito em Comentrios.
Comentrios
Os controles abaixo podem conter outros controles:
Controle Frame
Controle PictureBox.

Propriedade Object
Retorna uma referncia a uma propriedade ou mtodo de um controle que tem o mesmo nome que uma propriedade ou
mtodo automaticamente estendido ao controle pelo Visual Basic.
Sintaxe
object.Object[.property | .method]
A sintaxe da propriedade Object tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
property
Propriedade do controle que idntica ao nome de uma
propriedade fornecida pelo Visual Basic.
Method
Mtodo do controle que idntico ao nome de um mtodo
fornecido pelo Visual Basic.
Comentrios
Observao: A propriedade Object retorna o objeto que a base para o controle, sem as propriedades e mtodos
automaticamente estendidos ao controle pelo Visual Basic. Portanto, voc tambm pode referir-se s propriedades e
mtodos "personalizados" do controle atravs da propriedade Object, por exemplo, Print SSTab1.Object.Tabs.
O Visual Basic fornece todas ou um conjunto padro de propriedades e mtodos a controles em um projeto Visual Basic.
possvel para um controle ou componente ActiveX (por exemplo, o Microsoft Excel ou o Microsoft Word) definir uma
propriedade ou mtodo que tenha o mesmo nome que uma destas propriedades ou mtodos padro. Quando isto ocorre, o
Visual Basic utiliza automaticamente a propriedade ou mtodo que ele fornece, ao invs de outra com o mesmo nome
definido no controle. A propriedade Object permite ignorar a propriedade ou mtodo fornecido pelo Visual Basic e usar a
propriedade ou mtodo com nome idntico definidos no controle.
Por exemplo, a propriedade Tag uma propriedade fornecida a todos os controles em um projeto Visual Basic. Se um
controle de um projeto tem o nome ctlDemo, voc acessa a propriedade Tag usando esta sintaxe:
ctlDemo.Tag
O Visual Basic usa automaticamente a propriedade Tag que ele fornece. Entretanto, se o controle define sua prpria
propriedade Tag e voc deseja acessar esta propriedade, voc usa a propriedade Object nesta sintaxe:
ctlDemo.Object.Tag
O Visual Basic estende automaticamente algumas ou todas as propriedades, mtodos e eventos a controles em um projeto
do Visual Basic:
Propriedades
Align
Height
Object
Binding
HelpContextID
Parent
Bindings
Index
TabIndex
Cancel
Left
TabStop
Container
LeftNoRun
TagParent
DataChanged
LinItem
ToolTipText
DataField
LinMode
Top
DataSource
LinTimeout
TopNoRun
Default
LinTopic
VisibleTabStop
DragIcon
Name
WhatsThisHelpID
DragMode
NegotiateLinItem
Width
Mtodos
Drag
LinExecute
LinPoe
LinRequest

LinSend
Move
Refresh
SetFocus

ShowWhatsThis
Zorder

Funes Internas

463

Eventos
GotFocus
LinClose

LinError
LinNotify

LinOpen
LostFocus

Se voc usa uma propriedade ou mtodo de um controle e no obtm o comportamento esperado, verifique se a
propriedade ou mtodo tem o mesmo nome que um destes exibidos na lista acima. Se os nomes corresponderem, verifique
a documentao fornecida com o controle para ver se o comportamento corresponde ao da propriedade ou mtodo
fornecidos pelo Visual Basic. Se os comportamentos no forem idnticos, pode ser necessrio usar a propriedade Object
para acessar o recurso do controle desejado.

Propriedade ToolTipText
Retorna ou configura uma Dica de ferramentas.
Sintaxe
object.ToolTipText [= string]
A sintaxe da propriedade ToolTipText tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma seqncia de caracteres associada a um objeto na lista
Applies To, que aparece em um pequeno retngulo abaixo do
objeto quando o cursor do usurio passa sobre o objeto
durante o tempo de execuo durante cerca de um segundo.
Comentrios
Se voc usa somente uma imagem para rotular um objeto, pode usar esta propriedade para explicar cada objeto com
algumas palavras.
Durante o tempo de criao, voc pode configurar a seqncia de caracteres da propriedade ToolTipText na caixa de
dilogo de propriedades do controle.
Para os controles Toolbar e TabStrip, voc precisa configurar a propriedade ShowTips como True para exibir Dicas de
ferramentas.

Exemplo da propriedade ActiveForm


Este exemplo imprime a hora no formulrio filho ativo em um objeto MDIForm. Para experimentar este exemplo, crie um
MDIForm, desenhe um controle PictureBox nele e um controle CommandButton na PictureBox. No Form1, configure a
propriedade MDIChild como True. Voc tambm pode configurar AutoRedraw como True para manter o texto no
formulrio mesmo aps cobri-lo com outro formulrio. Cole o cdigo adequado na seo Declarations de cada formulrio e
pressione F5.
' Copiar todo o cdigo no formulrio MDI.
Private Sub MDIForm_Load ()
Dim NewForm As New Form1 ' Cria uma nova ocorrncia de Form1.
NewForm.Show
End Sub
Private Sub Command1_Clic ()
' Imprime a hora no formulrio ativo.
ActiveForm.Print "The time is " & Format(Now, "Long Time")
End Sub
Este exemplo mostra como voc pode usar o objeto Clipboard em operaes de recorte, cpia, colagem e excluso
usando botes em uma barra de ferramentas. Para experimentar este exemplo, crie um novo projeto, coloque os controles
TextBox e ChecBox em Form1 e crie um novo formulrio MDI. No formulrio MDI, coloque um controle PictureBox e
insira um controle CommandButton na PictureBox. Configure a propriedade Index do CommandButton como 0 (criando
uma matriz de controles). Configure a propriedade MDIChild de Form1 como True.
Para executar este exemplo, copie o cdigo na seo Declarations do MDIForm e pressione F5. Observe que quando a
ChecBox tem o foco, os botes no funcionam, j que Checbox agora o controle ativo, ao invs de TextBox.
Private Sub MDIForm_Load ()
Dim I
' Declarar varivel.
Command1(0).Move 0, 0, 700, 300 ' Posicionar o boto na barra de ferramentas.
For I = 1 To 3 ' Criar outros botes.
Load Command1(I) ' Criar boto.
Command1(I).Move I * 700, 0, 700, 300 ' Posicionar e dimensionar boto.
Command1(I).Visible = True
' Exibir boto.
Next I
Command1(0).Caption = "Cut" ' Configurar boto.
Command1(1).Caption = "Copy"
Command1(2).Caption = "Paste"
Command1(3).Caption = "Del"
End Sub
Private Sub Command1_Clic (Index As Integer)

Funes Internas

464

' ActiveForm refere-se ao formulrio ativo no formulrio MDI.


If TypeOf ActiveForm.ActiveControl Is TextBox Then
Select Case Index
Case 0 ' Cut.
' Copiar texto selecionado para a rea de transferncia.
Clipboard.SetText ActiveForm.ActiveControl.SelText
' Excluir o texto selecionado.
ActiveForm.ActiveControl.SelText = ""
Case 1 ' Copiar.
' Copiar o texto selecionado para a rea de transferncia.
Clipboard.SetText ActiveForm.ActiveControl.SelText
Case 2 ' Colar.
' Colocar o texto da rea de transferncia na caixa de texto.
ActiveForm.ActiveControl.SelText = Clipboard.GetText()
Case 3 ' Excluir.
' Exclui o texto selecionado.
ActiveForm.ActiveControl.SelText = ""
End Select
End If
End Sub

Exemplo da propriedade Caption


Este exemplo altera a propriedade Caption de um controle CommandButton toda vez que o usurio clica no boto. Para
experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio contendo um CommandButton
chamado Command1 e, em seguida, pressione F5 e clique no boto.
Private Sub Command1_Clic ()
' Verificar a legenda e altera-la Then
Command1.Caption = "O"
Else
Command1.Caption = "Cliced"
End If
End Sub

Exemplo da propriedade Checed


Este exemplo exibe e remove uma marca de seleo junto a um item de menu. Para experimentar este exemplo, crie um
formulrio contendo um controle Menu que tenha um item de menu (configure ambas as propriedades Caption e Name
como MyMenuItem) e, em seguida, pressione F5 e escolha o item de menu.
Private Sub MyMenuItem_Clic ()
' Ativar e desativar a marca de seleo no item de menu.
MyMenuItem.Checed = Not MyMenuItem.Checed
End Sub

Exemplo da propriedade Enabled


Este exemplo ativa um controle CommandButton toda vez que um controle TextBox tiver texto. Para experimentar este
exemplo, cole o cdigo na seo Declarations de um formulrio que contenha controles CommandButton e TextBox e, em
seguida, pressione F5 e digite alguma coisa na caixa de texto.
Private Sub Form_Load ()
Text1.Text = ""
' Limpar a caixa de texto.
Command1.Caption = "Save" ' Colocar a legenda em um boto.
End Sub
Private Sub Text1_Change ()
If Text1.Text = "" Then ' Verificar se a caixa de texto est vazia.
Command1.Enabled = False ' Desativar o boto.
Else
Command1.Enabled = True
' Ativar o boto.
End If
End Sub

Exemplo da propriedade HelpContextID


Este exemplo utiliza tpicos no arquivo da Ajuda do Visual Basic para demonstrar como especificar nmeros de contexto
para tpicos da TextBox. Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio que
contenha um controle TextBox e um controle Frame com um controle OptionButton dentro dele. Pressione F5. Uma vez
que o programa estiver em execuo, mova o foco para um dos controles e pressione F1.
' Os verdadeiros nmeros de contexto do arquivo da Ajuda do Visual Basic.
Const winColorPalette = 21004 ' Definir constantes.
Funes Internas

465

Const winToolbox = 21001


Const winCodeWindow = 21005
Private Sub Form_Load ()
App.HelpFile = "VB.HLP"
Frame1.HelpContextID = winColorPalette
Text1.HelpContextID = winToolbox
Form1.HelpContextID = winCodeWindow
End Sub

Exemplo da propriedade Index


Este exemplo inicia com dois controles OptionButton e adiciona um novo OptionButton ao formulrio cada vez que voc
clica em um controle CommandButton. Quando voc clica em um OptionButton, a propriedade FillStyle configurada e
um novo crculo desenhado. Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio que
tenha dois controles OptionButton, um CommandButton e um grande controle PictureBox. Configure a propriedade
Name de ambos os controles OptionButton como optButton para criar uma matriz de controles.
Private Sub OptButton_Clic (Index As Integer)
Dim H, W
' Declara variveis.
Picture1.Cls ' Limpar a figura.
Picture1.FillStyle = Index ' Configurar FillStyle.
W = Picture1.ScaleWidth / 2
' Obter o tamanho de um crculo.
H = Picture1.ScaleHeight / 2
Picture1.Circle (W, H), W / 2
' Desenhar crculo.
End Sub
Private Sub Command1_Clic ()
Static MaxIdx
' O maior indica na matriz.
If MaxIdx = 0 Then MaxIdx = 1 ' Preconfigurar MaxIdx.
MaxIdx = MaxIdx + 1 ' Incrementar o ndice.
If MaxIdx > 7 Then Exit Sub
' Colocar oito botes no formulrio.
Load OptButton(MaxIdx) ' Criar um novo item na matriz.
' Configurar a localizao de novo boto de opo sob o boto anterior.
OptButton(MaxIdx).Top = OptButton(MaxIdx - 1).Top + 360
OptButton(MaxIdx).Visible = True ' Tornar visvel o novo boto.
End Sub

Exemplo da propriedade Parent


Este exemplo passa um controle de um formulrio que no tem o foco para um procedimento em um mdulo e ento exibe
o estado do controle no formulrio pai. Para experimentar este exemplo, crie trs formulrios, Form1 contendo um controle
CommandButton, Form2 e Form3 contendo cada um deles um controle ChecBox. Voc tambm deve criar um novo
mdulo (clique em Add Module no menu Project). Cole o cdigo nas sees Declarations dos respectivos formulrios e
mdulos, e ento pressione F5 para executar o programa.
' Inserir este cdigo em Form1.
Private Sub Form_Load ()
Form2.Show ' Exibir todos os formulrios.
Form3.Show
Form2.AutoRedraw = True
Form3.AutoRedraw = True
End Sub
Private Sub Command1_Clic ()
ReadChecBox Form2.Chec1
ReadChecBox Form3.Chec1
End Sub

' Chamar procedimento em outro mdulo


' e enviar o controle como argumento.

' Inserir este cdigo em Module1.


Sub ReadChecBox (Source As Control)
If Source.Value Then
Source.Parent.Cls
' Limpar o formulrio pai.
Source.Parent.Print "ChecBox is On." ' Exibir no formulrio pai.
Else
Source.Parent.Cls
' Limpar o formulrio pai.
Source.Parent.Print "ChecBox is Off." ' Exibir no formulrio pai.
End If
End Sub

Funes Internas

466

Exemplo da propriedade Path


Este exemplo exibe uma lista de arquivos para a unidade de disco e diretrio selecionados. Para experimentar este
exemplo, cole o cdigo na seo Declarations de um formulrio que contenha controles DriveListBox, DirListBox e
FileListBox. Pressione F5. Use o mouse para alterar a unidade de disco ou diretrio.
Private Sub Drive1_Change ()
Dir1.Path = Drive1.Drive ' Configurar o caminho do diretrio.
End Sub
Private Sub Dir1_Change ()
File1.Path = Dir1.Path ' Configurar o caminho do arquivo.
End Sub

Exemplo da propriedade Container


Este exemplo demonstra a movimentao de um controle CommandButton de recipiente para recipiente em um objeto
Form. Para experimentar este exemplo, cole o cdigo na seo Declarations de um formulrio que contenha um controle
Frame, um controle PictureBox e um CommandButton e ento pressione F5.
Private Sub Form_Clic()
Static intX As Integer
Select Case intX
Case 0
Set Command1.Container = Picture1
Command1.Top= 0
Command1.Left= 0
Case 1
Set Command1.Container = Frame1
Command1.Top= 0
Command1.Left= 0
Case 2
Set Command1.Container = Form1
Command1.Top= 0
Command1.Left= 0
End Select
intX = intX + 1
End Sub

Propriedade DisabledPicture
Retorna ou configura uma referncia a uma figura a ser exibida em um controle quando este desativado (ou seja, quando
sua propriedade Enabled estiver configurada como False).
Sintaxe
object.DisabledPicture [= picture]
A sintaxe da propriedade DisabledPicture tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
picture
Um objeto Picture contendo um elemento grfico, conforme
descrito em Configuraes.
Configuraes
As configuraes para picture so:
Configurao
Descrio
(None)
(Padro) Nenhuma figura.
(Bitmap, icon, metafile) Especifica um elemento grfico. Voc pode carregar o
elemento grfico na janela Properties durante o tempo de
criao. Durante o tempo de execuo, voc tambm pode
configurar esta propriedade usando a funo LoadPicture
em um bitmap, cone, ou metarquivo, ou configurando-a na
propriedade Picture de outro controle.
Comentrios
A propriedade DisabledPicture especifica um objeto de figura a ser exibido quando o controle como CommandButton for
desativado. A propriedade DisabledPicture ser ignorada, a no ser que a propriedade Style esteja configurada como 1
(grfica).
A figura centralizada de maneira horizontal e vertical no controle. Se existir uma legenda, assim como uma figura, esta
centralizada acima da legenda. Se o objeto figura for grande demais para caber no controle, ele ento recortado.
Se nenhuma figura for atribuda propriedade DisabledPicture, mas uma for atribuda propriedade Picture, ento uma
verso acinzentada daquela figura ser exibida quando o controle estiver desativado.

Funes Internas

467

Propriedade DownPicture
Retorna ou configura uma referncia a uma figura a ser exibida em um controle quando este clicado e na posio
abaixada (pressionado).
Sintaxe
object.DownPicture [= picture]
A sintaxe da propriedade DownPicture tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
picture
Um objeto Picture contendo um elemento grfico, conforme
descrito em Configuraes.
Configuraes
As configuraes para picture so:
Configurao
Descrio
(None)
(Padro) Nenhuma figura.
(Bitmap, icon, metafile) Especifica um elemento grfico. Voc pode carregar o
elemento grfico a partir da janela Properties durante o
tempo de criao. Durante o tempo de execuo, voc
tambm pode configurar esta propriedade usando a funo
LoadPicture em um bitmap, cone, ou metarquivo ou
configurando-o como a propriedade Picture de outro
controle.
Comentrios
A propriedade DownPicture refere-se a um objeto de figura que exibido quando o boto est no estado comprimido. A
propriedade DownPicture ignorada, a menos que a propriedade Style esteja configurada como 1 (grfico). Observe que
quando a propriedade Style de um controle OptionButton ou ChecBox estiver configurada como grfica e seu boto
pressionado, o segundo plano do boto estar pontilhado, mas a figura no boto no.
A figura centralizada de maneira horizontal e vertical no boto. Se existir uma legenda includa com a figura, esta ser
centralizada acima da legenda. Se nenhuma figura for atribuda a esta propriedade quando o boto estiver pressionado,
ento a figura atualmente atribuda propriedade Picture ser utilizada. Se nenhuma figura for atribuda propriedade
Picture ou DownPicture, ento somente a legenda ser exibida. Se o objeto de figura for grande demais para caber no
boto, ento ele ser recortado.

Propriedade Item
Retorna um membro especfico de um objeto Collection, por posio ou por chave.
Sintaxe
object.Item( index )
A sintaxe da propriedade Item tem o seguinte qualificador de objeto e parte:
Parte
object
index

Descrio
Obrigatrio. Uma expresso de objeto que avalia para um objeto na
lista Applies To.
Obrigatrio. Uma expresso que especifica a posio de um
membro da coleo. Se for uma expresso numrica, o ndice deve
ser um nmero de 1 at o valor da propriedade Count da coleo.
Se for uma expresso de seqncia de caracteres, o ndice deve
corresponder ao argumento-chave especificado quando o membro
referido foi adicionado coleo.

Comentrios
Se o valor fornecido como ndice no corresponder a qualquer membro existente da coleo, ocorrer um erro.
Item a propriedade padro para uma coleo. Portanto, as linhas de cdigo abaixo so equivalentes:
Print MyCollection(1)
Print MyCollection.Item(1)

Funes Internas

468

Propriedade MasColor
Retorna ou configura uma cor em uma figura de boto como uma "mscara" (ou seja, transparente).
Sintaxe
object.MasColor [= color]
A sintaxe da propriedade MasColor tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
color
Um valor ou constante que determina a cor a ser utilizada
como mscara, conforme descrito em Configuraes.
Configuraes
O Visual Basic usa o esquema de cores RGB (vermelho-verde-azul) do ambiente operacional Windows. As configuraes
para color so:
Configurao
Descrio
Cores RGB normais
As cores especificadas usando a paleta Color ou usando as
funes RGB ou QBColor no cdigo.
&H00C0C0C0

(Padro) Cinza claro.

Comentrios
Se as cores do sistema forem alteradas, ento a cor que for transparente se alterar, tornando o aspecto de sua figura
imprevisvel. uma boa prtica de programao usar cores que no pertenam ao sistema.
Esta propriedade somente usada quando a propriedade UseMasColor for configurada como True, e o boto tiver uma
figura no estilo bitmap atribuda a sua propriedade Picture (cones e metarquivos j contm informaes de transparncia).
Se a propriedade MasColor for alterada durante o tempo de execuo, o boto se redesenhar com a nova cor
funcionando como mscara.

Propriedade UseMasColor
Retorna ou configura um valor que determina se a cor atribuda propriedade MasColor usada como uma "mscara" (ou
seja, usada para criar reas transparentes).
Sintaxe
object.UseMasColor [= boolean]
A sintaxe da propriedade UseMasColor tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana que especifica se a cor atribuda
propriedade MasColor usada como uma mscara.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
A cor designada propriedade MasColor usada como uma
mscara, criando uma rea transparente em qualquer lugar
que a cor estiver.
False
(Padro) A cor designada propriedade MasColor
ignorada e a cor permanece opaca.

Propriedade WhatsThisHelpID
Retorna ou configura um nmero de contexto associado para um objeto. Use para oferecer ajuda vinculada ao contexto
para seu aplicativo usando a pop-up O que isto? na Ajuda do Windows 95.
Sintaxe
object.WhatsThisHelpID [= number]
A sintaxe da propriedade WhatsThisHelpID tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
number
Uma expresso numrica especificando um nmero de contexto da
Ajuda , conforme descrito em Configuraes.
Configuraes
As configuraes para number so:
Configurao
Descrio
0
(Padro) Nenhum nmero de contexto especificado.
>0
Um nmero inteiro especificando o nmero de contexto vlido para o
tpico O que isto? associado ao objeto.

Funes Internas

469

Comentrios
O Windows 95 usa o boto O que isto? no canto superior direito da janela para iniciar a Ajuda do Windows e carregar
um tpico identificado pela propriedade WhatsThisHelpID.

Propriedade WhatsThisButton
Retorna ou configura um valor que determina se o boto O que isto? aparece na barra de ttulo de um objeto Form.
Somente para leitura durante o tempo de execuo.
Sintaxe
object.WhatsThisButton
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes para a propriedade WhatsThisButton so:
Configurao
Descrio
True
Ativa a exibio do boto da Ajuda O que isto?.
False
(Padro) Desativa a exibio do boto da Ajuda O que isto?.
Comentrios
A propriedade WhatsThisHelp deve ser True para que a propriedade WhatsThisButton seja True. Alm disso, as
propriedades abaixo tambm devem ser configuradas como mostrado:
Propriedade ControlBox = True
Propriedade BorderStyle = Fixed Single ou Sizable
MinButton e MaxButton = False
Ou
Propriedade BorderStyle = Fixed Dialog

Propriedade WhatsThisHelp
Retorna ou configura um valor que determina se a ajuda vinculada ao contexto utiliza a pop-up O que isto? fornecida
pela Ajuda do Windows 95 ou a janela da Ajuda principal. Somente leitura durante o tempo de execuo.
Sintaxe
object.WhatsThisHelp [= boolean]
A sintaxe da propriedade WhatsThisHelp tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista Applies
To.
boolean
Um valor que determina se a Ajuda usa a pop-up O que isto?,
conforme descrito em Configuraes.
Configuraes
As configuraes para boolean so:
Configurao
Descrio
True
O aplicativo usa uma das tcnicas de acesso de O que isto? para
iniciar a Ajuda do Windows e carregar um tpico identificado pela
propriedade WhatsThisHelpID.
False
(Padro) O aplicativo usa a tecla F1 para iniciar a Ajuda da do
Windows e carregar o tpico identificado pela propriedade
HelpContextID.
Comentrios
Existem trs tcnicas de acesso para oferecer Ajuda O que isto? a um aplicativo. A propriedade WhatsThisHelp deve
ser configurada como True para que qualquer uma destas tcnicas funcione.
Oferecer um boto O que isto? na barra de ttulo do formulrio usando a propriedade WhatsThisButton. O ponteiro do
mouse se transforma no estado O que isto? (seta com ponto de interrogao). O tpico exibido identificado pela
propriedade WhatsThisHelpID do controle clicado pelo usurio.
Acionar o mtodo WhatsThisMode de um formulrio. Isto produz o mesmo comportamento que clicar no boto O que
isto? sem usar um boto. Por exemplo, voc pode acionar este mtodo a partir de um comando em um menu na barra de
menus de seu aplicativo.
Chamar o mtodo ShowWhatsThis para um determinado controle. O tpico exibido identificado pela propriedade
WhatsThisHelpID do controle.

Mtodo ShowWhatsThis
Exibe um tpico selecionado em um arquivo da Ajuda usando a pop-up O que isto? oferecida pela Ajuda do Windows
95.
Sintaxe
object.ShowWhatsThis
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
O mtodo ShowWhatsThis muito til para oferecer ajuda vinculada ao contexto a partir de um menu de contexto em seu
aplicativo. O mtodo exibe o tpico identificado pela propriedade WhatsThisHelpID do objeto especificado na sintaxe.
Funes Internas

470

Exemplo de mtodo ShowWhatsThis


Este exemplo exibe o tpico da Ajuda O que isto? para um controle CommandButton selecionando um comando de
menu em um menu de contexto criado para o boto. Configura a propriedade WhatsThisHelp do formulrio como True.
Coloca um controle CommandButton em um formulrio, cria um menu usando o Editor Menu com um item invisvel de alto
nvel chamado mnuBtnContextMenu e um submenu chamado mnuBtnWhatsThis com a legenda O que isto?.
Private ThisControl As Control
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
Set ThisControl = Command1
PopupMenu mnuBtnContextMenu
End If
Set ThisControl = Nothing
End Sub
Private Sub mnuBtnWhatsThis_Clic()
ThisControl.ShowWhatsThis
End Sub

Mtodo WhatsThisMode
{ewc
HLP95EN.DLL,DYNALIN,"Consulte
tambm":"vbmthWhatsThisModeC;vbproBoosOnlineJumpTopic"}
HLP95EN.DLL,DYNALIN,"Exemplo":"vbmthWhatsThisModeX":1}
{ewc HLP95EN.DLL,DYNALIN,"Aplica-se a":"vbmthWhatsThisModeA"}
HLP95EN.DLL,DYNALIN,"Especificidades":"vbmthWhatsThisModeS"}

{ewc
{ewc

Provoca a transformao do ponteiro do mouse no ponteiro O que isto? e prepara o aplicativo para exibir a Ajuda O que
isto? sobre o objeto selecionado.
Sintaxe
object.WhatsThisMode
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Executar o mtodo WhatsThisMode coloca o aplicativo no mesmo estado que voc obtm clicando o boto O que isto?
na barra de ttulo. O ponteiro do mouse se altera para o ponteiro O que isto?. Quando o usurio clica em um objeto, a
propriedade WhatsThisHelpID do objeto clicado usada para acionar a ajuda vinculada ao contexto. Este mtodo
especialmente til ao se chamar a Ajuda a partir de um menu na barra de menus de seu aplicativo.

Exemplo de mtodo WhatsThisMode


Este exemplo usa um comando em um menu para alterar o ponteiro do mouse para o ponteiro O que isto? e ativar a
ajuda vinculada ao contexto. Para experimentar este exemplo, crie um menu e cole o cdigo no evento Clic de um dos
controles Menu. Pressione F5 e clique no comando de menu para alternar o aplicativo para o estado O que isto?.
Private Sub mnuContextHelp_Clic ()
Form1.WhatsThisMode
End Sub

Propriedade ShowInTasbar
Retorna ou configura um valor que determina se o objeto Form aparece na barra de ferramentas do Windows 95. Somente
leitura durante o tempo de execuo.
Sintaxe
object.ShowInTasbar
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Configuraes
As configuraes para a propriedade ShowInTasbar so:
Configurao
Descrio
True
(Padro) O objeto Form aparece na barra de tarefas.
False
O objeto Form no aparece na barra de tarefas.
Comentrios
Use a propriedade ShowInTasbar para impedir que caixas de dilogo em seu aplicativo apaream na barra de tarefas.
O valor padro para a propriedade ShowInTasbar assume a configurao padro para a propriedade BorderStyle do
objeto Form (Sizable). Alterar a propriedade BorderStyle pode alterar a configurao da propriedade ShowInTasbar.

Propriedade BorderStyle (Controles ActiveX)


Retorna ou configura o estilo de borda de um objeto.
Sintaxe
object.BorderStyle [= value]
A sintaxe da propriedade BorderStyle tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Funes Internas

471

Applies To.
Um valor ou constante que determina o estilo de borda,
conforme descrito em Configuraes.

value

Configuraes
As configuraes de value so:
Constante
Valor
ccNone
0
ccFixedSingle

Descrio
(Padro)
Nenhuma
borda
relacionados com bordas.
nica e fixa.

ou

elementos

Obs.: O prefixo cc refere-se aos controles do Windows 95. Para outros controles, os prefixos das configuraes se
alteram com o controle especfico ou grupo de controles. Entretanto, a descrio permanece a mesma, a menos que seja
indicado.
Observaes
Configurar BorderStyle para um controle ProgressBar diminui o tamanho dos blocos exibidos pelo controle.

Funes Internas

472

Propriedade Image (Controles ActiveX)


Retorna ou configura um valor que especifica qual objeto ListImage em um controle ImageList deve ser usado com outro
objeto.
Sintaxe
object.Image [= index]
A sintaxe da propriedade Image tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
Um nmero inteiro ou seqncia de caracteres exclusiva
especificando o objeto ListImage a ser usado com object. O
nmero inteiro o valor da propriedade Index; a seqncia
de caracteres o valor da propriedade ey.
Comentrios
Antes de configurar a propriedade Image, voc deve associar um controle ImageList a um controle ToolBar, TreeView ou
TabStrip configurando a propriedade ImageList de cada controle como um controle ImageList.
Durante o tempo de criao, coloque um controle ImageList no formulrio e carregue-o com imagens, cada uma delas
sendo um objeto ListImage a que foi atribudo um nmero de ndice na coleo ListImages. Na guia General, da caixa de
dilogo Property Pages do controle, selecione a ImageList desejada na caixa de listagem ImageList, como ImageList1.
Para objetos Tab e Button, voc tambm pode especificar a imagem que deseja associar a estes objetos digitando o
nmero de ndice do objeto ListImage especfico no campo Image da guia Tabs ou Buttons.
Durante o tempo de execuo, use cdigo como mostrado abaixo para associar uma ImageList a um controle e uma
ListImage a um objeto especfico:
Set TabStrip1.ImageList=ImageList1
TabStrip1.Tabs(1).Image=2
Use a propriedade ey para especificar um objeto ListImage do controle ImageList quando voc deseja que seu cdigo
seja auto-documentado, como segue:
' Presumindo-se que exista um objeto ListImage com a propriedade ey =
' "fechar", usar esta imagem para um boto Toolbar.
Toolbar1.Buttons(1).Image = "fechar"
' Isto mais fcil de ser lido que simplesmente especificar um valor Index, como abaixo:
Toolbar1.Buttons(1).Image = 4 ' Exigir que o objeto ListImage
' com a propriedade Index = 4 seja a imagem "fechar".
O valor da propriedade Index de um objeto pode se alterar quando objetos na coleo forem reclassificados, por exemplo,
quando voc configura a propriedade Sorted como True. Se voc esperar que a propriedade Index se altere
dinamicamente, pode ser mais til referir-se a objetos em uma coleo usando a propriedade ey.
Se no existirem imagens para uma coleo Tabs, o valor de index -1.

Funes Internas

473

Propriedade ey (Controles ActiveX)


Retorna ou configura uma seqncia de caracteres que identifica com exclusividade um membro de uma coleo.
Sintaxe
object.ey [= string]
A sintaxe da propriedade ey tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
string
Uma seqncia de caracteres identificando um membro de
uma coleo.
Comentrios
Se a seqncia de caracteres no for exclusiva, ocorrer um erro.
Voc pode configurar a propriedade ey quando usar o mtodo Add para adicionar um objeto a uma coleo.
O valor da propriedade Index de um objeto pode se alterar quando objetos na coleo forem reordenados como, por
exemplo, quando voc configura a propriedade Sorted como True. Se voc esperar que a propriedade Index se altere
dinamicamente, refira-se a objetos em uma coleo usando a propriedade ey.
Alm disso, voc pode usar a propriedade ey para tornar seu projeto Visual Basic "auto-documentado" atribuindo nomes
significativos a objetos em uma coleo.

Propriedade ImageList (Controles ActiveX)


Retorna ou configura o controle ImageList, se algum, que est associado a outro controle.
Sintaxe
object.ImageList [= imagelist]
A sintaxe da propriedade ImageList tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avaliada como um objeto na
lista Applies To.
imagelist
Uma referncia de objeto que especifica qual controle
ImageList deve ser usado.
Comentrios
Para que um controle use a propriedade ImageList, voc deve colocar um controle ImageList no formulrio. A seguir,
durante o tempo de criao, voc pode configurar a propriedade ImageList na caixa de dilogo Property Pages do
controle associado. Para associar uma ImageList a um controle durante o tempo de execuo, configure a propriedade
ImageList do controle como o controle ImageList que voc deseja usar, como no exemplo abaixo:
Set TabStrip1.ImageList = ImageList1

Funes Internas

474

Mtodo Clear (Controles ActiveX)


Remove todos os objetos em uma coleo.
Sintaxe
object.Clear
O espao reservado object representa uma expresso de objeto que avalia para um objeto na lista Applies To.
Comentrios
Para remover apenas um objeto de uma coleo, use o mtodo Remove.

Exemplo do mtodo Clear (Controles ActiveX)


Este exemplo adiciona seis objetos Panel a um controle StatusBar, criando um total de sete objetos Panel. Um clique no
formulrio limpa todos os objetos Panel quando o nmero atinge sete. Se o nmero de objetos Panel for menor que sete,
cada clique no formulrio adicionar um novo objeto Panel ao controle, at que o nmero sete seja novamente atingido.
Para experimentar este exemplo, coloque um controle StatusBar em um formulrio e cole o cdigo na seo Declarations.
Execute o exemplo e clique no formulrio para limpar todos os objetos Panel e subseqentemente adicionar objetos Panel.
Private Sub Form_Load()
Dim pnlX As Panel
' Declarar varivel de objeto para objetos Panel.
Dim I As Integer
' Adicionar 6 objetos Panel ao nico objeto Panel padro,
' fazendo 7 objetos Panel.
For I = 1 to 6
Set pnlX = StatusBar1.Panels.Add
Next I
End Sub
Private Sub Form_Clic()
' Se a Count da coleo for 7, limpar a coleo.
' Caso contrrio, adicionar um Panel e usar a propriedade Count da coleo
' para configurar seu Style.
If StatusBar1.Panels.Count = 7 Then
StatusBar1.Panels.Clear
Else
Dim pnlX As Panel
Set pnlX = StatusBar1.Panels.Add( , , "simple", 0)
' A propriedade Style enumerada de 0 a 6. Use a propriedade -1 de Count de Panels
' para configurar a propriedade Style do novo Panel.
' Exibir todos os painis, independente da largura do formulrio.
pnlX.minwidth = TextWidth("simple")
pnlX.AutoSize = sbrSpring
pnlX.Style = Statusbar1.Panels.Count - 1
End If
End Sub

Funes Internas

475

Mtodo Remove (Controles ActiveX)


Remove um membro especfico de uma coleo.
Sintaxe
object.Remove index
A sintaxe do mtodo Remove tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
index
Um nmero inteiro ou seqncia de caracteres que identifica
com exclusividade o objeto na coleo. Um nmero inteiro
especifica o valor da propriedade Index; uma seqncia de
caracteres especifica o valor da propriedade ey.
Comentrios
Para remover todos os membros de uma coleo, use o mtodo Clear.

Exemplo do mtodo Remove (Controles ActiveX)


Este exemplo adiciona seis objetos Panel a um controle StatusBar criando um total de sete objetos Panel. Quando voc
clica no formulrio, o cdigo verifica quantos objetos Panel existem. Se houver apenas um objeto Panel, o cdigo adiciona
seis objetos Panel. Caso contrrio, ele remove o primeiro painel. Para experimentar este exemplo, coloque um controle
StatusBar em um formulrio e cole o cdigo na seo Declarations. Execute o exemplo e clique no formulrio para remover
um objeto Panel de cada vez e subseqentemente adicionar objetos Panel.
Private Sub Form_Load()
Dim pnlX As Panel ' Declarar varivel de objeto para objetos Panel.
Dim i As Integer
' Adicionar 6 objetos Panel ao nico objeto Panel padro,
' fazendo 7 objetos Panel.
For i = 1 To 6
Set pnlX = StatusBar1.Panels.Add(, , , i)
pnlX.AutoSize = sbrSpring
Next i
End Sub
Private Sub Form_Clic()
' Se Count da coleo for 1, adicionar 6 objetos Panel.
' Caso contrrio, remover o primeiro painel da coleo.
If StatusBar1.Panels.Count = 1 Then
Dim sbrX As Panel
Dim i As Integer
For i = 1 To 6 ' Cada painel tem seu estilo configurado por i.
Set sbrX = StatusBar1.Panels.Add(, , , i)
sbrX.AutoSize = sbrSpring
Next i
Else ' Remover o primeiro painel.
StatusBar1.Panels.Remove 1
End If
End Sub

Funes Internas

476

Propriedade HideSelection (Controles ActiveX)


Retorna ou configura um valor que especifica se o item selecionado permanece realado quando o controle perde o foco.
Sintaxe
object.HideSelection [ = boolean]
A sintaxe da propriedade HideSelection tem estas partes:
Parte
Descrio
object
Uma expresso de objeto que avalia para um objeto na lista
Applies To.
boolean
Uma expresso Booleana especificando como um controle
exibido ao perder o foco, conforme descrito em
Configuraes.
Configuraes
As configuraes de boolean:
Configurao
Descrio
True
(Padro) Os itens no controle no esto mais selecionados
quando o controle perde o foco.
False
Os itens permanecem selecionados aps o controle ter
perdido o foco.
Comentrios
Normalmente, os itens selecionados em um controle so ocultados quando o controle perde o foco. Esta a ao padro
da propriedade.
Se voc desejar que os itens selecionados permaneam selecionados aps o controle ter perdido o foco, configure a
propriedade HideSelection como False.

Constantes de controle ActiveX


As constantes abaixo so reconhecidas pelos controles ActiveX. Como resultado, elas podem ser usadas em qualquer lugar
de seu cdigo substituindo valores efetivos.
Constantes BorderStyle
Constantes MousePointer
Use o Object Browser para visualizar as constantes intrnsecas que voc pode usar com mtodos e propriedades. A partir
do menu View, escolha Object Browser, selecione a biblioteca de controles adequada e o objeto Constants. Voc pode
rolar as constantes que aparecem no painel Members.
Obs.: Os prefixos de constantes alteram-se com o controle ou grupo de controles especficos. Entretanto, a descrio
permanece a mesma, a no ser que seja indicado.

Funes Internas

477

Constantes MousePointer
Constante

Valor

Descrio

ccDefault
ccArrow
ccCross
ccIbeam
ccIcon
ccSize

0
1
2
3
4
5

ccSizeNESW

ccSizeNS
ccSizeNWSE
ccSizeEW
ccUpArrow
ccHourglass
ccNoDrop
ccArrowHourglass
cc ArrowQuestion
ccSizeAll
ccCustom

7
8
9
10
11
12
13
14
15
99

(Padro) Forma determinada pelo objeto.


Seta.
Cruz (ponteiro em forma de cruz).
Formato de I.
cone (pequeno quadrado dentro de outro quadrado).
Tamanho (seta de quatro pontas, apontando para norte, sul, leste e
oeste).
Tamanho NE SW (seta dupla apontando para nordeste e
sudoeste).
Tamanho N S (seta dupla apontando para o norte o sul).
Tamanho NW, SE.
Tamanho E W (seta dupla apontando para leste e oeste).
Seta acima.
Ampulheta (espera).
Sem soltar.
Seta e ampulheta.
Seta e ponto de interrogao.
Dimensionar tudo.
cone personalizado especificado pela propriedade MouseIcon.

Obs.: O prefixo cc reservado para controles ActiveX. Os prefixos de constantes podem alterar-se com o controle ou
grupo de controles especficos. Entretanto, a descrio permanece a mesma, a menos que seja indicado.

Constantes BorderStyle (Controles ActiveX)


Constante
ccNone

Valor
0

Descrio
(Padro)
Nenhuma
relacionado com borda.

CcFixedSingle

(Padro para controle ListView) nica Fixa.


Existe uma borda de linha simples ao redor do
controle.

borda

ou

elemento

Obs.: O prefixo cc reservado para controles ActiveX. Os prefixos de constantes podem se alterar com o controle ou
grupo de controles especficos. Entretanto, a descrio permanece a mesma, a no ser que seja indicado.

Funes Internas

478

Você também pode gostar