逐步解說:使用 Windows Form 收集數據

本逐步解說示範如何從 Microsoft Office Excel 的文件層級自訂開啟 Windows Form、向使用者收集資訊,以及將該資訊寫入工作表儲存格。

適用於: 本主題中的資訊適用於檔層級專案和 VSTO 載入宏專案。 請參閱 Office 應用程式 lication 和項目類型所提供的功能。

雖然本逐步解說特別使用 Excel 的文件層級專案,但是所示範的概念也適用於其他 Office 專案。

必要條件

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

注意

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

建立新專案

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

建立新的專案

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

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

將 NamedRange 控制件新增至工作表

將指定範圍加入 Sheet1

  1. 選取 上的儲存格 A1 Sheet1

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

    [名稱] 方塊位於工作表 A 欄正上方的公式列左側。

  3. Enter 鍵。

    NamedRange 控制項會加入儲存格 A1。 工作表上不會明顯表示,不過當選取儲存格 A1 時, formInput 會出現在 [名稱] 方塊 (工作表左上方) 和 [屬性] 視窗中。

將 Windows Form 新增至專案

建立 Windows Form 以提示使用者輸入資訊。

加入 Windows Form

  1. 在方案總管 中,選取專案 WinFormInput

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

  3. 將表單命名 GetInputString.vbGetInputString.cs,然後按一下 [加入]

    新表單隨即在設計工具中開啟。

  4. TextBoxButton 加入表單。

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

    接下來,將程式碼加入 ThisWorkbook.vbThisWorkbook.cs ,以收集使用者的資訊。

顯示 Windows Form 並收集資訊

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

顯示表單並收集資訊

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

  2. OpenThisWorkbook事件處理常式,加入下列程式碼以宣告表單 GetInputString 的變數,然後顯示表單。

    注意

    在 C# 中,您必須加入事件處理常式,如以下 Startup 事件所示。 如需建立事件處理程式的詳細資訊,請參閱 如何:在 Office 專案中建立事件處理程式。

    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.ShowDialog();
    }
    
  3. 建立名為 WriteStringToCell 的方法,以將文字寫入指定範圍。 系統會從表單呼叫這個方法,並將使用者的輸入傳遞至儲存格 NamedRange A1 formInput上的 控制項

    public void WriteStringToCell(string formData)
    {
        Globals.Sheet1.formInput.Value2 = formData;
    }
    

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

將資訊傳送至工作表

將資訊傳送至工作表

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

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

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

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

Test

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

測試您的活頁簿

  1. F5 執行您的專案。

  2. 確認 Windows Form 隨即出現。

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

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

下一步

本逐步解說說明顯示 Windows Form 並將資料傳遞至工作表的基本概念。 您還可以執行下列其他工作:

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

  • 從檔層級自定義或 VSTO 載入宏修改 Microsoft Office 應用程式 lication 的使用者介面。 如需詳細資訊,請參閱 Office UI 自定義