逐步解說:使用 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
在 Sheet1 中選取 [A1] 儲存格。
在 [名稱] 方塊中,輸入 formInput。
[名稱] 方塊位於資料編輯列的左邊,就在工作表欄 [A] 的上面。
請按 ENTER 鍵。
A1 儲存格中會加入 NamedRange 控制項。選取 [A1] 儲存格時,工作表上不會出現任何可見的提示,但是 [formInput] 會顯示在 [名稱] 方塊中 (工作表上方左邊的位置) 和 [屬性] 視窗中。
將 Windows Form 加入專案
建立一個 Windows Form 用來提示使用者輸入資訊。
若要加入 Windows Form
在 [方案總管] 中選取 [WinFormInput] 專案。
在 [專案] 功能表上,按一下 [加入 Windows Form]。
將表單命名為 GetInputString.vb 或 GetInputString.cs,然後按一下 [加入]。
這個新表單就會在設計工具中開啟。
選取這個按鈕,在 [屬性] 視窗中找出 [Text] 屬性,然後將文字變更為 [確定]。
接著,將程式碼加入至 ThisWorkbook.vb 或 ThisWorkbook.cs,收集使用者的資訊。
顯示 Windows Form 並且收集資訊
建立 GetInputString Windows Form 的執行個體並且顯示它,然後將使用者的資訊寫入工作表中的儲存格。
若要顯示表單並且收集資訊
以滑鼠右鍵按一下 [方案總管] 中的 [ThisWorkbook.vb] 或 [ThisWorkbook.cs],然後按一下 [檢視程式碼]。
在 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(); }
建立名為 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 事件。
傳送資訊到工作表
若要傳送資訊到工作表
以滑鼠右鍵按一下 [方案總管] 中的 [GetInputString],然後按一下 [設計工具檢視]。
按兩下這個按鈕,開啟已經加入按鈕 Click 事件處理常式的程式碼檔案。
將程式碼加入至事件處理常式,以便從文字方塊取得輸入、將輸入傳送至函式 WriteStringToCell,然後關閉表單。
Globals.ThisWorkbook.WriteStringToCell(Me.TextBox1.Text) Me.Dispose()
Globals.ThisWorkbook.WriteStringToCell(this.textBox1.Text); this.Dispose();
測試
您現在可以執行專案了。Windows Form 隨即出現,而您的輸入也會出現在工作表中。
若要測試您的活頁簿
請按 F5 執行您的專案。
請確認這個 Windows Form 是否會出現。
在文字方塊中輸入 Hello World,然後按一下 [確定]。
請確認 Hello World 是否出現在工作表的 [A1] 儲存格中。
後續步驟
這個逐步解說示範顯示 Windows Form 並且傳遞資料到工作表的基本概念。您還可以執行下列工作:
使用 Excel 活頁簿或 Word 文件上的 Windows Form 控制項。如需詳細資訊,請參閱Office 文件上的 Windows Form 控制項概觀。
從文件層級自訂或應用程式層級增益集中,修改 Microsoft Office 應用程式的使用者介面。如需詳細資訊,請參閱 Office UI 自訂。