逐步解說:使用 Windows Form 收集資料

這個逐步解說示範如何從 Microsoft Office Excel 的文件層級自訂開啟 Windows Form、從使用者收集資訊並且將這些資訊寫入至工作表的儲存格中。

**適用於:**本主題中的資訊適用於 Microsoft Office 2010 和 2007 Microsoft Office system 的文件層級專案和應用程式層級專案。 如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

雖然這個逐步解說特別使用 Excel 文件層級專案,但是所示範的概念卻同樣適用其他 Office 專案。

必要條件

您需要下列元件才能完成此逐步解說:

-

包含 Microsoft Office 開發者工具的 Visual Studio 2010 版本。 如需詳細資訊,請參閱[設定電腦以開發 Office 方案](bb398242\(v=vs.100\).md)。
  • Microsoft Office Excel 2007 或 Excel 2010。
注意事項注意事項

在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置: 您所擁有的 Visual Studio 版本和使用的設定決定了這些項目。 如需詳細資訊,請參閱 使用設定

建立新專案

第一步是建立 Excel 活頁簿專案。

若要建立新的專案

  • 建立名為 WinFormInput 的 Excel 活頁簿專案,然後在精靈中選取 [建立新文件]。 如需詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案

    Visual Studio 會在設計工具中開啟新的 Excel 活頁簿,並將 WinFormInput 專案加入至 [方案總管]。

將 NamedRange 控制項加入至工作表

若要將已命名的範圍加入至 Sheet1

  1. 在 Sheet1 中選取 [A1] 儲存格。

  2. 在 [名稱] 方塊中,輸入 formInput。

    [名稱] 方塊位於資料編輯列的左邊,就在工作表欄 [A] 的上面。

  3. 請按 ENTER 鍵。

    A1 儲存格中會加入 NamedRange 控制項。 選取 [A1] 儲存格時,工作表上不會出現任何可見的提示,但是 [formInput] 會顯示在 [名稱] 方塊中 (工作表上方左邊的位置) 和 [屬性] 視窗中。

將 Windows Form 加入專案

建立一個 Windows Form 用來提示使用者輸入資訊。

若要加入 Windows Form

  1. 在 [方案總管] 中選取 [WinFormInput] 專案。

  2. 在 [專案] 功能表上,按一下 [加入 Windows Form]。

  3. 將表單命名為 GetInputString.vb 或 GetInputString.cs,然後按一下 [加入]。

    這個新表單就會在設計工具中開啟。

  4. TextBoxButton 加入至表單。

  5. 選取這個按鈕,在 [屬性] 視窗中找出 [Text] 屬性,然後將文字變更為 [確定]。

接著,將程式碼加入至 ThisWorkbook.vb 或 ThisWorkbook.cs,收集使用者的資訊。

顯示 Windows Form 並且收集資訊

建立 GetInputString Windows Form 的執行個體並且顯示它,然後將使用者的資訊寫入工作表中的儲存格。

若要顯示表單並且收集資訊

  1. 以滑鼠右鍵按一下 [方案總管] 中的 [ThisWorkbook.vb] 或 [ThisWorkbook.cs],然後按一下 [檢視程式碼]。

  2. 在 ThisWorkbook 的 Open 事件處理常式中加入下列程式碼,以宣告代表 GetInputString 表單的變數並顯示表單。

    注意事項注意事項

    在 C# 中,您必須加入事件處理常式,如以下 Startup 事件中所示。 如需建立事件處理常式的詳細資訊,請參閱 HOW TO:在 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. 建立名為 WriteStringToCell 的方法,用來將文字寫入已命名的範圍。 這個方法是從表單呼叫,然後將使用者的輸入傳遞給儲存格 [A1] 上的 NamedRange 控制項,formInput。

    Public Sub WriteStringToCell(ByVal formData As String)
        Globals.Sheet1.formInput.Value2 = formData
    End Sub
    
    public void WriteStringToCell(string formData)
    {
        Globals.Sheet1.formInput.Value2 = formData;
    }
    

接著,將程式碼加入至表單以處理按鈕的 Click 事件。

傳送資訊到工作表

若要傳送資訊到工作表

  1. 以滑鼠右鍵按一下 [方案總管] 中的 [GetInputString],然後按一下 [設計工具檢視]。

  2. 按兩下這個按鈕,開啟已經加入按鈕 Click 事件處理常式的程式碼檔案。

  3. 將程式碼加入至事件處理常式,以便從文字方塊取得輸入、將輸入傳送至函式 WriteStringToCell,然後關閉表單。

    Globals.ThisWorkbook.WriteStringToCell(Me.TextBox1.Text)
    Me.Dispose()
    
    Globals.ThisWorkbook.WriteStringToCell(this.textBox1.Text);
    this.Dispose();
    

測試

您現在可以執行專案了。 Windows Form 隨即出現,而您的輸入也會出現在工作表中。

若要測試您的活頁簿

  1. 請按 F5 執行您的專案。

  2. 請確認這個 Windows Form 是否會出現。

  3. 在文字方塊中輸入 Hello World,然後按一下 [確定]。

  4. 確認 Hello World 出現在工作表的 [A1] 儲存格中。

後續步驟

這個逐步解說示範顯示 Windows Form 並且傳遞資料到工作表的基本概念。 您還可以執行下列工作:

  • 使用 Excel 活頁簿或 Word 文件上的 Windows Form 控制項。 如需詳細資訊,請參閱 Office 文件上的 Windows Form 控制項概觀

  • 從文件層級自訂或應用程式層級增益集中,修改 Microsoft Office 應用程式的使用者介面。 如需詳細資訊,請參閱 Office UI 自訂

請參閱

工作

HOW TO:與 Windows Form 互動

概念

撰寫 Office 方案中的程式碼

使用 Word 的逐步解說

使用 Excel 的逐步解說

Office 方案的全球化與當地語系化

其他資源

開發 Office 方案

應用程式層級增益集程式設計

文件層級自訂程式設計