Cómo utilizar módulos de control de secuencias de comandos y colecciones de procedimientos

Seleccione idioma Seleccione idioma
Id. de artículo: 184745 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo muestra cómo utilizar las propiedades de módulos y procedimientos del control de Microsoft Script al código de segmento. También muestra cómo puede determinar dinámicamente el número de argumentos y si el procedimiento es una Function o Sub.

Más información

El control de secuencias de comandos de Microsoft incluye características que permiten la aplicación de host para secuencias de comandos de segmento en distintos módulos. El módulo predeterminado, "Global" siempre está presente. Módulos diferentes pueden contienen procedimientos del mismo nombre (es decir, los nombres de procedimiento tiene ámbito de módulo).

El control de Microsoft Script también incluye propiedades de procedimiento que permiten determinar dinámicamente si el procedimiento es una función o un procedimiento Sub, así como el número de argumentos que se espera que la aplicación de host. Esto permite que la aplicación host pedir al usuario el número correcto de los valores de parámetro.

La propiedad Modules del control de secuencias de comandos es un objeto que contiene una colección de objetos de módulo. Tiene la siguientes propiedades y métodos:
  • Número: Número de módulos.
  • Item(x): Devuelve un único objeto Module.
  • Agregar nombre: agrega un módulo en blanco con el nombre especificado.
El objeto de módulo tiene las siguientes propiedades y métodos:
  • Nombre: Nombre de módulo.
  • Procedimientos: Objeto de procedimientos.
  • Código de AddCode: agrega el código al módulo.
  • Nombre de ejecución, args: ejecuta el procedimiento con nombre.
El objeto de procedimientos contiene una colección de objetos Procedure. Tiene la siguientes propiedades y métodos:
  • Número: Número de procedimientos en el módulo.
  • Item(x): Devuelve un único objeto de procedimiento.
El objeto de procedimiento tiene las propiedades y métodos siguientes:
  • Nombre: Nombre de procedimiento.
  • HasReturnValue: Indica si el procedimiento es un procedimiento Sub o Function.
  • NumArgs: Número de argumentos que requiere el procedimiento.
Nota: No todas las propiedades y métodos de los objetos enumerados reciben, sólo aquellos relevante para este artículo.

El ejemplo siguiente proporciona un programa interactivo que ilustra cómo utilizar estas propiedades y métodos:

Importante: Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita, incluyendo, pero sin limitarse a, las garantías implícitas de comerciabilidad e idoneidad para un propósito determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y las herramientas utilizadas para crear y depurar procedimientos.

Ejemplo

  1. En Visual Basic, cree un nuevo proyecto (se crea Form1 de forma predeterminada).
  2. Haga clic en componentes en el menú proyecto y, a continuación, active la casilla de verificación "Microsoft Script Control 1.0".
  3. Agregar el control secuencias de comandos (ScriptControl1), un cuadro de texto (Texto1), tres botones de comando (Command1, Command2, Command3), y dos lista cuadros (Lista1, Lista2) a Form1. Establezca la propiedad MultiLine del cuadro de texto en TRUE. Ajuste el tamaño para adaptarse a las 5 líneas de 30 caracteres del cuadro de texto.
  4. Agregue el código siguiente a Form1:
          Private Sub Command1_Click()
            ScriptControl1.Modules.Add Text1.Text
            Form_Activate
          End Sub
    
          Private Sub Command2_Click()
            ScriptControl1.Modules(List1).AddCode Text1.Text
            List1_Click
          End Sub
    
          Private Sub Command3_Click()
          Dim RetVal As Variant, m As Variant
            Set m = ScriptControl1.Modules(List1.Text)
            With m.Procedures(List2.Text)
              Select Case .NumArgs
                Case 0
                  RetVal = m.Run(List2.Text)
                Case 1
                  RetVal = m.Run(List2.Text, 5)
                Case 2
                  RetVal = m.Run(List2.Text, 4, 23)
                Case Else
                  MsgBox "Procedure has too many arguments"
              End Select
              If .HasReturnValue Then
                MsgBox List2.Text & " returned: " & RetVal
              End If
            End With
          End Sub
    
          Private Sub Form_Activate()
          Dim m As Variant
            List1.Clear
            With SCriptControl1
              .Language = "VBScript"
              .AllowUI = True
              For Each m In .Modules
                List1.AddItem m.Name
              Next m
            End With
          End Sub
    
          Private Sub Form_Load()
            Command1.Caption = "Add Module"
            Command2.Caption = "Add Code"
            Command3.Caption = "Run Procedure"
          End Sub
    
          Private Sub List1_Click()
          Dim m As String, p As Variant
            m = List1
            List2.Clear
            If m = "" Then Exit Sub
            For Each p In ScriptControl1.Modules(m).Procedures
              List2.AddItem p.Name
            Next p
          End Sub
    
          Private Sub List2_Click()
          Dim m As String, p As String, r As Boolean, a As Long
            m = List1
            p = List2
            With ScriptControl1.Modules(m).Procedures(p)
              r = .HasReturnValue
              a = .NumArgs
            End With
            MsgBox m & "." & p & " has " & IIf(r, "a", "no") & _
                   " return value and " & a & " arguments"
          End Sub
    						
  5. Ejecute Form1.
  6. Cree un nuevo módulo escribiendo lo siguiente en el cuadro de texto y haga clic en Agregar módulo:
          Mod2
    
    						
  7. Escriba la siguiente secuencia de comandos en el cuadro de texto:
          Function Calc(X)
            Calc = X * 2
          End Function
    						
  8. Seleccione global en List1 y, a continuación, haga clic en Agregar código para agregar al módulo global.
  9. Escriba la siguiente secuencia de comandos en el cuadro de texto:
          Function Calc(X, Y)
            Calc = X * Y
          End Function
    
          Sub Test()
            MsgBox "The Test Sub in Module Mod2"
          End Sub
    						
  10. Seleccione Mod2 en List1 y, a continuación, haga clic en Agregar código para agregar al módulo global.
  11. Haga clic en los distintos módulos y procedimientos. Cuando selecciona el procedimiento que aparece un cuadro de mensaje, que indica si el procedimiento tiene un valor devuelto, así como el número de argumentos tarda.
  12. Después de seleccionar un procedimiento, haga clic en ejecutar el procedimiento para ejecutarlo. El código determina el número de argumentos para utilizar y verá diversos cuadros de mensaje con los resultados.
NOTA:
  • El nombre del módulo global no podría ser siempre "Global" dependiendo de la versión de control o localización. Utilice la constante GlobalName en lugar de disco duro - codificar la palabra "Global".
  • Hay ningún método para quitar módulos individuales o procedimientos. Tiene que utilizar el método .Clear del control de secuencia de comandos para borrar todo el código. Puede sobrescribir un procedimiento mediante el método .AddCode con un procedimiento del mismo nombre.

Referencias

Para información acerca de cómo obtener el control de secuencias de comandos, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:
184739: INFO: dónde conseguir el control de secuencias de comandos

Para obtener información adicional y ejemplos de llamar a procedimientos en el módulo global, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:
184740: cómo llamar a funciones mediante el control de secuencias de comandos

Ayuda de Microsoft Script control:
   HasReturnValue Property
   NumArgs Property
   AddCode Method
   Run Method
   Modules Collection
   Procedures Collection
				

Propiedades

Id. de artículo: 184745 - Última revisión: martes, 13 de julio de 2004 - Versión: 4.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Edición de aprendizaje
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic for Applications 5.0
Palabras clave: 
kbmt kbhowto kbscript KB184745 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 184745

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com