Você está na página 1de 24

OMNI Softwares, Inc - Tutorial VB Script Microsoft Visual Basic Family Microsoft VBScript

Todos os Direitos Reservados a Microsoft O que VBScript?


Um dos recursos mais interessantes do ActiveX a disponibilidade de scripting em diversas linguagens. Desenvolvedores de aplicativo adotaram o Visual Basic com braos abertos porque era fcil de gerar aplicativos para Windows rapidamente sem se preocupar com muitos dos detalhes da programao do Windows. A Microsoft espera que, ao oferecer VBScript sob a plataforma de servios de scripting do ActiveX impulsione o desenvolvimento na Web de forma semelhante. O VBScript lhe permite incluir lgica condicional sofisticada e processamento de evento em uma pgina da Web sem compilar coisa alguma. E, se voc j conhece o Visual Basic, o VBScript ser muito fcil. Se voc nunca viu o Visual Basic, no se preocupe, pois o VBScript semelhante a outras linguagens de programao, e voc aprender rapidamente. O Microsoft Visual Basic Scripting Edition, o mais novo membro da famlia da linguagem de programao Visual Basic, traz scripting ativo para uma vasta variedade de ambientes, incluindo o scripting de cliente com o Microsoft Internet Explorer e o scripting de servidor com o Microsoft Internet Information Server.

Fcil de Usar e Aprender


Se voc j programa em Visual Basic ou Visual Basic for Applications, voc estar muito vontade em desenvolver aplicaes com o VBScript. Mesmo que voc no saiba programar em Visual Basic, uma vez aprendido o VBScript, voc estar no caminho certo para comear a programar com toda a famlia da linguagem Visual Basic. Embora voc possa aprender VBScript neste Tutorial, programao ir requerer um estudo mais aprofundado no disponvel neste Tutorial. Um bom conselho para os que desejam iniciar a programar na linguagem Visual Basic, so os livros disponveis no mercado que trazem exemplos didticos, ilustrativos e simples. ActiveX & Scripting O ActiveX Scripting oferece muito mais do que apenas uma linguagem de scripting para navegadores da Web. ActiveX uma plataforma para desenvolvimento de qualquer quantidade de linguagens de scripting para qualquer finalidade que os desenvolvedores da Web exijam. Usando os servios de scripting do ActiveX, uma linguagem de scripting pode ser implementada em qualquer plataforma. O ActiveX Scripting construdo a partir de dois componentes principais bsicos: Hosts de Scripting do ActiveX - Os aplicativos em que um scripting executado. Mecanismos de Scripting do ActiveX - A linguagem em que o scripting escrito. O ActiveX Scripting pode ser hospedado em diversos aplicativos. O melhor exemplo de um host do ActiveX MSIE 3.0. MSIE 3.0 aceita o VBScript. Alm disso, o ActiveX Scripting oferece um ambiente para dar suporte ao scripting em servidores da Web, ferramentas de autoria da Internet ou outros aplicativos, em diversas linguagens de scripting.

VBScript em outras Aplicaes e Browsers


Como um desenvolvedor, voc tem licena para usar seus cdigos fontes em VBScript em suas aplicaes. A Microsoft fornece implementaes binrias do VBScript em Windows 16-bits e 32-bits, e para o Macintosh. VBScript

integrado com browsers da World Wide Web. VBScript e ActiveX Scripting podem tambm ser usados como uma linguagem geral em outras aplicaes. Adicionando Cdigos do VBScript para uma Pgina HTML

Voc pode usar os elementos de SCRIPT, para adicionar cdigos do VBScript em uma pgina HTML.

A Tag <SCRIPT>
Os cdigos do VBScript so escritos dentro da tag <SCRIPT>. Por Exemplo, um procedimento para testar uma data de entrega pde aparecer como se segue:

<SCRIPT LANGUAGE=VBScript>
<!-Function CanDeliver(Dt) CanDeliver = (CDate(Dt) - Now()) > 2 End Function --> </SCRIPT> Inicia e conclui com a tag <SCRIPT>. O atributo LANGUAGE indica a linguagem de scripting. Voc deve especificar a linguagem porque os browsers podem usar outros tipos linguagens de scripting. Note que a funo CanDeliver embutida nas tags de comentrio (<!-- e -->). Isto previne browsers que no compreende a tag <SCRIPT> de exibir o cdigo. Voc pode incluir o Script na seo HEAD da pgina: <HTML> <HEAD> <TITLE>Place Your Order</TITLE> <SCRIPT LANGUAGE=VBScript> <!-Function CanDeliver(Dt) CanDeliver = (CDate(Dt) - Now()) > 2 End Function --> </SCRIPT> </HEAD> <BODY> ... Voc pode usar blocos de SCRIPT em qualquer parte de uma pgina HTML. Voc pode coloc-lo na seo BODY e ou HEAD. Entretanto, voc provavelmente desejar colocar todo o cdigo de scripting na seo HEAD, com o intuito de organiz-lo. Guardando seu cdigo na seo HEAD voc assegura que todo o cdigo est sendo lendo e decodificado antes de qualquer chamadas da seo BODY da pgina HTML. Um exceo notvel para esta regra que voc pode desejar fornecer cdigo do inline scripting ao responder os eventos de objetos em seu formulrio. Por Exemplo, voc pode embutir cdigo do scripting para responder a um clique no boto em um formulrio: <HTML> <HEAD> <TITLE>Test Button Events</TITLE> </HEAD> <BODY> <FORM NAME=Form1> <INPUT TYPE=Button NAME=Button1 VALUE=Click> <SCRIPT FOR=Button1 EVENT=onClick LANGUAGE=VBScript>

MsgBox Button Pressed! </SCRIPT> </FORM> </BODY> </HTML> A maior parte de seu cdigo aparecer em procedimentos Sub ou Function, sendo executadas apenas quando forem chamadas. Entretanto, voc pode escrever cdigos em VBScript fora dos procedimentos, mas ainda dentro um bloco de SCRIPT. Este cdigo executado apenas uma vez, quando a pgina HTML for carregada. Isto permite a voc iniciar dados ou criar um dinamismo na forma de exibir sua pgina, enquanto ela carregada.

