Excel宏 - 使用者窗體



有時,您可能需要反覆收集其他人的資訊。Excel VBA提供了一種簡單的方法來處理此任務 - **使用者窗體**。與您填寫的任何其他表單一樣,使用者窗體使您能夠輕鬆理解需要提供哪些資訊。使用者窗體以其提供的控制元件不言自明的方式易於使用,並在必要時附帶其他說明。

使用者窗體的主要優點是您可以節省在填寫資訊的內容和方式上花費的時間。

建立使用者窗體

要建立使用者窗體,請按以下步驟操作:

  • 單擊功能區上的“開發工具”選項卡。
  • 單擊“Visual Basic”。將開啟工作簿的Visual Basic視窗。
  • 單擊“插入”,
  • 從下拉列表中選擇“使用者窗體”。
Creating UserForm

使用者窗體將顯示在視窗的右側。

UserForm Appears

瞭解使用者窗體

最大化UserForm.xlsx – UserForm1視窗。

您現在處於設計模式。您可以在使用者窗體上插入控制元件併為相應的操作編寫程式碼。這些控制元件在工具箱中可用。使用者窗體的屬性位於“屬性”視窗中。UserForm1(使用者窗體的標題)在“專案資源管理器”中的“窗體”下給出。

Understanding UserForm
  • 在“屬性”視窗中將使用者窗體的標題更改為“專案報告 - 每日”。
  • 將使用者窗體的名稱更改為ProjectReport。
ProjectReport

更改將反映在使用者窗體、屬性和專案資源管理器中。

工具箱中的控制元件

使用者窗體將具有不同的元件。當您單擊任何元件時,您將獲得有關資訊內容和提供方式的說明,或者您將獲得可供選擇的選項。所有這些都是透過使用者窗體工具箱中的ActiveX控制元件提供的。

Excel提供兩種型別的控制元件 - 窗體控制元件和ActiveX控制元件。您需要了解這兩種控制元件之間的區別。

窗體控制元件

窗體控制元件是Excel原始控制元件,與早期版本的Excel相容,從Excel 5.0版本開始。窗體控制元件也設計用於XLM宏工作表。

您可以使用窗體控制元件執行宏。您可以將現有宏分配給控制元件,或編寫或錄製新的宏。當單擊控制元件時,宏將執行。您已經瞭解瞭如何在工作表中從窗體控制元件插入命令按鈕以執行宏。但是,這些控制元件不能新增到使用者窗體中。

ActiveX控制元件

ActiveX控制元件可用於VBA使用者窗體。ActiveX控制元件具有廣泛的屬性,您可以使用這些屬性自定義其外觀、行為、字型和其他特性。

在使用者窗體工具箱中,您有以下ActiveX控制元件:

  • 指標
  • 標籤
  • 文字框
  • 組合框
  • 列表框
  • 複選框
  • 選項按鈕
  • 框架
  • 切換按鈕
  • 命令按鈕
  • 選項卡控制元件
  • 多頁
  • 捲軸
  • 旋轉按鈕
  • 影像

除了這些控制元件之外,Visual Basic還為您提供了MsgBox函式,可用於顯示訊息和/或提示使用者執行操作。

在接下來的幾個部分中,您將瞭解這些控制元件和MsgBox。然後,您將能夠選擇設計使用者窗體所需的控制元件。

標籤

您可以使用標籤來識別目的,方法是顯示描述性文字,例如標題、字幕和/或簡要說明。

示例

Label

文字框

您可以使用文字框(一個矩形框)來鍵入、檢視或編輯文字。您還可以將文字框用作靜態文字欄位,以顯示只讀資訊。

示例

TextBox

列表框

您可以使用列表框來顯示一個或多個文字項的列表,使用者可以從中選擇。使用列表框來顯示數量或內容變化較多的大量選擇。

  • 在使用者窗體上插入一個列表框。
  • 單擊列表框。
  • 在列表框的“屬性”視窗中,為“名稱”鍵入ProjectCodes。

列表框有三種類型:

  • **單選列表框** - 單選列表框僅允許選擇一個選項。在這種情況下,列表框類似於一組選項按鈕,只是列表框可以更有效地處理大量專案。

  • **多選列表框** - 多選列表框允許選擇一個選項或連續(相鄰)選項。

  • **擴充套件選擇列表框** - 擴充套件選擇列表框允許選擇一個選項、連續選項和非連續(或不連續)選項。

您可以從“屬性”視窗中選擇其中一種列表框型別。

ListBox
  • 右鍵單擊使用者窗體。
  • 從下拉列表中選擇“檢視程式碼”。使用者窗體的程式碼視窗將開啟。
  • 單擊程式碼視窗右上角的“初始化”。
  • 在Private Sub UserForm_Initialize()下鍵入以下內容。
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5") 

Initialize
  • 單擊功能區上的“執行”選項卡。
  • 從下拉列表中選擇“執行子過程/使用者窗體”。
Select Run

接下來,您可以為在列表中選擇專案編寫操作程式碼。否則,您只需顯示選定的文字,這適用於在報告中填寫專案程式碼的情況。

組合框

您可以使用**組合框**,它將文字框與列表框結合起來以建立下拉列表框。組合框比列表框更緊湊,但要求使用者單擊向下箭頭才能顯示專案列表。使用組合框從列表中選擇一項。

  • 在使用者窗體上插入一個組合框。
  • 單擊組合框。
  • 在組合框的“屬性”視窗中,為“名稱”鍵入ProjectCodes2。
ComboBox
  • 右鍵單擊使用者窗體。
  • 從下拉列表中選擇“檢視程式碼”。
  • 使用者窗體的程式碼視窗將開啟。

鍵入以下內容,如下所示。

ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5") 

