OFF97: Cómo mostrar un diálogo "Ahora Processing" mientras se ejecuta la macro

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

En esta página

Resumen

Este artículo describe cómo puede mostrar un cuadro de diálogo mientras se ejecuta una macro en segundo plano. El propósito de mostrar un cuadro de diálogo es avisar al usuario que la aplicación está ocupada mientras la macro se ejecuta.

Más información

Cuando utiliza el método Show para mostrar un UserForm, el formulario de usuario se muestra "modal"; es decir, el usuario debe responder al UserForm antes de utilizar cualquier otra parte de la aplicación. Después de carga un formulario de usuario, no se ejecuta ningún código posteriores hasta que el formulario de usuario se oculta o se descarga.

Para mostrar un cuadro de diálogo y permitir que la macro se ejecute en segundo plano, puede ejecutar la macro en el evento Activate del objeto UserForm. Cuando se muestra el formulario de usuario, se desencadena el evento Activate y la macro se ejecutará mientras el formulario de usuario se muestra en la pantalla. Los pasos siguientes ilustran cómo puede lograr esto:

Microsoft proporciona ejemplos de Visual Basic para aplicaciones procedimientos 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. Los procedimientos Visual Basic en este artículo se proporcionan "tal cual" y Microsoft no garantiza que se pueden utilizar en todas las situaciones. Aunque los profesionales de soporte técnico de Microsoft pueden explicarle la funcionalidad de una macro determinada, no modificarán estos ejemplos para proporcionar funcionalidad agregada ni le ayudan a crear macros para satisfacer sus necesidades específicas. Si tiene poca experiencia en programación, desea consulte uno de los proveedores de soluciones de Microsoft. Proveedores de soluciones ofrecen una amplia gama de servicios basados en la cuota, incluida la creación macros personalizadas. Para obtener más información acerca de Microsoft Solution Providers, llame al Microsoft Customer Information Service (800) 426-9400.

  1. Inicie un nuevo libro en Microsoft Excel 97 (o un documento nuevo en Microsoft Word 97).
  2. Presione ALT+F11 para activar el Editor de Visual Basic.
  3. En el menú Insertar, haga clic en módulo para insertar un módulo en el proyecto.
  4. Presione F4 para mostrar la ventana Propiedades.
  5. Cambie la propiedad Name del módulo a Processing_Code .
  6. En la ventana del módulo Processing_Code, escriba lo siguiente:
          Public Processing_Message As String
          Public Macro_to_Process As String
    
          Sub StartProcessing (msg As String, code As String)
    
             Processing_Message = msg    'Set the message that is displayed
                                         'in the dialog box
    
             Macro_to_Process = code     'Set the macro that is run after the
                                         'dialog box is active
    
             Processing_Dialog.Show      'Show the Dialog box
    
          End Sub
    						
  7. En el menú Insertar, haga clic en UserForm para agregar un formulario de usuario al proyecto.
  8. Presione F4 para mostrar la ventana Propiedades. Cambiar el formulario UserForm propiedades para los valores siguientes.
           Property           Setting
           -------------------------------------
    
           Name               Processing_Dialog
           Caption            (Leave Blank)
           StartUpPosition    2-CenterScreen
  9. Agregue un control de Label al UserForm. Cambie la propiedad Name de la etiqueta lblMessage.
  10. Seleccione el formulario de usuario. En el menú Ver, haga clic en código. En la ventana código, en la lista procedimiento, seleccione el evento Initialize y, a continuación, escriba lo siguiente en la ventana código:
           Private Sub UserForm_Initialize()
    
              lblMessage.Caption = Processing_Message  'Change the Label
                                                       'Caption
    
           End Sub
    						
  11. En la ventana código, haga clic en evento Activate en la lista procedimiento y escriba lo siguiente:
           Private Sub UserForm_Activate()
    
              Me.Repaint                         'Refresh the UserForm
              Application.Run Macro_to_Process   'Run the macro
              Unload Me                          'Unload the UserForm
    
           End Sub
    						
  12. En el menú Insertar, haga clic en módulo. Escriba el siguiente código en la ventana código:
           Sub MyMacro()
    
              For x = 1 to 5000
                 Application.StatusBar = x   '5000 Iterations Changing
                                             'StatusBar
              Next
    
              Application.StatusBar = False  'Reset the StatusBar
    
           End Sub
    
           Sub Main()
    
              'Call the StartProcessing procedure to show the Processing_Dialog
              'with the label "Processing, Please Wait..." and execute
              'MyMacro.
    
              StartProcessing "Processing, Please Wait...", "MyMacro"
    
           End Sub
    						
  13. Presione ALT+Q para dejar el Editor de Visual Basic y volver a Microsoft Excel (o Microsoft Word).
  14. En el menú Herramientas, seleccione Macro y haga clic en Macros. Seleccione el principal macro y haga clic en ejecución. Aparecerá el cuadro de diálogo Processing_Dialog.
Mientras el cuadro de diálogo se muestra el texto barra de estado en el aplicación se incrementa desde 1 a 5000--el texto de barra de estado cambio es la indicación de que la macro se ejecuta mientras el cuadro de diálogo está en la pantalla.

Cómo utilizar el cuadro de diálogo de procesamiento en otros libros

Para utilizar este cuadro de diálogo "Procesamiento de, espere" con macros en otros libros o documentos, haga lo siguiente:

  1. Activar el Editor de Visual Basic. En el menú Ver, haga clic en proyecto Explorer.
  2. Seleccione el proyecto que creó en los pasos anteriores.
  3. Haga clic con el botón secundario en el formulario UserForm "Processing_Dialog" y haga clic en Exportar archivo. Guardar el formulario UserForm como "Processing_Dialog.frm."
  4. Haga clic con el botón secundario en el módulo "Processing_Code" y haga clic en Exportar archivo. Guarde el módulo como "Processing_Code.bas."
  5. Vuelva a Microsoft Excel y abra el libro en el que le gustaría utilizar el cuadro "Procesos, consulte esperar".
  6. Activar el Editor de Visual Basic.
  7. En el menú Archivo, haga clic en Importar archivo, seleccione "Processing_Dialog.frm" archivo y haga clic en Abrir.
  8. En el menú Archivo, haga clic en Importar archivo. Seleccione "Processing_Dialog.bas" archivo y haga clic en Abrir.
  9. En el menú Insertar, haga clic en módulo y escriba el siguiente código en la ventana código:
          Sub Main()
             StartProcessing "<message text>", "<macro name>"
          End Sub
    						
    donde el argumento de <texto del mensaje de > es la cadena de texto que desea que aparezca en el cuadro de diálogo Processing_Dialog y < nombre de macro > es la macro que desea ejecutar después aparece el cuadro de diálogo. Para mostrar el cuadro de diálogo y ejecutar la macro indicada por "< nombre de macro >", ejecute la macro principal.
Para obtener información sobre cómo mostrar un cuadro de mensaje temporal mientras se ejecuta una macro en Microsoft Excel versiones 5.x o 7.x, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:
148209XL: Cómo crear un cuadro de mensaje temporal mientras se ejecuta la macro

Propiedades

Id. de artículo: 162257 - Última revisión: viernes, 19 de enero de 2007 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Office 97 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Word 97 Standard Edition
Palabras clave: 
kbmt kbcode kbhowto kbprogramming KB162257 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): 162257
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