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
Abra Microsoft Excel.
Haga clic con el botón secundario en la ficha Hoja3 y, a continuación, haga clic en Cambiar nombre en el menú contextual.
Cambie el nombre de la hoja a Datos para el gráfico.
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
En el grupo Gráficos de la ficha Insertar, haga clic en Columna y después en Todos los tipos de gráfico.
En el cuadro de diálogo Insertar gráfico, haga clic en Aceptar.
En la ficha Diseño, en el grupo Datos, haga clic en Seleccionar datos.
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.
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.
En el cuadro de diálogo Seleccionar origen de datos, haga clic en Aceptar.
Cambie de posición el gráfico para que la esquina superior derecha se alinee con la celda E2.
Guarde el archivo en la unidad C y denomínelo ExcelChart.xls.
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
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.
Haga clic en el botón Examinar y localice el libro que ha creado anteriormente en este tutorial.
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
Seleccione el proyecto Mi gráfico de Excel en el Explorador de soluciones.
En el menú Proyecto, haga clic en Agregar nuevo elemento.
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
Si el control de usuario no está visible en el diseñador, haga doble clic en ChartOptions en el Explorador de soluciones.
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
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
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
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
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.
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
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); } } }
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); } } }
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); } } }
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); } } }
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
En el menú Generar, haga clic en Generar solución.
El control de usuario ChartOptions se agrega al Cuadro de herramientas.
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.
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.
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
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()); } }
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
Presione F5 para ejecutar el proyecto.
Seleccione distintos botones de radio.
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:
Implementar el proyecto. Para obtener más información, vea Implementar soluciones de Office.
Utilizar un botón para rellenar un cuadro de texto. Para obtener más información, vea Tutorial: Mostrar texto en un cuadro de texto en una hoja de cálculo utilizando un botón.
Cambiar el formato de una hoja de cálculo utilizando casillas. Para obtener más información, vea Tutorial: Cambiar el formato de una hoja de cálculo utilizando controles CheckBox.