逐步解說:使用 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
在 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:在 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 自訂。