Tipos de Dados do VBScript O que Tipos de Dados do VBScript?


O VBScript tem unicamente um tipo de dado chamado Variant. Um dado Variant uma espcie especial de tipo de dados que pode conter espcies diferentes de informao, dependendo de como seja usado. Como Variant o nico tipo de dados do VBScript, este ser tambm o tipo de dado retornado pelas funes do VBScript. Uma varivel declarada como Variant pode conter um valor numrico, ou uma cadeia de caracter. Se voc est trabalhando com dados que compare nmeros iguais, o VBScript assume que seu tipo de dado nmerico. Parecidamente, se voc est comparando caracteres literais, o VBScript trata seus dados como string. Voc pode usar nmeros como strings simplesmente cercando-os com aspas ( ).

Subtipos Variant
Alm do tipo numrico ou string, uma Variant podem fazer distines sobre uma natureza especfica de informao numrica. Por Exemplo, voc pode ter informao numrica que representa uma data ou um tempo. Certamente, voc pode tambm ter uma variedade rica de informao numrica, essas categorias diferentes de informao que pode ser contida em uma Variant so chamadas subtipos. A seguinte tabela mostra os subtipos de dados que uma Variant pode conter: Subtipo Descrio Empty (Vazio) Valor igual a 0 para variveis numricas ou () zero-comprimento para variveis string. Null (Nulo) Variant contm intencionalmente nenhum valor vlido. Boolean Contm False (falso) ou True (Verdadeiro) um ou outro. Byte Contm inteiro de 0 a 255. Integer Contm inteiro de -32,768 a 32,767. Currency 922,337,203,685,477.5808 a 922,337,203,685,477.5807. Long Contm inteiro de -2,147,483,648 a 2,147,483,647. Single

3.402823E38 a -1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos. Double Contm um duplicar-exatido, boiado-ponto nmero na srie 1.79769313486232E308 para 4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 para 1.79769313486232E308 para valores positivos. Data (Tempo) Contm um nmero que representa uma data entre 1 de Janeiro de 100 at 31 de Dezembro de 9999. String Variveis alfanumricas, que podem ter um comprimento de 0 at aproximadamente 2 bilhes de caracteres. Object Qualquer referncia de Objeto. Error Contm um nmero de erro. Voc pode usar funes de converso para converter dados de um subtipo para o outro. A funo VarType retorna informao sobre seus dados, e armazena dentro de uma Variant.

Variveis do VBScript O que uma Varivel?


Uma varivel um nome conveniente que se refere a uma localizao de memria do computador, onde voc pode armazenar informaes de um programa sendo possvel alterar seu valor durante o processamento. Por exemplo, voc pde cria uma varivel chamada ClickCount para armazenar o nmero de vezes que um usurio pressionou um objeto em uma pgina da Web. A forma com que a varivel armazenada na memria do computador sem importncia. O que importante que para alterar ou atribuir um valor para essa varivel voc deve referenci-la pelo seu nome. No VBScript, as variveis so sempre tipos de dados Variant.

Declarando Variveis
Voc declara variveis explicitamente em seu script usando a declarao Dim, a declarao Public, e a declarao Private. Por exemplo:

Dim DegreesFahrenheit
Voc pode declarar variveis mltiplas separando-as por vrgula. Por exemplo:

Dim Top, Bottom, Left, Right


Voc pode tambm declarar uma varivel implicitamente simplesmente usando seu nome no script. O que geralmente no uma boa prtica causando resultados inesperados no decorrer de seu script. Uma tima alternativa usar a declarao Option Explicit com a finalidade de forar todas as declaraes de variveis. A declarao Option Explicit deve ser a primeira declarao em seu script.

Especificando Restries
Os nomes de variveis seguem as regras padronizadas para serem identificadas pelo VBScript.

Um nome de varivel deve: Ter o primeiro caracter do nome da varivel sendo uma letra No deve exceder 255 caracteres. Escopo e Existncia de Variveis O escopo de uma varivel determinado quando voc a declara. Quando voc declara uma varivel dentro de um procedimento, apenas o cdigo dentro daquele procedimento pode acessar ou muda o valor daquela varivel. Isto um escopo local e chamado de varivel a nvel-procedimento. Se voc declara uma varivel exteriomente a um procedimento, voc faz com que todos os procedimentos reconheam aquela varivel, isto uma varivel a nvel-escrita. Uma varivel pblica apenas destruda quando ocorre o trmino do script. No caso da varivel privada, ou seja declarada dentro de um procedimento, sua destruio ocorre com o trmino da execuo do procedimento. As variveis locais so usadas para uma determinada tarefa temporria, liberando assim espao de memria. Voc pode declarar variveis locais com o mesmo nome em vrios procedimentos diferentes pois, elas so apenas visveis no momento da execuo do procedimento.

Designando Valores para Variveis


Valores so designados para variveis criando uma expresso do tipo: a varivel encontra-se do lado esquerdo da expresso, e o valor que voc deseja atribuir no lado direito. Por exemplo:

B = 200

Variveis Scalar e Variveis de Array


Em alguns casos voc apenas necessita designar um nico valor para uma varivel. Uma varivel contendo um nico valor chamada de scalar. Entretanto conveniente designar mais de um valor relacionado apenas a uma varivel. Neste caso voc pode criar uma varivel que contenha uma srie de valores. Essa varivel chamada de array. A declarao de uma varivel de array feita dando-se um nome seguindo os parntesis ( ). No seguinte exemplo, declarado um array contendo 11 elementos: Dim Vetor(10) Embora o nmero mostrado nos parntesis seja 10, todos os arrays no VBScript so iniciados com base zero, assim este array realmente contm 11 elementos. Em um array de base zero, o nmero de elementos ser sempre o nmero mostrado entre parntesis acrecido de um Voc referencia cada dado de um elemento de array usando um ndice. Comeando com o zero e finalizando em 10, os dados podem ser atribuidos aos elementos de um array como se segue:

A(0) = 256
A(1) = 324 A(2) = 100 . . .