Code Window
  • 單擊功能區上的“執行”選項卡。
  • 從下拉列表中選擇“執行子過程/使用者窗體”。
Run Tab

單擊向下箭頭以顯示專案列表。

Click Down Arrow

單擊所需的專案,例如Project2016-5。選定的選項將顯示在組合框中。

Required Item

複選框

您可以使用複選框來選擇一個或多個選項,方法是單擊框中的選項。這些選項將有標籤,您可以清楚地看到選擇了哪些選項。

複選框可以有兩種狀態:

  • 選中(開啟),在框中用勾號表示
  • 清除(關閉),用空白框表示

您可以使用複選框在組合框中選擇選項以節省空間。在這種情況下,複選框也可以具有第三種狀態:

  • 混合,表示開啟和關閉狀態的組合,在框中用黑點表示。這將顯示為表示在帶有複選框的組合框中進行多個選擇。

  • 如下所示在使用者窗體中插入複選框。

CheckBox
  • 單擊功能區上的“執行”選項卡。
  • 從下拉列表中選擇“執行子過程/使用者窗體”。
  • 單擊您選擇的選項的框。
Boxes

選項按鈕

您可以使用選項按鈕(也稱為單選按鈕)在一組有限的互斥選擇中進行單一選擇。選項按鈕通常包含在組合框或框架中。

選項按鈕由一個小圓圈表示。選項按鈕可以具有以下兩種狀態之一:

  • 選中(開啟),在圓圈中用點表示
  • 清除(關閉),用空白表示

框架

您可以使用框架控制元件(也稱為組合框)將相關的控制元件組合到一個視覺單元中。通常,選項按鈕、複選框或密切相關的控制元件都組合在框架控制元件中。

框架控制元件由一個帶可選標籤的矩形物件表示。

  • 插入一個標題為“選擇”的框架。

  • 在框架控制元件中插入兩個標題分別為“是”和“否”的選項按鈕。選項“是”和“否”是互斥的。

Frame
  • 單擊功能區上的“執行”選項卡。
  • 從下拉列表中選擇“執行子過程/使用者窗體”。
  • 單擊您選擇的選項。
Selected Option

切換按鈕

您可以使用切換按鈕來指示狀態(例如“是”或“否”)或模式(例如“開”或“關”)。當單擊按鈕時,它會在啟用和停用狀態之間切換。

如下所示在使用者窗體上插入切換按鈕:

TogglebButton
  • 單擊功能區上的“執行”選項卡。

  • 從下拉列表中選擇“執行子過程/使用者窗體”。切換按鈕預設處於啟用狀態。

Default

單擊切換按鈕。切換按鈕將被停用。

Toggle Button

如果再次單擊切換按鈕,它將被啟用。

命令按鈕

您可以使用命令按鈕來執行宏,當用戶單擊它時,該宏將執行某些操作。您已經瞭解瞭如何在工作表上使用命令按鈕來執行宏。

命令按鈕也稱為按鈕。如下所示在使用者窗體上插入一個命令按鈕:

CommandButton
  • 右鍵單擊命令按鈕。
  • 在子過程Commandbutton1_click()中鍵入以下程式碼。
ProjectCodes2.DropDown 

CommandButton1
  • 單擊功能區上的“執行”選項卡。
  • 從下拉列表中選擇“執行子過程/使用者窗體”。
Daily Report

單擊命令按鈕。組合框的下拉列表將開啟,因為這是您在程式碼中編寫的操作。

Combo Box

選項卡控制元件

您可以在使用者窗體上插入一個類似於Excel選項卡的選項卡控制元件。

捲軸

您可以使用捲軸透過單擊滾動箭頭或拖動滾動框來滾動一系列值。

透過在所需位置繪製捲軸並在使用者窗體上插入它,並調整捲軸的長度。

ScrollBar
  • 右鍵單擊捲軸。
  • 從下拉列表中選擇“檢視程式碼”。程式碼視窗將開啟。
  • 在sub ScrollBar1_Scroll()下新增以下行。
TextBox2.Text = "Scrolling Values" 

Scrolling Value
  • 單擊功能區上的“執行”選項卡。
  • 從下拉列表中選擇“執行子過程/使用者窗體”。
ScrollBar Report

拖動滾動框。文字 - 滾動值將顯示在文字框中,因為您已將其指定為捲軸滾動的操作。

Text Box

MsgBox()

您可以使用 MsgBox() 函式在單擊某些內容時顯示訊息。它可以是指南、一些資訊、警告或錯誤警報。

例如,當您開始滾動滾動框時,可以顯示一條訊息,指示值正在滾動。

MsgBox Function

訊息框圖示顯示

您可以使用訊息框圖示顯示來傳達特定的訊息。您有多個訊息框圖示可供選擇,以滿足您的需求:

  • 在 ScrollBar1_scroll 下方輸入以下程式碼。
MsgBox "Select Ok or Cancel", vbOKCancel, "OK  - Cancel Message" 
MsgBox "It's an Error!", vbCritical, "Run time result" 
MsgBox "Why this value", vbQuestion, "Run time result" 
MsgBox "Value Been for a Long Time", vbInformation, "Run time result" 
MsgBox "Oh Is it so", vbExclamation, "Run time result" 
  • 單擊功能區上的“執行”選項卡。
  • 從下拉列表中選擇“執行子過程/使用者窗體”。
  • 拖動滾動框。

您將依次收到以下訊息框。

Message Boxes

設計使用者窗體

現在,您已經瞭解了可以在使用者窗體上使用的不同控制元件。選擇控制元件,如果需要,將它們組合起來,並根據某種有意義的順序將它們排列在使用者窗體上。將所需的動作編寫為對應於各個控制元件的程式碼。

請參閱本教程庫中的 VBA 教程,瞭解使用者窗體的示例。

廣告

© . All rights reserved.