Tutorial: Recopilar datos con Windows Forms
En este tutorial se muestra cómo abrir un Windows Form desde una personalización de nivel de documento de Microsoft Office Excel, recopilar información del usuario y escribir dicha información en una celda de hoja de cálculo.
Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Office 2013 y Office 2010. Vea Características disponibles por aplicación y tipo de proyecto de Office.
Aunque en este tutorial se usa específicamente un proyecto de nivel de documento para Excel, los conceptos que se muestran en el mismo se pueden aplicar a otros proyectos de Office.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
-
Una edición de Visual Studio 2012 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.110\).md).
- Excel 2013 o Excel 2010.
[!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é usando determinan estos elementos.Para obtener más información, vea Valores de configuración de Visual Studio.
Crear un proyecto nuevo
El primer paso es crear un proyecto de libro de Excel.
Para crear un nuevo proyecto
Cree un proyecto de libro de Excel con el nombre WinFormInput y seleccione Crear un nuevo documento en el asistente.Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.
Visual Studio abre el nuevo libro de Excel en el diseñador y agrega el proyecto WinFormInput al Explorador de soluciones.
Agregar un control NamedRange a la hoja de cálculo
Para agregar un rango con nombre a Sheet1
Seleccione la celda A1 de Sheet1.
En el cuadro Nombre, escriba formInput.
El cuadro Nombre está situado a la izquierda de la barra de fórmulas, justo sobre la columna A de la hoja de cálculo.
Presione ENTRAR.
Se agrega un control NamedRange a la celda A1.No hay ninguna indicación visible en la hoja de cálculo, pero formInput aparece en el cuadro Nombre (justo encima de la hoja de cálculo en el lado izquierdo) y en la ventana Propiedades cuando se selecciona la celda A1.
Agregar un Windows Form al proyecto
Cree un Windows Form para solicitar información al usuario.
Para agregar un Windows Form
Seleccione el proyecto WinFormInput en el Explorador de soluciones.
En el menú Proyecto, haga clic en Agregar Windows Form.
Asigne un nombre al formulario GetInputString.vb o GetInputString.cs y, a continuación, haga clic Agregar.
El formulario nuevo se abre en el diseñador.
Agregue una notificación TextBox y un botón Button al formulario.
Seleccione el botón, busque la propiedad Text en la ventana Propiedades y cambie el texto a Aceptar.
A continuación, agregue código a ThisWorkbook.vb o a ThisWorkbook.cs para recopilar la información del usuario.
Presentar el Windows Form y recopilar información
Cree una instancia del Windows Form GetInputString, muéstrela y, a continuación, escriba la información del usuario en una celda de la hoja de cálculo.
Para mostrar el formulario y recopilar información
Haga clic con el botón secundario en ThisWorkbook.vb o en ThisWorkbook.cs en el Explorador de soluciones y, a continuación, seleccione Ver código.
En el controlador de eventos Open de ThisWorkbook, agregue el código siguiente para declarar una variable para el formulario GetInputString y hacer que se muestre el formulario.
[!NOTA]
En C#, debe agregar un controlador de eventos tal como se muestra en el evento Startup a continuación.Para obtener más información sobre cómo crear controladores de eventos, vea Cómo: Crear controladores de eventos en proyectos de Office.
Private Sub ThisWorkbook_Open() Handles Me.Open Dim inputForm As New GetInputString() inputForm.Show() End Sub
private void ThisWorkbook_Startup(object sender, System.EventArgs e) { this.Open += new Microsoft.Office.Interop.Excel.WorkbookEvents_OpenEventHandler(ThisWorkbook_Open); } private void ThisWorkbook_Open() { GetInputString inputForm = new GetInputString(); inputForm.Show(); }
Cree un método con el nombre WriteStringToCell que escriba texto en un rango con nombre.La llamada a este método se realiza desde el formulario y los datos que proporcione el usuario se pasan al control NamedRange, formInput, en la celda A1.
Public Sub WriteStringToCell(ByVal formData As String) Globals.Sheet1.formInput.Value2 = formData End Sub
public void WriteStringToCell(string formData) { Globals.Sheet1.formInput.Value2 = formData; }
A continuación, agregue código al formulario para controlar el evento Click del botón.
Enviar información a la hoja de cálculo
Para enviar información a la hoja de cálculo
Haga clic con el botón secundario en GetInputString, en el Explorador de soluciones y, a continuación, seleccione Diseñador de vistas.
Haga doble clic en el botón para abrir el archivo de código con el controlador de eventos Click del botón agregado.
Agregue código al controlador de eventos para obtener los datos incluidos en el cuadro de texto, envíelo a la función WriteStringToCell y, a continuación, cierre el formulario.
Globals.ThisWorkbook.WriteStringToCell(Me.TextBox1.Text) Me.Dispose()
Globals.ThisWorkbook.WriteStringToCell(this.textBox1.Text); this.Dispose();
Pruebas
Ahora puede ejecutar el proyecto.Aparecerá el Windows Form y los datos proporcionados se mostrarán en la hoja de cálculo.
Para probar el libro
Presione F5 para ejecutar el proyecto.
Confirme que aparece el Windows Form.
Escriba Hello World en el cuadro de texto y, a continuación, haga clic en Aceptar.
Confirme que Hello World aparece en la celda A1 de la hoja de cálculo.
Pasos siguientes
En este tutorial se muestran los aspectos básicos para mostrar un Windows Form y pasar datos a una hoja de cálculo.Entre otras tareas que puede realizar se incluyen las siguientes:
Usar los controles de formularios Windows Forms en un libro de Excel o en un documento de Word.Para obtener más información, vea Información general sobre controles de formularios Windows Forms en documentos de Office.
Modificar la interfaz de usuario de una aplicación de Microsoft Office desde una personalización de nivel de documento o un complemento de nivel de aplicación.Para obtener más información, vea Personalización de la interfaz de usuario de Office.
Vea también
Conceptos
Escribir código en soluciones de Office
Otros recursos
Desarrollar soluciones de Office