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

  1. Seleccione la celda A1 de Sheet1.

  2. 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.

  3. 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

  1. Seleccione el proyecto WinFormInput en el Explorador de soluciones.

  2. En el menú Proyecto, haga clic en Agregar Windows Forms.

  3. 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.

  4. Agregue una notificación TextBox y un botón Button al formulario.

  5. 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

  1. 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.

  2. 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();
    }
    
  3. 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

  1. Haga clic con el botón secundario en GetInputString, en el Explorador de soluciones y, a continuación, seleccione Diseñador de vistas.

  2. Haga doble clic en el botón para abrir el archivo de código con el controlador de eventos Click del botón agregado.

  3. 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

  1. Presione F5 para ejecutar el proyecto.

  2. Confirme que aparece el formulario Windows Forms.

  3. Escriba Hola a todos en el cuadro de texto y, a continuación, haga clic en Aceptar.

  4. 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:

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

Programar personalizaciones de nivel de documento

Tutoriales para Word

Tutoriales para Excel

Globalización y localización de las soluciones de Office