Tutorial: Recopilar datos con un formulario Windows Forms
Actualización: noviembre 2007
En este tutorial se muestra cómo abrir un formulario Windows Forms 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.
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 Visual Studio Tools para Office.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
Visual Studio Tools para Office (componente opcional de Visual Studio 2008 Professional y Visual Studio Team System).
Microsoft Office Excel 2003 o Microsoft Office Excel 2007.
Visual Studio Tools para Office se instala, de forma predeterminada, con las versiones que se enumeran de Visual Studio. Para comprobar si está instalado, consulte Instalar Visual Studio Tools para Office.
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 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 Visual Studio para Office.
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 formulario Windows Forms al proyecto
Cree un formulario Windows Forms para solicitar información al usuario.
Para agregar un formulario Windows Forms
Seleccione el proyecto WinFormInput en el Explorador de soluciones.
En el menú Proyecto, haga clic en Agregar Windows Forms.
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 formulario Windows Forms y recopilar información
Cree una instancia del formulario Windows Forms 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 Visual Studio Tools para 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 formulario Windows Forms 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 formulario Windows Forms.
Escriba Hola a todos 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 formulario Windows Forms 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
Tareas
Cómo: Interactuar con formularios Windows Forms
Conceptos
Desarrollar soluciones de Office
Modelo de programación de soluciones de Office
Programar complementos de nivel de aplicación