Tutorial: Automatizar una aplicación desde un panel de tareas personalizado

En este tutorial se muestra cómo crear un panel de tareas personalizado que automatiza PowerPoint. El panel de tareas personalizado inserta fechas en una diapositiva cuando el usuario hace clic en un control MonthCalendar que está en el panel de tareas personalizado.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de aplicación para las siguientes aplicaciones: Excel 2007 y Excel 2010; InfoPath 2007 e InfoPath 2010; Outlook 2007 y Outlook 2010; PowerPoint 2007 y PowerPoint 2010; Word 2007 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Aunque en este tutorial se usa específicamente PowerPoint, los conceptos que se muestran en el mismo se pueden aplicar a cualquiera de las aplicaciones enumeradas anteriormente.

En este tutorial se muestran las tareas siguientes:

  • Diseñar la interfaz de usuario del panel de tareas personalizado.

  • Automatizar PowerPoint desde el panel de tareas personalizado.

  • Mostrar el panel de tareas personalizado en PowerPoint.

Nota

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que tenga y la configuración que esté utilizando determinan estos elementos. Para obtener más información, vea Trabajar con valores de configuración.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

-

Una edición de Visual Studio 2010 que incluye las herramientas para desarrolladores de Microsoft Office. Para obtener más información, vea [Configurar un equipo para desarrollar soluciones de Office](bb398242\(v=vs.100\).md).
  • Microsoft Office PowerPoint 2007 o Microsoft PowerPoint 2010.

Crear el proyecto de complemento

El primer paso es crear el proyecto de complemento para PowerPoint.

Para crear un nuevo proyecto

  • Cree un proyecto de complemento de PowerPoint denominado MyAddIn mediante la plantilla de proyecto de complemento de PowerPoint. Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.

    Visual Studio abre el archivo de código ThisAddIn.cs o ThisAddIn.vb y agrega el proyecto MyAddIn al Explorador de soluciones.

Diseñar la interfaz de usuario del panel de tareas personalizado

No existe ningún diseñador visual para los paneles de tareas personalizados, pero puede diseñar un control de usuario con la distribución que desee. Más adelante en este tutorial, agregará el control de usuario al panel de tareas personalizado.

Para diseñar la interfaz de usuario del panel de tareas personalizado

  1. En el menú Proyecto, haga clic en Agregar control de usuario.

  2. En el cuadro de diálogo Agregar nuevo elemento, cambie el nombre del control de usuario por MyUserControl y haga clic en Agregar.

    Se abre el control de usuario en el diseñador.

  3. En la ficha Controles comunes del Cuadro de herramientas, arrastre un control MonthCalendar hasta el control de usuario.

    Si el control MonthCalendar es más grande que la superficie de diseño del control de usuario, cambie el tamaño de éste para ajustarlo al del control MonthCalendar.

Automatizar PowerPoint desde el panel de tareas personalizado.

La finalidad del complemento es poner una fecha seleccionada en la primera diapositiva de la presentación activa. Utilice el evento DateChanged del control para agregar la fecha seleccionada cada vez que cambie.

