共用方式為


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

更新:2007 年 11 月

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

雖然這個逐步解說會特別針對 Excel 使用文件層級專案,所示範的概念卻同樣適用其他 Visual Studio Tools for Office 專案。

必要條件

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

  • Visual Studio Tools for Office (Visual Studio 2008 Professional 和 Visual Studio Team System 的選擇性元件)。

  • Microsoft Office Excel 2003 或 Microsoft Office Excel 2007。

根據預設會隨所列出的 Visual Studio 版本安裝 Visual Studio Tools for Office。若要查看是否已安裝,請參閱 安裝 Visual Studio Tools for Office

注意事項:

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

建立新專案

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

若要建立新的專案

  • 使用 WinFormInput 名稱建立 Excel 活頁簿專案,然後在精靈中選取 [建立新文件]。如需詳細資訊,請參閱 HOW TO:建立 Visual Studio Tools for 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:在 Visual Studio Tools for 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 並且傳遞資料到工作表的基本概念。您還可以執行下列工作:

請參閱

工作

HOW TO:與 Windows Form 互動

概念

開發 Office 方案

Office 方案程式撰寫模型

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

文件層級自訂程式設計

使用 Word 的逐步解說

使用 Excel 的逐步解說

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