Utilizando a função Execute do VBScript.

Descrição:

Pra que serve a função Execute do VBScript? Como posso utilizá-la?

Solução:

A função Execute interpreta uma string como uma instrução do VBScript e a executa no contexto atual. Ela é útil para fazer scripts de verificação ou atribuição de valores de propriedades que tenham nomes sequenciais. Por exemplo, os valores são normalmente atribuídos em propriedades da seguinte forma:

Application.GetObject("Dados.XObject1").Propriedade1 = 0

Entretanto, quando é necessário alterar o valor de um grupo muito grande de propriedades, pode-se utilizar a função Execute. Os dois exemplos mostrados abaixo executam a mesma ação, mas será possível entender melhor a diferença entre utilizar a atribuição simples e a atribuição através do método Execute.

Atribuição simples

Application.GetObject("Dados.XObject1").Propriedade1 = 1
Application.GetObject("Dados.XObject1").Propriedade2 = 1 
Application.GetObject("Dados.XObject1").Propriedade3 = 0
...
Application.GetObject("Dados.XObject1").Propriedade200 = 0

Atribuição utilizando a função Execute

Set obj = Application.GetObject("Dados.XObject1")
For i=1 to 200
   Execute "obj.Propriedade" & CStr(i) & " = 1 "
Next

Note que a utilização da função Execute no script faz com que ele fique menor, o que facilita sua eventual manutenção/depuração.

A aplicação exemplo anexada a este artigo demonstra a função Execute alterando o valor de propriedades de um XObject.

Anexos:

Execute.zip

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 5 / 5. Count: 2

Comentários em “Utilizando a função Execute do VBScript.

  1. Sim, o artigo foi útil, mas gostaria de complementá-lo para ajudar outras pessoas que possam ter a mesma dúvida ou dificuldade que enfrentei, inclusive para o meu “eu do futuro”, caso precise relembrar esse tema.

    No exemplo apresentado no artigo e no arquivo anexo, é demonstrada a escrita de um valor fixo (1 ou 0) em uma propriedade do objeto utilizando a função Execute. No meu caso, porém, eu precisava que o valor a ser escrito fosse dinâmico, ou seja, uma variável booleana que mudasse conforme a lógica.

    Inicialmente, tentei algo semelhante ao exemplo abaixo, mas sem sucesso:


    Set obj = Application.GetObject(“Dados.XObject1”)
    For i = 1 To 200
    comp = (i Mod 2 = 0)
    Execute “obj.Propriedade” & CStr(i) & ” = ” & comp
    Next

    No entanto, essa abordagem não funcionou como esperado. A solução que funcionou para mim foi a seguinte:


    Set obj = Application.GetObject(“Dados.XObject1”)
    For i = 1 To 200
    comp = (i Mod 2 = 0)
    Execute “obj.Propriedade” & CStr(i) & ” = comp”
    Next

    Dessa forma, a variável comp assume True quando o índice i é par, e False quando é ímpar, e esses valores booleanos são corretamente atribuídos ao índice correspondente da propriedade do objeto.

    Espero que este comentário possa ajudar outras pessoas que enfrentem a mesma dúvida.

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *

Floating button icon
Pesquise com IA