A(10) = 55
Os dados podem ser recuperados de qualquer elemento usando um ndice dentro do elemento de array. Por exemplo: . . .

SomeVariable = A(8) . . . Arrays no so limitados para uma nica dimenso. Voc pode ter 60 dimenses, embora a maioria das pessoas no compreendem mais que trs ou quatro dimenses. Dimenses mltiplas so declaradas com nmeros relativos a sua dimenso, separados por vrgula entre parntesis. No seguinte exemplo, a varivel MyTable possui duas dimenses consistindo de 6 filas e 11 colunas: Dim MyTable(5, 10) Em um array de duas dimenses, o primeiro nmero ser sempre o nmero de linhas; e o segundo nmero, o nmero de colunas. Voc pode tambm declarar um array cujo tamanho alterado durante o processamento do script. Este array chamado de array dinmico. O array inicialmente declarado dentro de um procedimento usando a declarao Dim ou ReDim. Entretanto, para um array dinmico, nenhum tamanho ou dimenso colocado no interior dos parntesis. Por exemplo: Dim MyArray() ReDim AnotherArray() Para usar um array dinmico, voc deve subseqentemente usar a declarao ReDim para determinar o nmero de dimenses e o tamanho de cada dimenso. No seguinte exemplo, ReDim atribue 25 ao tamanho inicial do array dinmico. Com a declarao ReDim feito um redimencionamento do array para 30, usando a palavra-chave Preserve para preservar o contedo do array. ReDim MyArray(25) . . . ReDim Preserve MyArray(30) No h limite para o nmero de vezes que voc pode redimensionar um array dinmico, mas voc deve saber que se o array for redimensionado com uma dimenso menor que a anterior, o contedo dos elementos eliminados sero perdidos. Constantes Do VBScript

O que uma Constante?


Uma constante um nome significativo que recebe um valor nmerico ou caracter. O VBScript define um nmero de constantes intrnsecas. Voc pode obter informao sobre essas constantes intrnsecas na Referncia da Linguagem VBScript.

Criando Constantes
Voc pode criar constantes definidas pelo usurio no VBScript usando a declarao Const. Usando a declarao Const, voc pode criar constantes strings ou numricas com nomes significativos que designam seus valores literais. Por exemplo: Const MinhaString = Isto meu minha cadeia de caracter.