Para automatizar PowerPoint desde el panel de tareas personalizado

  1. En el diseñador, haga doble clic en el control MonthCalendar.

    Se abre el archivo MyUserControl.cs o MyUserControl.vb, y se crea el controlador del evento DateChanged.

  2. Agregue el código siguiente en la parte superior del archivo. Este código crea alias para los espacios de nombres Microsoft.Office.Core y Microsoft.Office.Interop.PowerPoint.

    Imports Office = Microsoft.Office.Core
    Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    
    using Office = Microsoft.Office.Core;
    using PowerPoint = Microsoft.Office.Interop.PowerPoint;
    
  3. Agregue el código siguiente a la clase MyUserControl. Este código declara un objeto Shape como miembro de MyUserControl. En el paso siguiente, utilizará Shape para agregar un cuadro de texto a una diapositiva en la presentación activa.

    Private TextBox As PowerPoint.Shape
    
    private PowerPoint.Shape textbox;
    
  4. Reemplace el controlador de evento monthCalendar1_DateChanged con el código siguiente. Este código agrega un cuadro de texto a la primera diapositiva en la presentación activa y, a continuación, agrega la fecha seleccionada al cuadro de texto. En este código se utiliza el objeto Globals.ThisAddIn para obtener acceso al modelo de objetos de PowerPoint.

    Private Sub MonthCalendar1_DateChanged( _
        ByVal sender As System.Object, _
        ByVal e As System.Windows.Forms.DateRangeEventArgs) _
        Handles MonthCalendar1.DateChanged
    
        Try
            If TextBox IsNot Nothing Then
                TextBox.Delete()
            End If
    
            Dim Slide As PowerPoint.Slide
            Slide = Globals.ThisAddIn.Application.ActivePresentation.Slides(1)
            TextBox = Slide.Shapes.AddTextbox( _
                Office.MsoTextOrientation.msoTextOrientationHorizontal, _
                50, 100, 600, 50)
            TextBox.TextFrame.TextRange.Text = e.Start.ToLongDateString()
            TextBox.TextFrame.TextRange.Font.Size = 48
            TextBox.TextFrame.TextRange.Font.Color.RGB = _
                System.Drawing.Color.DarkViolet.ToArgb()
    
        Catch ex As Exception
            System.Windows.Forms.MessageBox.Show(ex.ToString())
        End Try
    End Sub
    
    private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
    {
        try
        {
            if (textbox != null)
            {
                textbox.Delete();
            }
    
            PowerPoint.Slide slide =
                Globals.ThisAddIn.Application.ActivePresentation.Slides[1];
            textbox = slide.Shapes.AddTextbox(
                Office.MsoTextOrientation.msoTextOrientationHorizontal,
                50, 100, 600, 50);
            textbox.TextFrame.TextRange.Text = e.Start.ToLongDateString();
            textbox.TextFrame.TextRange.Font.Size = 48;
            textbox.TextFrame.TextRange.Font.Color.RGB =
                 Color.DarkViolet.ToArgb();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
  5. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto MyAddIn y haga clic en Generar. Compruebe si el proyecto se genera sin errores.

Mostrar el panel de tareas personalizado

Para mostrar el panel de tareas personalizado cuando se inicia el complemento, agregue el control de usuario al panel de tareas en el controlador del evento Startup del complemento.

Para mostrar el panel de tareas personalizado

  1. En el Explorador de soluciones, expanda PowerPoint.

  2. Haga clic con el botón secundario del mouse en ThisAddIn.cs o ThisAddIn.vb, y haga clic en Ver código.

  3. Agregue el código siguiente a la clase ThisAddIn. Este código declara instancias de MyUserControl y CustomTaskPane como miembros de la clase ThisAddIn.

    Private myUserControl1 As MyUserControl
    Private myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane
    
    private MyUserControl myUserControl1;
    private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
    
  4. Reemplace el controlador de evento ThisAddIn_Startup con el código siguiente. Este código crea un nuevo CustomTaskPane agregando el objeto MyUserControl a la colección CustomTaskPanes. El código también muestra el panel de tareas.

    Private Sub ThisAddIn_Startup(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Me.Startup
    
        myUserControl1 = New MyUserControl
        myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "Calendar")
        myCustomTaskPane.Visible = True
    End Sub
    
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        myUserControl1 = new MyUserControl();
        myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "Calendar");
        myCustomTaskPane.Visible = true;
    }
    

Probar el complemento

Cuando ejecuta el proyecto, se abre PowerPoint y el complemento presenta el panel de tareas personalizado. Haga clic en el control MonthCalendar para probar el código.

Para probar el complemento

  1. Presione F5 para ejecutar el proyecto.

  2. Confirme que el panel de tareas personalizado está visible.

  3. Haga clic en una fecha en el control MonthCalendar en el panel de tareas.

    La fecha se inserta en la primera diapositiva en la presentación activa.

Pasos siguientes

Puede obtener más información sobre cómo crear paneles de tareas personalizados en estos temas:

Vea también

Tareas

Cómo: Agregar un panel de tareas personalizado a una aplicación

Tutorial: Sincronizar un panel de tareas personalizado con un botón de la cinta de opciones

Tutorial: Mostrar paneles de tareas personalizados con mensajes de correo electrónico en Outlook

Cómo: Mostrar paneles de tareas personalizados con mensajes de correo electrónico en Outlook

Conceptos

Administrar paneles de tareas personalizados en varias ventanas de la aplicación

Otros recursos

Información general sobre los paneles de tareas personalizados