Tutorial: Actualizar un gráfico en una hoja de cálculo utilizando botones de radio

En este tutorial se muestran los aspectos básicos del uso de los botones de radio en una hoja de cálculo de Microsoft Office Excel para proporcionar al usuario una forma de cambiar entre opciones rápidamente. En este caso, las opciones cambian el estilo de un gráfico.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento para Excel 2007 y Excel 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Para ver el resultado como un ejemplo completo, vea el ejemplo Excel Controls en Ejemplos y tutoriales del desarrollo de Office.

En este tutorial se muestran las tareas siguientes:

  • Agregar un grupo de botones de radio a una hoja de cálculo.

  • Cambiar el estilo de gráfico cuando se selecciona una opción.

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 Excel 2007 o Excel 2010.

Agregar un gráfico a una hoja de cálculo

Puede crear un proyecto de libro de Excel que personalice un libro existente. En este tutorial, agregará un gráfico a un libro y, a continuación, utilizará este libro en una nueva solución de Excel. El origen de datos de este tutorial es una hoja de cálculo denominada Datos para el gráfico.

Para agregar los datos

  1. Abra Microsoft Excel.

  2. Haga clic con el botón secundario en la ficha Hoja3 y, a continuación, haga clic en Cambiar nombre en el menú contextual.

  3. Cambie el nombre de la hoja a Datos para el gráfico.

  4. Agregue los datos siguientes a Datos para el gráfico con la celda A4 como esquina superior izquierda y la celda E8 como esquina inferior derecha.

    Q1

    Q2

    Q3

    Q4

    Oeste

    500

    550

    550

    600

    Este

    600

    625

    675

    700

    Norte

    450

    470

    490

    510

    Sur

    800

    750

    775

    790

A continuación, agregue un gráfico a la primera hoja de cálculo para mostrar los datos.

Para agregar un gráfico en Excel

  1. En el grupo Gráficos de la ficha Insertar, haga clic en Columna y después en Todos los tipos de gráfico.

  2. En el cuadro de diálogo Insertar gráfico, haga clic en Aceptar.

  3. En la ficha Diseño, en el grupo Datos, haga clic en Seleccionar datos.

  4. En el cuadro de diálogo Seleccionar origen de datos, haga clic en el cuadro Rango de datos del gráfico y borre las selecciones predeterminadas.

  5. En la hoja Datos para el gráfico, seleccione el bloque de celdas que contiene los números, desde A4 en la esquina superior izquierda hasta E8 en la esquina inferior derecha.

  6. En el cuadro de diálogo Seleccionar origen de datos, haga clic en Aceptar.

  7. Cambie de posición el gráfico para que la esquina superior derecha se alinee con la celda E2.

  8. Guarde el archivo en la unidad C y denomínelo ExcelChart.xls.

  9. Salga de Excel.

Crear un proyecto nuevo

En este paso, creará un proyecto de libro de Excel basado en el libro ExcelChart.

Para crear un nuevo proyecto

  1. Cree un proyecto de libro de Excel con el nombre Mi gráfico de Excel. En el asistente, seleccione Copiar un documento existente.

    Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.

  2. Haga clic en el botón Examinar y localice el libro que ha creado anteriormente en este tutorial.

  3. Haga clic en Aceptar.

    Visual Studio abre el nuevo libro de Excel en el diseñador y agrega el proyecto Mi gráfico de Excel al Explorador de soluciones.

Establecer las propiedades del gráfico

Cuando se crea un nuevo proyecto de libro de Excel que utiliza un libro existente, se crean automáticamente controles host para todos los rangos con nombre, los objetos de lista y los gráficos del libro. Puede cambiar el nombre del control Chart utilizando la ventana Propiedades.

Para cambiar el nombre del control Chart

  • Seleccione el control Chart en el diseñador y cambie las propiedades siguientes en la ventana Propiedades.

    Propiedad

    Valor

    Name

    dataChart

    HasLegend

    false

Agregar controles

Esta hoja de cálculo utiliza botones de radio para proporcionar a los usuarios una forma de cambiar rápidamente el estilo de gráfico. Sin embargo, los botones de radio deben ser exclusivos: cuando se selecciona un botón no se puede seleccionar ningún otro botón del grupo al mismo tiempo. Este comportamiento no se adquiere de forma predeterminada al agregar varios botones de radio a una hoja de cálculo.

Una forma de agregar este comportamiento consiste en agrupar los botones de radio en un control de usuario, escribir código subyacente en el control de usuario y, a continuación, agregar el control de usuario a la hoja de cálculo.

Para agregar un control de usuario

  1. Seleccione el proyecto Mi gráfico de Excel en el Explorador de soluciones.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento.

  3. En el cuadro de diálogo Agregar nuevo elemento, haga clic en Control de usuario, asigne el nombre ChartOptions al control y haga clic en Agregar.

Para agregar botones de radio al control de usuario

  1. Si el control de usuario no está visible en el diseñador, haga doble clic en ChartOptions en el Explorador de soluciones.

  2. Desde la ficha Controles comunes del Cuadro de herramientas, arrastre un control RadioButton hasta el control de usuario y cambie las siguientes propiedades.

    Propiedad

    Valor

    Name

    columnChart

    Text

    Gráfico de columnas

  3. Agregue un segundo botón de radio al control de usuario y cambie las propiedades siguientes.

    Propiedad

    Valor

    Name

    barChart

    Text

    Gráfico de barras

  4. Agregue un tercer botón de radio al control de usuario y cambie las propiedades siguientes.

    Propiedad

    Valor

    Name

    lineChart

    Text

    Gráfico de líneas

  5. Agregue un cuarto botón de radio al control de usuario y cambie las propiedades siguientes.

    Propiedad

    Valor

    Name

    areaBlockChart

    Text

    Gráfico de bloques de áreas

