Você está na página 1de 12

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 lnguagem 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 a vontade para 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 pode tambm ser usuados como uma lnguagem geral em outras aplicaes.

Adicionando Cdigos do VBScript em uma Pgina HTML


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

1/12

A Tag <SCRIPT>
Os cdigo do VBScript so escritos dentro da tag <SCRIPT>. Por Exemplo, um procedimento para testar uma data de entrega pode 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 lnguagem 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 lido 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.

2/12

Tipos de Dados do VBScript


O que so Tipos de Dados do VBScript?
O VBScript tem unicamente um tipo de dado chamado Variant. Um dado Variant um tipo especial de dado 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. Similarmente, 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 Empty (Vazio) Null (Nulo) Boolean Byte Integer Currency Long Single Double Descrio Valor igual a 0 para variveis numricas ou ("") string de comprimento zero para variveis string. Variant contm intencionalmente nenhum valor vlido. Contm False (falso) ou True (Verdadeiro). Contm inteiro de 0 a 255. Contm inteiro de -32,768 a 32,767. 922,337,203,685,477.5808 a 922,337,203,685,477.5807. Contm inteiro de -2,147,483,648 a 2,147,483,647. 3.402823E38 a -1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos. Contm um nmero de dupla preciso em ponto flutuante variando de 1.79769313486232E308 a 4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos. Contm um nmero que representa uma data entre 1 de Janeiro de 100 at 31 de Dezembro de 9999. Variveis alfanumricas, que podem ter um comprimento de 0 at aproximadamente 2 bilhes de caracteres. Qualquer referncia de Objeto. Contm um nmero de erro.

Data (Tempo) String Object Error

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 para se referir 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

3/12

pode criar 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.

Restries de Nome
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 pode conter vrgulas ou outros sinais grficos No deve exceder 255 caracteres. Deve ser nico no escopo em que foi declarado

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 de 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 de script. 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 Escalares e Vetor de Variveis


Em alguns casos voc apenas necessita designar um nico valor para uma varivel. Uma varivel contendo um nico valor chamada de escalar. 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

4/12

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 linhas 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 = "Esta minha cadeia de caracter." Const MinhaIdade = 49 Note que a string literal cercada entre aspas(" "). 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 UmaData = #8-23-97# 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 pode

5/12

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 aritmticos, operadores de comparao, operadores de concatenao, e , operadores lgicos.

Precedncia de Operadores
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 Aritmticos so avaliados na seguinte ordem: Aritmticos Descrio Exponenciao Negao Unria Multiplicao Diviso Diviso inteira Comparao Smbolo Descrio ^ * / \ Igualdade Diferena Menor que Maior que Menor ou igual a Smbolo Descrio = <> < > <= Negao lgica E lgico Ou lgico Ou Exclusivo Equivalncia Lgica Implicao lgica Lgicos Smbolo Not And Or Xor Eqv

Mdulo aritmtico Adio

Mod +

Maior ou igual a Equivalncia de objeto

>= Is

Imp

Subtrao Concatenao de Strings

&

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 verifica e determina se duas referncias de objeto, referem-se ao mesmo objeto.

6/12

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 a sintaxe de uma nica linha do 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 Executando 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

7/12

ElseIf value MsgBox ElseIf value Msgbox Else Msgbox End If End Sub

= 1 Then value = 2 then value "Value out of range!"

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 por uma nica estrutura Select Case se cada declarao do ElseIf avalia a mesma expresso.

Realizando Loops
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.

8/12

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 verificar a condio em uma declarao Do...Loop. Voc pode verificar a condio antes de entra no lao (como mostrado no exemplo ChkFirstWhile), ou voc pode verificar 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 verificar uma condio da declarao Do...Loop. Voc pode verificar a condio antes de entrar no lao (como mostrado no exemplo ChkFirstUntil), ou voc pode verificar 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

9/12

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 verifica 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 incrementar ou decrementar 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 decrementar 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 der 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.

10/12

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
Tipos 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

11/12

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 a partir de graus Fahrenheit. Quando a funo chamada do procedimento Sub ConvertTemp, uma varivel contendo o valor do argumento passada funo. O resultado do clculo devolvido ao procedimento que chamou 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 argumentos. Argumentos servem como "pontes" 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


Um procedimento Function deve estar sempre 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.

12/12