Ejecutar subrutinas y macros de Visual Basic

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

En esta página

Resumen

En Microsoft Excel 5.0 y versiones posteriores, puede ejecutar Microsoft Visual Basic para aplicaciones Sub procedimientos y macros de Microsoft Excel versión 4.0 desde un procedimiento de Visual Basic mediante los métodos Application.Run y Application.ExecuteExcel4Macro. También puede ejecutar procedimientos Sub de Visual Basic con el método de llamada o escribiendo el nombre de un procedimiento en una línea por sí mismo.

En este artículo ilustra varios métodos que puede utilizar para ejecutar procedimientos Sub y macros de Microsoft Excel versión 4.0 de Visual Basic en Microsoft Excel.

Más información

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.

Utilizar el método Application.Run

Puede utilizar el método Application.Run para ejecutar procedimientos Sub de Visual Basic o Microsoft Excel versión 4.0 macros desde otros procedimientos de Visual Basic. El método Application.Run requiere un argumento con nombre: el nombre de la macro o procedimiento Sub que se ejecute. (Sin embargo, otros argumentos opcionales puede incluidas también.) Este nombre puede ser una cadena de texto (por ejemplo, "TestXLM") o puede ser una variable que es igual al nombre de la macro.

Por ejemplo, para ejecutar una macro de Microsoft Excel versión 4.0 denominada TestXLM, puede utilizar este método:
   Application.Run ("TestXLM")
				
si dispone de la variable "MacroToRun" establecida a "TestXLM", podría usar este método:
Application.Run (MacroToRun)

Utilizar el método Application.ExecuteExcel4Macro

También puede utilizar el método Application.ExecuteExcel4Macro para ejecutar macros de Microsoft Excel versión 4.0 u otros procedimientos Sub de Visual Basic, pero la sintaxis es algo diferente. Para utilizar Application.ExecuteExcel4Macro para ejecutar una macro o procedimiento de Sub, también debe incluir la función ejecutar Microsoft Excel versión 4.0 con la función Run(), como en los siguientes ejemplos:
   Application.ExecuteExcel4Macro "RUN(""TestXLM"")"
				