A continuación, escriba el código para actualizar el gráfico al hacer clic en un botón de radio.

Cambiar el estilo del gráfico cuando se selecciona un botón de radio

Ahora puede agregar el código para cambiar el estilo de gráfico. Para ello, cree un evento público en el control de usuario, agregue una propiedad para establecer el tipo de selección y cree un controlador de eventos para el evento CheckedChanged de cada uno de los botones de radio.

Para crear un evento y una propiedad en un control de usuario

  1. En el Explorador de soluciones, haga clic con el botón secundario en el control de usuario y, a continuación, haga clic en Ver código.

  2. Agregue código a la clase ChartOptions para crear un evento SelectionChanged y la propiedad Selection.

    Public Event SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    Private selectedType As Microsoft.Office.Interop.Excel.XlChartType = _
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered
    
    Public Property Selection() As Microsoft.Office.Interop.Excel.XlChartType
        Get
            Return Me.selectedType
        End Get
        Set(ByVal value As Microsoft.Office.Interop.Excel.XlChartType)
            Me.selectedType = value
        End Set
    End Property
    
    public event EventHandler SelectionChanged;
    
    private Microsoft.Office.Interop.Excel.XlChartType selectedType =
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
    
    public Microsoft.Office.Interop.Excel.XlChartType Selection
    {
        get
        {
            return this.selectedType;
        }
        set
        {
            this.selectedType = value;
        }
    }
    

Para controlar el evento CheckedChanged de los botones de radio

  1. Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de radio areaBlockChart y, a continuación, provoque el evento.

    Private Sub areaBlockChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles areaBlockChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlAreaStacked
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void areaBlockChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlAreaStacked;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  2. Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de radio barChart.

    Private Sub barChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles barChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlBarClustered
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void barChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlBarClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  3. Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de radio columnChart.

    Private Sub columnChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles columnChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void columnChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  4. Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de radio lineChart.

    Private Sub lineChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles lineChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlLineMarkers
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void lineChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlLineMarkers;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  5. En C#, debe agregar controladores de eventos para los botones de radio. Puede agregar el código al constructor ChartOptions, bajo la llamada a InitializeComponent. Para obtener información acerca de cómo crear controladores de eventos, vea Cómo: Crear controladores de eventos en proyectos de Office.

    public ChartOptions()
    {
        InitializeComponent();
    
        areaBlockChart.CheckedChanged += new EventHandler(areaBlockChart_CheckedChanged);
        barChart.CheckedChanged += new EventHandler(barChart_CheckedChanged);
        columnChart.CheckedChanged += new EventHandler(columnChart_CheckedChanged);
        lineChart.CheckedChanged += new EventHandler(lineChart_CheckedChanged);
    }
    

Agregar el control de usuario a la hoja de cálculo

Cuando se genera la solución, el nuevo control de usuario se agrega automáticamente al Cuadro de herramientas. Puede arrastrar el control desde el Cuadro de herramientas a la hoja de cálculo.

Para agregar el control de usuario a la hoja de cálculo

  1. En el menú Generar, haga clic en Generar solución.

    El control de usuario ChartOptions se agrega al Cuadro de herramientas.

  2. En el Explorador de soluciones, haga clic con el botón secundario en Sheet1.vb o Sheet1.cs y, a continuación, haga clic en Ver diseñador.

  3. Arrastre el control ChartOptions desde el Cuadro de herramientas hasta la hoja de cálculo.

    Se agregará al proyecto un nuevo control denominado my_Excel_Chart_ChartOptions1.

  4. Cambie el nombre del control por ChartOptions1.

Cambiar el tipo de gráfico

Para cambiar el tipo de gráfico, cree un controlador de eventos que establezca el estilo según la opción seleccionada en el control de usuario.

Para cambiar el tipo de gráfico que se muestra en la hoja de cálculo

  1. Agregue el siguiente controlador de eventos a la clase Sheet1.

    Private Sub ChartOptions1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles ChartOptions1.SelectionChanged
    
        Try
            dataChart.ChartType = Me.ChartOptions1.Selection
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    
    private void ChartOptions1_SelectionChanged(object sender, EventArgs e)
    {
        try
        {
            dataChart.ChartType = this.ChartOptions1.Selection;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
  2. En C#, debe agregar un controlador de eventos para el control usuario al evento Startup como se muestra a continuación. Para obtener información acerca de cómo crear controladores de eventos, vea Cómo: Crear controladores de eventos en proyectos de Office.

    this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
    

Probar la aplicación

Ahora puede probar el libro para comprobar que el estilo aplicado al gráfico al seleccionar un botón de radio es correcto.

Para probar el libro

  1. Presione F5 para ejecutar el proyecto.

  2. Seleccione distintos botones de radio.

  3. Confirme que el estilo de gráfico cambia y coincide con la selección.

Pasos siguientes

En este tutorial se muestran los aspectos básicos del uso de los botones de radio y los estilos de gráfico en las hojas de cálculo. Éstas son algunas de las tareas que pueden venir a continuación:

Vea también

Conceptos

Tutoriales para Excel