Const MinhaIdade = 49
Note que a string literal cercada entre aspas ou marcas de citao ( ). As aspas so caminho bvio para diferenciar valores de string de valores numricos. Datas e valores do tempo so representados tendo o sinal (#) cercando o valor. Por Exemplo:

Const MeuAniversario = #23-8-76#


Voc pode desejar adotar um esquema especfico para diferenciar constantes de variveis. Este procedimento evita durante a execuo do script, ocorrer um engano e usar constantes como variveis e vice-versa. Por exemplo, voc pde

usar prefixos vb ou con nos nomes de suas constantes, ou criar sua prpria nomeclatura. Diferenciando constantes de variveis, voc elimina a possibilidade de ocorrer um erro ao desenvolver scripts mais complexos.

Operadores do VBScript
O VBScript tem uma srie de operadores, incluindo operadores de aritmtica, operadores de comparao, operadores de concatenao, e , operadores lgicos.

Precedncia do Operador
Quando vrias operaes ocorrem em uma expresso, cada parte avaliada e resolvida em uma ordem predeterminada chamada precedncia do operador. Voc pode usar parntesis para alterar a ordem de precedncia e forar a avaliao de algumas partes de uma expresso. Operaes dentro de parntesis so sempre resolvidas primeiro independendo da ordem de resoluo dos operadores. Dentro dos parntesis, entretanto, a ordem de resoluo dos operadores mantida. Quando expresses contm operadores de mais de uma categoria, os operadores aritmticos so avaliados primeiros, depois os operadores de comparao, e os operadores lgicos so avaliados por ltimo. Todos os operadores de comparao tem precedncias iguais; estes, so avaliados da esquerda-para-direita. Os operadores Lgicos e de Aritmtica so avaliados na seguinte ordem. Aritmtica Comparao Lgico Descrio Smbolo Descrio Smbolo Descrio Smbolo Exponenciao ^

Igualdade
= Negao Lgica Not Negao do Unary -

Desigualdade
<> Conjuno Lgica And Multiplicao *

Menor que
< Disjunction Lgico Or Diviso /

Maior que
> Excluso Lgica Xor Diviso Inteira \ Menor que ou igual a <= Equivalencia Lgica Eqv Aritmtica de Mdulo Mod Maior que ou igual a >= Implicao Lgica Imp Adio + Equivalencia de Objeto Is

Subtrao
-

Concatenao de String &

Quando ocorrer a multiplicao e a diviso juntamente em uma expresso, cada operao avaliada da esquerda para direita. Igualmente, quando ocorre a adio e a subtrao juntamente em uma expresso, cada operao avaliada em ordem da esquerda para direita. O operador de concatenao de string (&) no um operador aritmtico, mas por conveno tornou-se e na ordem de resoluo, ele est acima de todos os operadores de comparao. O operador Is um operador de comparao de objetos. Ele no compara objetos ou seus valores; ele apenas checa e determina se duas referncias de objeto, referemse ao mesmo objeto. Usando Declaraes Condicionais

Controlando a Execuo do Programa


Voc pode controlar o fluxo de seu script com declaraes condicionais e declaraes do looping. Usando declaraes condicionais, voc pode escrever cdigo no VBScript que faz decises e repete aes. As seguintes declaraes condicionais so disponveis no VBScript: Declarao If...Then...Else Declarao Select Case

Fazendo Decises Usando If...Then...Else


O If...Then...Else uma declarao usada para avaliar uma condio seja ela Falsa (False) ou Verdadeira (True) e, contando com o resultado, para executar um ou mais comandos. Usualmente a condio uma expresso que usa um operador de comparao para comparar um valor ou varivel com outra. Para informao sobre operadores de comparao, ver Operadores de Comparao. If...Then...Else pode estar identadas em muitos nveis dependendo de sua necessidade. Executando uma Declaraes se a Condio for Verdadeira Para executar unicamente um declarao quando uma condio Verdadeira, use uma nica linha com a sintaxe If...Then...Else. Note que neste exemplo foi omitido a palavra chave Else. Sub FixDate() Dim myDate myDate = #2/13/95# If myDate < Now Then myDate = Now End Sub Para executar mais de uma linha de cdigo, voc deve usar mltiplas-linhas (ou bloco). Esta sintaxe inclue a declarao End If, como mostra o exemplo a seguir: Sub AlertUser(value) If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True End If End Sub Executa um Conjunto de Instrues se a Condio for Verdadeira e um Outro Conjunto de Instrues se a Condio for Falsa. Voc pode usar um If...Then...Else para definir dois blocos de instrues: um bloco para executar se a condio for Verdadeira, e um outro bloco para executar se a condio for Falsa. Sub AlertUser(value) If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True Else AlertLabel.Forecolor = vbBlack AlertLabel.Font.Bold = False AlertLabel.Font.Italic = False End If End Sub Decidindo Entre Vrias Alternativas Uma variao na declarao If...Then...Else permite a voc escolher vrias alternativas. Somando-se clusulas ElseIf voc tem a possibilidade de expandir a funcionalidade da declarao If...Then...Else controlando o fluxo do programa baseado em difentes possibilidades. Por Exemplo: Sub ReportValue(value) If value = 0 Then MsgBox value ElseIf value = 1 Then

MsgBox value ElseIf value = 2 then Msgbox value Else Msgbox Value out of range! End If Voc pode adicionar muitas clusulas ElseIf dependendo da sua necessidade durante o fluxo do algortimo. Uso extenso das clusulas ElseIf freqentemente torna-se incmodo. Um melhor caminho para escolher entre vrias alternativas a declarao Select Case.

Fazendo Decises com Select Case


A estrutura Select Case fornece uma alternativa para If...Then...ElseIf durante a execuo seletiva de um bloco de cdigo dentre vrios blocos de cdigo. Uma declarao Select Case fornece funcionalidade semelhante If...Then...Else, porm, o cdigo torna-se mais legvel e eficiente. Uma estrutura Select Case avalia uma nica expresso no topo da estrutura. O resultado da expresso ento comparada com os valores para cada Case da estrutura. Se h uma afirmao verdadeira, o bloco de declaraes associadas com aquele Case executado:

Select Case Document.Form1.CardType.Options(SelectedIndex).Text


Case MasterCard DisplayMCLogo ValidateMCAccount Case Visa DisplayVisaLogo ValidateVisaAccount Case American Express DisplayAMEXCOLogo ValidateAMEXCOAccount Case Else DisplayUnknownImage PromptAgain End Select Note que a estrutura Select Case avalia a expresso uma nica vez no topo da estrutura. Em contraste, a estrutura If...Then...ElseIf pode avaliar diferentes expresses para cada declarao ElseIf. Voc pode substituir uma estrurura If...Then...ElseIf pr uma nica estrutura Select Case se cada declarao do ElseIf avalia a mesma expresso.

Looping Atravs de Cdigo Usando Laos para repetir Cdigos


O Looping permite a voc executar uma seqncia de declaraes dependendo de uma condio. Alguns laos repetem as declaraes at uma condio ser Falsa; outros repetem declaraes at uma condio ser Verdadeira. H tambm laos que repetem declaraes num nmero especfico de vezes. As seguintes declaraes de looping so disponveis no VBScript: Do...Loop: Permanece no lao, enquanto ou at uma condio ser Verdadeira. While...Wend: Permanece no laos enquanto uma condio Verdadeira. For...Next: Usa um contador para executar as declaraes num nmero especfico de vezes. For Each...Next: Repete um grupo de declaraes para cada item de uma coleo ou cada elemento de um array.

Usando Do Loops
Voc pode usar a declarao Do...Loop para executar um bloco de declaraes num nmero indeterminado de vezes. As declaraes so repetidas enquanto a condio for Verdadeira ou at uma condio torna-se Verdadeira. Repetindo Declaraes Enquanto uma Condio Verdadeira Use a palvra-chave While para checar a condio em uma declarao Do...Loop. Voc pode checar a condio antes de entra no lao (como mostrado no exemplo ChkFirstWhile), ou voc pode checar depois de ter entrado no lao no mnimo uma vez (como mostrado no exemplo ChkLastWhile). No procedimento ChkFirstWhile, se myNum recebe o valor igual a 9 em vez de 20, o cdigo no interior do lao nunca ser executado. No procedimento ChkLastWhile, o cdigo no interior do lao executado apenas uma vez porque a condio j Falsa. Sub ChkFirstWhile() Dim counter, myNum counter = 0 myNum = 20 Do While myNum > 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox The loop made & counter & repetitions. End Sub Sub ChkLastWhile() Dim counter, myNum counter = 0 myNum = 9 Do myNum = myNum - 1 counter = counter + 1 Loop While myNum > 10 MsgBox The loop made & counter & repetitions. End Sub Repetindo uma Declarao At uma Condio Torna-se Verdadeira Voc pode usar a palavra-chave Until de duas maneiras para checar uma condio da declarao Do...Loop. Voc pode checar a condio antes de entrar no lao (como mostrado no exemplo ChkFirstUntil), ou voc pode checar depois de ter entrado no lao no mnimo uma vez (como mostrado no exemplo ChkLastUntil). Enquanto a condio Falsa, o looping ocorre. Sub ChkFirstUntil() Dim counter, myNum counter = 0 myNum = 20 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox The loop made & counter & repetitions. End Sub Sub ChkLastUntil() Dim counter, myNum counter = 0 myNum = 1 Do myNum = myNum + 1 counter = counter + 1 Loop Until myNum = 10 MsgBox The loop made & counter & repetitions. End Sub Saindo do Interior de um lao Do...Loop Voc pode sair de um lao Do...Loop usando a

declarao Exit Do Ocorrer casos em que voc desejar sair do lao em certas situaes. No seguinte exemplo, myNum designado um valor que cria um lao infinito. A declarao If...Then...Else checa a condio, prevenindo a repetio infinita Sub ExitExample() Dim counter, myNum counter = 0 myNum = 9 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 If myNum < 10 Then Exit Do Loop MsgBox The loop made & counter & repetitions. End Sub Usando While...Wend A declarao While...Wend fornecida no VBScript para familiarizar a linguagem. Entretanto, por falta de flexibilidade na declarao While...Wend, recomendado que voc use a declarao Do...Loop.

Usando For...Next
Voc pode usar a declarao For...Next para executar um bloco de declaraes num nmero especfico de vezes. usado uma varivel de contador cujo valor aumentado ou decrescido com cada repetio do lao. Por exemplo, o seguinte procedimento executa 50 vezes um chamado no procedimento MyProc. A declarao For especifica um contador, uma varivel x que recebe um valor inicial, precedida de uma palavra-chave To e depois de um valor final. A declarao Next incrementa a varivel contador de 1 unidade. Sub DoMyProc50Times() Dim x For x = 1 To 50 MyProc Next End Sub Usando a palavra-chave Step, voc pode aumentar ou decresce a varivel contador pelo valor especificado na declarao Step. No seguinte exemplo, o contador uma varivel j incrementado de 2 unidades. Quando o lao terminado, a varivel total ter a soma de 2, 4, 6, 8, e 10. Sub TwosTotal() Dim j, total For j = 2 To 10 Step 2 total = total + j Next MsgBox The total is & total End Sub Para decrescer a varivel contador, deve-se atribuir um valor negativo para a declarao Step. Voc deve especificar um valor final que menor que o valor inicial. No seguinte exemplo, o contador a varivel myNum decrescido de 2 unidades. Quando o lao terminado, a varivel total ter a soma de 16, 14, 12, 10, 8, 6, 4, e 2. Sub NewTotal() Dim myNum, total For myNum = 16 To 2 Step -2 total = total + myNum Next MsgBox The total is & total End Sub Voc pode sair da declarao For...Next antes do contador alcanar seu valor final usando a declarao Exit For. Ocorrer casos em que voc desejar sair do lao em certas situaes.

Usando For Each...Next


Um lao For Each...Next parecido com um lao For...Next. Em vez de de repetir as declaraes num nmero especfico de vezes, um lao For Each...Next repete um grupo de declaraes para cada item em uma coleo de objetos ou para cada elemento de um array. Este lao muito til quando voc fazer no sabe quantos elementos esto em uma coleo. No seguinte exemplo de cdigo HTML, os contedos de um objeto Dicionrio usado para colocar texto em vrias caixas de texto: <HTML> <HEAD><TITLE>Forms and Elements</TITLE></HEAD> <SCRIPT LANGUAGE=VBScript> <!-Sub cmdChange_OnClick Dim d Create a variable Set d = CreateObject(Scripting.Dictionary) d.Add 0, Athens Add some keys and items d.Add 1, Belgrade d.Add 2, Cairo For Each I in d Document.frmForm.Elements(I).Value = D.Item(I) Next End Sub --> </SCRIPT> <BODY> <CENTER> <FORM NAME=frmForm <Input Type = Text><p> <Input Type = Text><p> <Input Type = Text><p> <Input Type = Text><p> <Input Type = Button NAME=cmdChange VALUE=Click Here><p> </FORM> </CENTER> </BODY> </HTML>

VBScript Procedures Espcies de Procedimentos


No VBScript h duas espcies de procedimentos; o procedimento Sub e o procedimento Function.

Procedimentos Sub
Um procedimento Sub uma srie de declaraes do VBScript, dentro das declaraes Sub e End Sub. Um procedimento Sub no retorna valor, mas voc pode tomar argumentos (constantes, variveis, ou expresses que so passados durante a chamada da Sub). Se um procedimento Sub no tem argumentos, sua declarao deve incluir um conjunto vazio de parntesis (). O seguinte procedimento Sub usa duas funes intrnsecas do VBScript, MsgBox e InputBox, para obter do usurio alguma informao. Depois exibe os resultados de um clculo baseado nas informaes. O clculo desempenhado em um procedimento Function criado usando o VBScript. O procedimento Function ser discutido a seguir. Sub ConvertTemp()

temp = InputBox(Please enter the temperature in degrees F., 1) MsgBox The temperature is & Celsius(temp) & degrees C. End Sub Procedimentos Function Um procedimento Function uma srie de declaraes do VBScript dentro das declaraes Function e End Function. Um procedimento Function parecido com um procedimento Sub, com a diferena de voc poder retornar um valor. Um procedimento Function pode tomar argumentos (constantes, variveis, ou expresses que so passadas pelo procedimento de chamada). Se um procedimento Function no tem argumentos, sua declarao deve incluir um conjunto vazio de parntesis. Uma Function retorna um valor que ser atribuido ao nome da funo no procedimento de chamada. O tipo do valor retornado por uma Function ser sempre Variant. No seguinte exemplo, a funo Celsius calcula a temperatura em graus Celsius do grau Fahrenheit. Quando a funo chamada do procedimento Sub ConvertTemp, uma varivel contendo o valor do argumento passado funo. O resultado do clculo voltado ao procedimento chamado e exibido em uma caixa de mensagem. Sub ConvertTemp() temp = InputBox(Please enter the temperature in degrees F., 1) MsgBox The temperature is & Celsius(temp) & degrees C. End Sub Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function Obtendo dados dentro de um Procedimento Cada valor passado dentro de seus procedimentos usando um argumentos. Argumentos servem como pontes de valor dos dados que voc deseja passar dentro de seu procedimento. Voc pode especificar seus argumentos com um nome de uma varivel. Quando voc cria um procedimento usando uma declarao Sub ou uma declarao Function, os parntesis devem incluir os nomes dos argumentos. Quaisquer argumentos so colocados no interior desses parntesis, separados por vrgulas. No seguinte exemplo, fDegrees uma ponte de valor que passa o valor da temperatura a ser calculada na funo: Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function Para obter o valor dos dados de um procedimento, voc deve usar uma Function. Lembre-se, que um procedimento Function pode retornar um valor; e um procedimento Sub no pode.

Usando Procedimentos Sub e Function em seu Cdigo


Voc deve usar um procedimento Function em seu cdigo do lado direito a uma expresso. Por Exemplo: Temp = Celsius(fDegrees) ou MsgBox A temperatura do Celsius est & Celsius(fDegrees) & graus. Para chamar um procedimento Sub de outro procedimento, voc deve apenas referenciar o nome da procedure passando ou no argumentos. A declarao Call no requerida, mas se voc us-la, deve colocar os argumentos entre parntesis. O seguinte exemplo mostra duas chamadas ao procedimento MyProc. Um usa a declarao Call no cdigo; o outro no. Ambos fazer exatamente a mesma coisa. Call MyProc(firstarg, secondarg) MyProc firstarg, secondarg Note que os parntesis so omitidos na chamada quando a declarao Call no usada. Convenes do Coding do VBScript

O que Convenes de Cdigo ?


Convenes do Coding so sugestes que podem ajud-lo a escreve seus cdigos usando Microsoft Visual Basic Scripting Edition. As convenes do Coding podem inclui os seguintes tens: Especificando convenes para objetos, variveis, e procedimentos Comentando as convenes Formatando textos e indentando diretrizes A principal razo para usar um conjunto consistente de convenes do coding padronizar a estrutura e estilo do cdigo de um script, ou atribuir um modo de escrever seus cdigos de forma que voc e outros possam facilmente ler e compreendem o algortimo. Usando boas convenes do coding o resultado legvel, preciso, com um cdigo consistente com outras convenes da linguagem.

Constante Convenes de Nomes


Verses mais antecipadas de VBScript no tem nenhum mecnismo para criar constantes definidas pelo usurio. Constantes, se forem implementadas como variveis se distinguem de outras variveis usando todos caracteres maisculos. Palavras mltiplas foram separadas usando o caracter sublinhado (_). Por Exemplo:

USER_LIST_MAX
NEW_LINE
Enquanto isto ainda um caminho aceitvel para indentificar suas constantes, voc pode usar uma alternativa especificando agora um esquema verdadeiro na declarao das constantes usando o Const. Esta conveno usa uma mescla de formato em que os nomes das constantes tm um prefixo con. Por Exemplo: conYourOwnConstant Conveno dos Nomes das Variceis Com o propsitos de consistncia, use os seguintes prefixos com nomes descritivos para variveis em seu cdigo do VBScript. Subtype Prefixo Exemplo Boolean bln blnFound Byte byt bytRasterData Date (Time) dtm dtmStart Double dbl dblTolerance Error err errOrderNum Integer int intQuantity Long lng lngDistance Object obj objCurrent

Single sng sngAverage String str strFirstName

Escopo Varivel
Variveis deveriam sempre ser definidas com o menor escopo possvel. Variveis do VBScript podem ter o seguinte escopo. Escopo Onde Varivel Declarada Visibilidade Nvel-Procedure Eventos, Funo, ou procedures Sub Visvel na procedure em que foi declarada Nvel-Script Seo HEAD de uma pgina HTML, exteriormente em qualquer procedure Visvel em todas as procedures do Script

Prefixos de Escopo de Variveis


Como o tamanho do Script cresce, assim faz o valor de existncia capaz para rapidamente diferencia o escopo de variveis. Um um-letra prefixo de escopo precedendo o prefixo de tipo fornece este, sem o unduly aumentando o tamanho de nomes variveis. Escopo Prefixo Exemplo Nvel-Procedure None dblVelocity Nvel-Script s sblnCalcInProgress

Varivel Descritiva e Nomes De Procedimento


O corpo de uma varivel ou nome de uma procedurce deve ser usada para descrever a necessidade de seu propsito. Em resumo, os nomes de procedures deveriam comear com um verbo, tal como IniciarVariveis ou FecharJanela. Para termos freqentes e longos, abreviaes padronizadas so recomendadas para minimizar o comprimento do nome. No geral, nomes de variveis maiores que 32 caracteres podem ser de difceis leituras. Quando usar abreviaes, certifique-se que elas sero consistentes para todo o Script. Por Exemplo, aleatoriamente mudando de Cnt para Conta dentro de um Script pode gerar um erro no seu cdigo.

Objeto Especificando Convenes As seguintes listas da tabela so convenes recomendadas para objetos que voc pode encontrar enquanto programa em VBScript. Tipo Objeto Prefixo Exemplo 3D Panel pnl pnlGroup Animated Button ani aniMailBox Check Box chk chkReadOnly Combo Box, drop-down list box cbo cboEnglish Command Button cmd cmdExit Common Dialog dlg dlgFileOpen Frame fra fraLanguage Horizontal Scroll Bar hsb hsbVolume Image img imgIcon Label lbl lblHelpMessage Line lin linVertical List Box lst lstPolicyCodes Spin spn spnPages Text Box txt txtLastName Vertical Scroll Bar vsb vsbRate Slider sld sldScale

Comentando Convenes de Cdigos


Todos os procedimentos deveriam comear com um breve comentrio descrevendo o que eles fazem. Este comentrio no deveria descrever os detalhes de implementao (como: isto faz isto) porque os cdigos mudam freqentemente, resultando num enorme trabalho e perca de tempo ne manuteno de comentrios desnecessrios, ou comentrios errneos, pior. O cdigo por si mesmo e quaisquer breves comentrios necessrios descrevem a implementao. Argumentos passados para um procedimento devem ser descritos quando seu propsito no est bvio no cdigo. Valores que voltam para funes e variveis que so mudadas por um procedimento, especialmente atravs de argumentos por referncia, devem ser descritos no comeo de cada procedure. Comentrios no cabealho da Procedure devem incluir os seguintes ttulos. Por Exemplo: Ttulo De Seo Comentrio do Contedo Propsito Que o procedimento faz (no como). Suposies Lista de qualquer varivel externa, controle, ou outro elemento que declare aes nesta procedimento.

Efeitos
Lista de efeito do procedimento em cada varivel externa, controle, ou outro elemento.

Entradas
Explicao de cada argumento que no esteja bvio. Cada argumento deve ter uma linha separada com os comentrios. Valores Retornados Explicao do valor voltado. Recorde os seguintes pontos: Toda declarao de uma importante varivel deve incluir um comentrio descrevendo o uso e a existncia da varivel declarada. Variveis, controles, e procedimentos devem ter comentrios claros e especficos pois, deles resulta a complexidade da implementao. No comeo de seu script, voc deve incluir um resumo que descreva, enumerando objetos, procedimentos, algortimos, caixas de dilogo, e outras dependncias do sistema. s vezes um pedao de pseudocdigo, descrevendo o algortimo pode ser bastande prestativo.

Formatando Seu Cdigo


O espao da tela dever ser conservado, enquanto ainda permita formatar seu cdigo refletindo a estrutura lgica do algortimo. Estes so uns pontos bsicos: Blocos identados padronizados devem ser indentados com quatro espaos. O resumo do comentrio de um procedimento dever ser indentar com um espao. *********************************************************

Purpose: Locates the first occurrence of a specified user


in the UserList array. Inputs: strUserList(): the list of users to be searched. strTargetUser: the name of the user to search for. Returns: The index of the first occurrence of the strTargetUser in the strUserList array. If the target user is not found, return -1.

********************************************************* Function intFindUser (strUserList(), strTargetUser) Dim i Dim blnFound intFindUser = -1 i=0 Initialize loop counter Do While i <= Ubound(strUserList) and Not blnFound If strUserList(i) = strTargetUser Then blnFound = True intFindUser = i End If i=i+1 Increment loop counter Loop End Function Loop counter. Target found flag

Set flag to True Set return value to loop count

Nvel de Procedimento
Descreve declaraes localizadas dentro de um procedimento Function ou Sub. Declaraes so realizadas primeiro, seguido por designaes e outro cdigo do executvel. Por Exemplo: Sub MySub() This statement declares a sub procedure block. Dim A This statement starts the procedure block. A = My variable Procedure-level code. Debug.Print A Procedure-level code. End Sub This statement ends a sub procedure block.

Controle do ActiveX
Um objeto que voc coloca em um formulrio, para habilitar ou acentuar a interao do usurio com uma pgina na Web (No caso do VBScript). Controles ActiveX tm eventos e podem ser incorporados dentro de outros controles. Os controles so arquivos que possuem extenso .OCX.

Objeto do ActiveX
Um objeto que exibido para outros aplicaes ou programado atravs de ferramentas de interfaces de Automao.

Argumento
Uma constante, varivel, ou expresso passada para um procedimento.

Array
Um conjunto de seqncias de elementos ordenados, tendo o mesmo tipo de dados. Cada elemento de um array tem um nico identificador referenciado por um nmero (ndice). Mudanas feitas para um elemento de um array, no afeta os demais elementos.

Conjunto de Caracter ASCII


American Standard Code for Information Interchange (ASCII) 7-bit caracter atribudos amplamente para representar letras e smbolos encontrados em um teclado padro U.S. O conjunto de caracter ASCII o mesmo dos primeiros 128 caracteres (0127) do conjunto de caracter ANSI.

Objeto de Automao
Um objeto que exibido para outros aplicaes ou programado atravs de ferramentas de interfaces de Automao.

Comparao bitwise
Uma comparao idntica de bit-a-bit bits posicionando o bit nas duas expresses numricas.

Expresso do Boolean
Uma expresso que avalia a condio Falso (False) ou Verdadeiro (True).

Por Referncia
Um meio de passar um argumento para um procedimento, usando o endereo, em vez do valor. Isto permite ao procedimento acessar a varivel real. Como resultado, o valor real da varivel pode ser alterado dentro do procedimento que ela foi passada.

Por Valor
Um meio de passar um argumento para um procedimento, usando o valor, em vez do endereo de memria da varivel. Isto permite ao procedimento acessar uma cpia da varivel. Como um resultado, o valor real da varivel no pode ser alterado dentro do procedimento que ela foi passada.

Cdigo de Caracter
Um nmero que representa um caracter especfico dm um conjunto, tal como o conjunto de caracter da tabela ASCII.

Classe
A definio formal de um objeto. A classe define as propriedades do objeto e os mtodos usados para controlar o comportamento do objeto. possvel criar uma classe para um objeto.

Mdulo de classe
Um mdulo contendo a definio de uma classe (sua propriedade e definies de mtodo).

Coleo
Um objeto que contem um conjunto de objetos relacionados. A posio de um objeto na coleo pode ser alterada, sempre que uma alterao ocorrer na coleo; portanto, a posio de qualquer objeto especifico na coleo pode variar.

Comentrio
Texto que contribue na explicao do cdigo facilitando o trabalho do programador. No Visual Basic Scripting Edition, um comentrio pode ser feito usando uma apstofe (), ou uma palvra chave Rem seguido por um espao.

Operador de Comparao
Um caracter ou smbolo indicando um relacionamento entre dois ou mais valores ou expresses. Esses operadores incluem menor que (<), menor que ou igual a (<=), maior que (>), maior que ou igual a (>=), diferentel (<>), e igual (=).

Constante
Um nome especfico que contm um valor constante para toda a execuo de um programa. Constantes podem ser usadas em qualquer parte de seu cdigo. Uma constante pode ser uma string ou nmero literal, outra constante, ou qualquer combinao que inclua aritmtica ou operadores lgicos exceto Is e exponenciao. Por Exemplo: Const A = MyString

Tipos de Dados
Cada subtipo do tipo Variant tem uma srie especifica de valores: Subtype Srie Byte 0 a 255. Boolean False ou True. Integer 32,768 a 32,767. Long 2,147,483,648 a 2,147,483,647. Single 3.402823E38 a -1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos. Double 1.79769313486232E308 a 4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos. Currency 922,337,203,685,477.5808 a 922,337,203,685,477.5807. Date Janeiro 1, 100 a Dezembro 31, 9999, inclusive. Object Qualquer referncia de Objeto. String Variveis alfanumricas, que podem ter um comprimento de 0 at aproximadamente 2 bilhes de caracteres.

Expresso de Data
Qualquer expresso que pode ser interpretada como uma data. Isto inclue qualquer combinao literal de data, nmeros que comparem datas iguais, strings que comparem datas iguais, e datas voltadas de funes. Uma expresso de data limitada pelo nmero ou string, em qualquer combinao, limitada 1 Janeiro de 100 at 31 Dezembro de 9999. Datas so armazenadas como partes de um nmero real. Valores esquerda do decimal representa a data; valores direita do decimal representa o tempo. Nmeros negativos representam datas anterior a 30 Dezembro 1899.

Data Literal
Qualquer seqncia de caracteres com um formato vlido que circundado por sinais de nmero (#). Formatos vlidos incluem o formato de data especificado pelos valores localis, ou o formato universal de data. Por Exemplo, #12/31/99# a data literal que representa Dezembro 31, 1999, onde English-U.S. o valor da localidade para seu requerimento. No VBScript, o unico formato reconhecido o US-ENGLISH, apesar da localidade real do usurio. O formato interpretado mm/dd/yyyy.

Separadores de Data
Caracteres usados para separar o dia, ms, e ano quando o valore da data formatado. Vazio (Empty) Um valor que indica o primeiro valor designado para uma varivel. Variveis Vazias so 0 num contexto numrico, ou zero-comprimento () num contexto de string. fio.

Nmero de Erro
Um nmero que abrange toda a srie de 0 a 65,535, que corresponde ao nmero do erro refenciado pelo objeto Err. Este nmero representa uma mensagem de erro particular.

Expresso
Uma combinao de palavras-chave, operadores, variveis, constantes, nmero, ou objeto. Uma expresso pode desempenhar um clculo, manipular caracteres, ou testar dados.

Constante Intrnseca
Uma constante fornecida por uma aplicao. Voc no pode desabilitar constantes intrnsecas, e no pode criar uma constante com o mesmo nome da instrseca.

Palavra-Chave
Uma palavra ou smbolo reconhecida pela linguagem VBScript; por exemplo, uma declarao, nome de funco, ou operador.

Localidade
O conjunto de informaes que corresponde a lngua de um pas. Uma localidade afeta a funcionalidade de uma aplicao nos itens de valores, converses, formatos, datas dos locais especficos. H dois contextos onde a informao da localidade importante: A localidade de cdigo afeta a linguagem de termos tais como as palavras-chaves, as definies de valores locais como o decimal, formatos de data, e caracteres que classificam pedidos. A localidade do sistema afeta a funcionalidade da aplicao, quando voc exibe nmeros ou converte caracteres em data. Voc pode modificar a localidade do sistema usando os utilitrios do Painel de Controle fornecidos pelo sistema operacional. Nada (Nothing) Um valor especial que indica que uma varivel de objeto no mais longa associada com qualquer objeto real. Nulo (Null) Um valor indicando que uma varivel no contm dados vlidos. Nulo o resultado de:

Uma designao explcita de Nula para uma varivel. Qualquer operao entre expresses que contm valores Nulos.

Expresso Numrica
Qualquer expresso que pode ser avaliada como um nmero. Elementos da expresso pode incluir qualquer combinao de palavras-chave, variveis, constantes, e operadores que resultam em um nmero.

Tipo de Objeto
Um tipo de objeto exposto por uma aplicao, por exemplo, Requerimento, Arquivo. Consulte a documentao das aplicaes (Microsoft Excel, Microsoft Project, Microsoft Word) para uma listagem completa dos objetos disponveis.

Pi
Pi um valor igual a constante matemtica aproximadamente de 3.1415926535897932.

Private
Variveis que so visveis apenas ao Script em que elas so declaradas.

Procedimento
Uma seqncia especfica de declaraes executadas em uma unidade. Por Exemplo, Function e Sub so tipos de procedimentos.

Nvel de Procedimento
Descreve declaraes localizadas dentro de um procedimento Function ou Sub. Declaraes so realizadas primeiro, seguido por designaes e outro cdigo do executvel. Por Exemplo: Sub MySub() This statement declares a sub procedure block. Dim A This statement starts the procedure block. A = My variable Procedure-level code. Debug.Print A Procedure-level code. End Sub This statement ends a sub procedure block.

Propriedade
Um atributo especfico de um objeto. Propriedades definem as caractersticas do objeto tais como tamanho, cor, localizao na tela, ou o estado de um objeto, tal como habilitado (Enabled) ou desabilitado (Disabled).

Public
Variveis declaradas Public so visveis para todos procedimentos em todos mdulos de uma aplicao. Tempo Execuo (Run Time) momento em que o cdigo est sendo executado. Durante o tempo de execuo, voc no pode editar o cdigo.

Erro Tempo de Execuo


Um erro que ocorre quando cdigo est sendo executado. Um erro em tempo de execuo resulta quando uma declarao efetua uma operao invlida.

Escopo
Define a visibilidade de uma varivel, procedimento, ou objeto. Por Exemplo, uma varivel declarada como Public visvel para todos os procedimentos em todos os mdulos. Variveis declaradas em procedimentos so visveis unicamente dentro do procedimento que a declarou, perdendo seu valor ao trmino deste procedimento.

SCODE
Um valor inteiro longo (Long Integer) que usado para passar informaes detalhadas a funo API. Os cdigos de condio para interfaces de OLE e APIs so definidas no FACILITY_ITF.

Nvel de Escrita
Qualquer cdigo exterior a um procedimento referido como um nvel de cdigo.

Seed
Um valor inicial usado para gerar nmeros do pseudo aleatrios. Por exemplo, a declarao Randomize cria um nmero usado pela funo Rnd para criar seqncias de nmero do pseudo aleatrios.

Comparando Strings
Uma comparao de duas seqncias de caracteres. A menos que especificado na funo que far a comparao, todas comparaes de string so do tipo binrio.

Expresso com String


Qualquer expresso que avalia para seqncia de caracteres contguos. Elementos de uma expresso de string podem incluir uma funo que retorne uma string, uma string literal, uma constante de string, ou uma varivel de string.

Varivel
Uma posio de memria para armazenamento de dados que podem ser modificados durante execuo do programa. Cada varivel tem um nome que a identifica dentro do seu nvel de escopo.