-o bien -
   Application.ExecuteExcel4Macro "RUN(""" & MacroToRun & """)"
				
Tenga en cuenta que cuando utilice Application.ExecuteExcel4Macro, debe utilizar comillas. Por ejemplo, para utilizar la función ejecutar con la función Run(), debe incluir el nombre del argumento entre comillas:
   RUN("TestXLM")
				
como toda la cadena debe ir entre comillas, cuando agrega comillas a fuera de la cadena, también debe agregar una marca de comillas adicional adyacente a cada comilla en la cadena. La cadena resultante es como sigue:
   "RUN(""TestXLM"")"
				
Application.ExecuteExcel4Macro el comando que utiliza una variable dentro de la función ejecutar con la función Run() es más complejo que el método Application.Run equivalente. Para que se evalúe correctamente el comando, la cadena de macro debe escribirse como:
   "RUN(""" & MacroToRun & """)"
				
este comando se evalúa como:
   RUN("" & MacroToRun & "")
				
que es un comando de macro de Microsoft Excel versión 4.0 válido.

Para utilizar el método de llamada

El método de llamada puede utilizarse para ejecutar procedimientos Sub de Visual Basic, pero no las macros de Microsoft Excel versión 4.0. Por ejemplo, para ejecutar el procedimiento Sub TestVBSub, podría utilizar este método:
   Call TestVBSub
				
tenga en cuenta que no se puede pasar un nombre de variable al método llamada. Por ejemplo, si dispone de la variable "SubToRun" establecida a "TestVBSub", no se puede ejecutar el procedimiento TestVBSub Sub con lo siguiente:
   Call SubToRun
				

Para ejecutar un procedimiento Sub utilizando sólo su nombre

También puede ejecutar un procedimiento Sub de Visual Basic escribiendo su nombre en una línea por sí mismo. Por ejemplo, si desea que el procedimiento Sub para ejecutar la subrutina TestVBSub, escribiría
   TestVBSub
				
en una línea por sí mismo. Cuando se ejecuta esa línea en la subrutina, se ejecutará la subrutina TestVBSub.

Procedimientos de Visual Basic de ejemplo

Para crear los seis procedimientos Sub que ilustran los métodos más comunes que puede utilizar para ejecutar un procedimiento Sub de Visual Basic o la macro de Microsoft Excel versión 4.0 desde otro procedimiento de Visual Basic, siga estos pasos:

  1. En un libro nuevo, inserte una hoja de macro de Microsoft Excel 4.0 denominada Macro1 y un módulo de Visual Basic denominado Module1.

    Para insertar un módulo de Visual Basic en Microsoft Excel 97 o Microsoft Excel 98, presione ALT+F11 para activar el Editor de Visual Basic. A continuación, haga clic en Módulo en el menú Insertar.
  2. En la hoja de macro, escriba la siguiente macro:
    A1: TestXLM
    A2: = alerta ("TestXLM funciona!")
    A3: =RETURN()
    Esta macro muestra un cuadro de alerta.
  3. En la hoja de macro, seleccione la celda A1.
  4. En el menú Insertar, seleccione nombre y, a continuación, haga clic en definir.
  5. Compruebe que la información siguiente aparece en el cuadro de diálogo Definir nombre:

    • El cuadro nombres en el libro contiene el nombre TestXLM.
    • El cuadro se refiere a contiene la referencia = Macro1! $ A $ 1.
    • Se ha seleccionado la opción de comando en macros.
    Cuando los valores son como especificado anteriormente, haga clic en Aceptar definir el nombre de la macro.
  6. En Módulo1, escriba los siguientes procedimientos Sub:
          Option Explicit
    
          'The TestVBSub subroutine displays a message box: it is the Visual
          'Basic equivalent of the TestXLM macro shown above.
    
          Sub TestVBSub()
              MsgBox "TestVBSub works!"             'Displays a message box.
          End Sub
    
          'The Test1 Sub procedure makes use of the Application.Run method with
          'hard-coded macro/subroutine names.
    
          Sub Test1()
              Application.Run ("TestVBSub")
              Application.Run ("TestXLM")
          End Sub
    
          'The Test2 Sub procedure makes use of the Application.Run method with
          'variable macro/Sub procedure names.
    
          Sub Test2()
              Dim SubToRun As String, MacroToRun As String
              SubToRun = "TestVBSub"
              MacroToRun = "TestXLM"
              Application.Run (SubToRun)
              Application.Run (MacroToRun)
          End Sub
    
          'The Test3 Sub procedure makes use of the  
          'Application.ExecuteExcel4Macro
          'method with hard-coded macro/Sub procedure names.
    
          Sub Test3()
              'Note the extra quotation marks which are contained within the
              'RUN statements. These are required in order for the command to
              'evaluate properly.
              Application.ExecuteExcel4Macro "RUN(""TestVBSub"")"
              Application.ExecuteExcel4Macro "RUN(""TestXLM"")"
          End Sub
    
          'The Test4 Sub procedure makes use of the 
          'Application.ExecuteExcel4Macro
          'method with variable macro/Sub procedure names.
    
          Sub Test4()
              Dim SubToRun As String, MacroToRun As String
              SubToRun = "TestVBSub"
              MacroToRun = "TestXLM"
              'Note the extra quotation marks which are contained within the
              'RUN statements. These are required in order for the command to
              'evaluate properly.
              Application.ExecuteExcel4Macro "RUN(""" & SubToRun & """)"
              Application.ExecuteExcel4Macro "RUN(""" & MacroToRun & """)"
          End Sub
    
          'The Test5 Sub procedure uses the Call method with hard-coded
          'Sub procedure names.
    
          Sub Test5()
              Call TestVBSub
          End Sub
    
          'The Test6 Sub procedure runs the TestVBSub subroutine because its 
          'name is entered on a line by itself.
    
          Sub Test6()
              TestVBSub
          End Sub
    						
Cuando ejecute Prueba1, Prueba2, Test3 o Test4, aparecerán dos cuadros de alertas con los mensajes "TestVBSub funciona!" y "TestXLM funciona!" Cuando ejecuta Test5 o Test6, aparecerá un cuadro de alerta con el mensaje "TestVBSub funciona"!

Propiedades

Id. de artículo: 108519 - Última revisión: martes, 10 de octubre de 2006 - Versión: 2.2
La información de este artículo se refiere a:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 98 para Macintosh
Palabras clave: 
kbmt kbdtacode kbhowto kbprogramming KB108519 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): 108519
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

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