Biểu mẫu người dùng có thể có nhiều thành phần khác nhau cho các đầu vào.

Các thành phần này được gọi là Controls of UserForm.

Có một số loại điều khiển biểu mẫu người dùng, mỗi loại có các thuộc tính khác nhau và được sử dụng vì những lý do khác nhau. Sẽ rất hữu ích khi biết cách thức và thời điểm sử dụng từng loại điều khiển biểu mẫu người dùng. Trong bài viết này, chúng ta sẽ học cách sử dụng UserForm Control trong Excel VBA.

Các loại điều khiển UserForms

Có quá nhiều điều khiển biểu mẫu người dùng trong VBA. Trong bài viết này, chúng tôi sẽ chỉ tập trung vào các điều khiển biểu mẫu chính.

1: Nhãn

2: TextBox

3: ComboBox

4: ListBox

5: CheckBox

6: OptionButton

7: ToggleButton

8: CommandButton

9: Khung

Hãy xem tất cả các điều khiển này.

Nhãn:

Các nhãn được sử dụng để hiển thị các nhãn văn bản. Giống như nhãn cho một khu vực đầu vào, một cảnh báo, một hướng, v.v.

image

Để thêm nhãn vào biểu mẫu người dùng, chỉ cần chọn tùy chọn Nhãn (biểu tượng A) từ ToolBox. Con trỏ sẽ chuyển thành dấu cộng. Kéo đến khu vực bạn muốn đặt nhãn.

TextBox:

Hộp văn bản là một tùy chọn đầu vào mở cơ bản từ người dùng. Người dùng có thể chỉ cần nhập các đầu vào mà họ muốn cung cấp. Kịch bản cơ bản là đầu vào Tên.

image

Nếu bạn muốn hiển thị một số thông báo khi di chuột qua hộp văn bản, hãy viết thông báo đó vào ControlTipText trong cửa sổ thuộc tính.

image

ComboBox:

Các combox được sử dụng để hiển thị danh sách các mục khi được nhấp vào. Người dùng có thể dễ dàng chọn bất kỳ mục nào được hiển thị từ danh sách đó hoặc tự mình nhập đầu vào.

Chúng tôi sử dụng ComboBox trong Excel VBA khi chúng tôi có một danh sách tùy chọn để người dùng lựa chọn. Người dùng có thể chọn từ danh sách hoặc nhập câu trả lời của họ theo cách thủ công.

image

Chọn hộp tổ hợp từ hộp công cụ và kéo trên biểu mẫu. Nó sẽ chèn một hộp tổ hợp ngay lập tức vào biểu mẫu. Tên mặc định của combox sẽ là Combobox1, 2, 3, v.v. Bạn có thể thay đổi nó từ hộp thuộc tính.

image

Làm thế nào để Chèn các mục trong ComboBox?

Vì vậy, bây giờ bạn đã thêm hộp kết hợp vào biểu mẫu của chúng tôi. Nhưng khi chúng tôi tải biểu mẫu người dùng, nó không hiển thị gì trong hộp tổ hợp. Điều này là do chúng tôi chưa thêm bất kỳ mục nào vào hộp kết hợp.

Trong ví dụ này, tôi muốn thêm các mục vào hộp kết hợp khi biểu mẫu người dùng khởi tạo (tải). Vì vậy, chúng tôi sẽ sử dụng biểu mẫu người dùng ngay cả “Khởi tạo”.

Nhấp chuột phải vào biểu mẫu người dùng (không phải trên bất kỳ thành phần nào) để chọn toàn bộ biểu mẫu người dùng. Chọn mã xem.

image

, chọn khởi tạo.

image

Bây giờ sử dụng thuộc tính AddItem của ComboBox Class và thêm bao nhiêu mục bạn muốn.

Private Sub UserForm_Initialize()

ComboBox1.AddItem "2016"

ComboBox1.AddItem "2017"

ComboBox1.AddItem "2018"

ComboBox1.AddItem "2019"

ComboBox1.AddItem "2020"

End Sub

Vì chúng tôi đang thêm các mục trong sự kiện UserForm_Initialize (), tất cả các mục sẽ được thêm vào hộp kết hợp khi biểu mẫu người dùng tải.

image

Lấy mục đã chọn từ ComboBox

Để sử dụng mục đã chọn từ combobox, chúng ta chỉ cần sử dụng Thuộc tính Giá trị của ComboBox.

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value

End Sub

Ở đây chúng tôi đang hiển thị giá trị chúng tôi đã chọn khi người dùng nhấp vào nút lệnh (chúng tôi sẽ đến sự kiện nhấp vào nút lệnh bên dưới).

image

Hộp danh sách

ListBox được sử dụng khi chúng ta muốn người dùng chọn từ một danh sách đã xác định.

Nghe có vẻ giống với ComboBox? Có, một hộp danh sách rất giống với ComboBox ngoại trừ việc người dùng không thể nhập câu trả lời của họ vào hộp danh sách.

Họ chỉ phải chọn từ các tùy chọn có sẵn.

Để chèn hộp danh sách trong biểu mẫu, hãy chọn hộp danh sách đó từ hộp công cụ và kéo trên vùng biểu mẫu.

Tên mặc định của hộp danh sách sẽ là listbox1, 2, 3, v.v.

Bạn có thể thay đổi nó từ hộp thuộc tính.

image

Cũng giống như ComboBox, hộp danh sách VBA ban đầu trống. Để khởi tạo nó, chúng ta chỉ cần sử dụng thuộc tính add của lớp listbox.

Làm thế nào để thêm các mục vào hộp danh sách?

Khi chúng tôi thêm các mục vào danh sách combobox trong các sự kiện khởi tạo của biểu mẫu, chúng tôi sẽ thêm các mục của hộp danh sách trong cùng một sự kiện. Chỉ cần chỉnh sửa sự kiện khởi tạo ở trên để thêm các mục khi biểu mẫu người dùng tải.

Private Sub UserForm_Initialize()

ComboBox1.AddItem "2016"

ComboBox1.AddItem "2017"

ComboBox1.AddItem "2018"

ComboBox1.AddItem "2019"

ComboBox1.AddItem "2020"

'Adding Item to List

ListBox1.AddItem "Jan"

ListBox1.AddItem "Feb"

ListBox1.AddItem "Mar"

ListBox1.AddItem "Apr"

ListBox1.AddItem "May"

ListBox1.AddItem "Jun"

ListBox1.AddItem "Jul"

ListBox1.AddItem "Aug"

ListBox1.AddItem "Sep"

ListBox1.AddItem "Oct"

ListBox1.AddItem "Nov"

ListBox1.AddItem "Dec"

End Sub

Đoạn mã trên sẽ thêm tên của các tháng vào hộp danh sách ngay sau khi chúng tôi tải biểu mẫu.

image

Truy xuất mục đã chọn từ ListBox

Để truy xuất mục người dùng đã chọn trong ListBox, chúng tôi sử dụng thuộc tính Giá trị của đối tượng hộp danh sách.

Ở đây, chúng tôi thêm tháng được người dùng chọn vào đầu vào được cung cấp trong combobox.

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value & "-" & ListBox1.Value

End Sub

image

Khi chúng ta nhấn nút lệnh, chúng ta sẽ thấy các mục đã chọn được hiển thị cho chúng ta trong hộp thư.

image

Kiểm soát VBA CheckBox

Hộp kiểm là các điều khiển nhị phân có thể được đặt thành Đúng hoặc Sai.

Bạn có thể có nhiều hộp kiểm và chọn nhiều hộp kiểm cùng một lúc. Điều này về cơ bản được sử dụng khi người dùng cần có thể chọn nhiều tùy chọn. Giống như các câu hỏi trắc nghiệm.

Để thêm hộp kiểm vào biểu mẫu người dùng, chỉ cần chọn hộp kiểm từ hộp công cụ và kéo trên vùng biểu mẫu người dùng VBA.

image

Khi bạn thêm các hộp kiểm vào biểu mẫu người dùng, tên mặc định của các hộp kiểm giống như checkbox1, checkbox2, v.v. Bạn có thể thay đổi tên của các hộp kiểm từ hộp thuộc tính.

Làm thế nào để sử dụng các hộp kiểm trên biểu mẫu người dùng?

Ngay sau khi bạn thêm các hộp kiểm, chúng sẽ có thể nhấp được. Người dùng có thể chọn hoặc bỏ chọn chúng. Nhưng, làm thế nào để biết hộp kiểm nào được chọn và hộp kiểm nào không?

Như tôi đã nói, các hộp kiểm là boolean. Vì vậy, nếu một hộp kiểm được chọn, giá trị của nó là True, ngược lại giá trị của nó là False.

Đoạn mã dưới đây sẽ kiểm tra những hộp kiểm nào được chọn và hiển thị nó trong hộp Tin nhắn.

Private Sub CommandButton1_Click()

Dim msg As String

If CheckBox1.Value = True Then

msg = msg & "CheckBox1 is selected"

End If

If CheckBox2.Value = True Then

msg = msg & vbCrLf & "CheckBox2 is selected"

End If

MsgBox msg

End Sub

image

Nếu bạn muốn người dùng chỉ có thể chọn một tùy chọn trên biểu mẫu người dùng thì hãy sử dụng các nút radio.

OptionButton VBA Control

Các nút radio / tùy chọn được sử dụng trong biểu mẫu người dùng VBA khi chúng tôi muốn người dùng chỉ chọn một tùy chọn từ các tùy chọn có sẵn. Như khi biểu mẫu hỏi giới tính, ngôn ngữ ưa thích, nhóm tuổi, v.v.

Có thể dễ dàng thêm nút radio vào biểu mẫu người dùng bằng cách chọn nó từ các công cụ và kéo trên vùng biểu mẫu. Kéo và thả các nút radio nhiều lần cho nhiều nút radio.

image

Làm thế nào để có được lựa chọn của nút radio / Option?

Các nút radio là Binary. Giá trị của chúng có thể là Đúng hoặc Sai.

Nút radio đã chọn sẽ được đặt thành Đúng và tất cả các nút khác sẽ chuyển thành sai. Chỉ một nút radio tại một thời điểm sẽ đúng trong một nhóm.

Đoạn mã dưới đây chỉ cần kiểm tra xem nút radio nào được chọn và hiển thị thông báo tương ứng.

Private Sub CommandButton1_Click()

Dim gender As String

If OptionButton1.Value = True Then

gender = "Male"

ElseIf OptionButton2.Value = True Then

gender = "female"

Else

gender = "other"

End If

MsgBox gender

End Sub

image

Lưu ý rằng chỉ có thể chọn một nút tùy chọn trên biểu mẫu người dùng trong ví dụ trên. Nhưng nếu bạn muốn có nhiều nhóm nút tùy chọn. Trong trường hợp đó, chúng tôi sử dụng khung. Và điều đó đưa chúng tôi đến…

Khung trong VBA UserForm

Các khung được sử dụng để nhóm thành các đối tượng dạng người dùng, như hộp kiểm và nút tùy chọn.

Để sử dụng khung, trước tiên hãy kéo và thả khung đó trên vùng biểu mẫu, sau đó thả các đối tượng khác vào khung đó.

image

Bạn có thể thay đổi tên của khung từ chú thích trong hộp thuộc tính.

image

Tất cả các sự kiện cũng có sẵn cho các khung dưới dạng các đối tượng biểu mẫu người dùng khác. Nhưng tốt hơn là chúng ta chỉ sử dụng chúng để nhóm các đối tượng. Bạn có thể thiết lập các sự kiện onclick trên fram để tải một số thông tin cơ bản cho các đối tượng trong đó, khi nó được nhấp vào.

Chuyển đổi các nút trong VBA UserForm

Các nút chuyển đổi cũng là các đối tượng nhị phân có thể được đặt thành bật và tắt. Bạn có thể sử dụng các nút bật tắt để bật và tắt một thứ gì đó.

Để thêm nút chuyển đổi vào biểu mẫu người dùng, chỉ cần chọn nó từ các công cụ và kéo trên vùng biểu mẫu.

image

Đoạn mã dưới đây được đặt trên sự kiện onclick của nút bật tắt. Nó thay đổi màu của ô A1 thành màu xanh lam khi nhấn nút bật tắt và đặt lại khi nhấn nút bật tắt.

Private Sub ToggleButton1_Click()

If ToggleButton1.Value Then

Range("A1").Interior.ColorIndex = 32

Else

Range("A1").Interior.ColorIndex = xlColorIndexNone

End If

End Sub

Các nút lệnh trong VBA UserForm

Đây là các nút mà chúng tôi sử dụng để thực thi mã VBA chính như xác nhận, tính toán, gửi biểu mẫu, v.v.

Trong các ví dụ trên, tôi đã sử dụng nút lệnh để gửi biểu mẫu. Bạn có thể có bao nhiêu nút lệnh trên biểu mẫu người dùng tùy thích.

image

Để thực thi các mã khi nút được nhấp, chỉ cần nhấp đúp vào nút. Nó sẽ mở ra sự kiện CommandButton_Click. Viết mã ở đây để thực thi khi nhấp vào nút lệnh.

image

Đoạn mã dưới đây sẽ chạy khi bạn nhấp vào nút lệnh xong và nó cũng sẽ đóng biểu mẫu người dùng.

Private Sub CommandButton1_Click()

Dim gender As String

If OptionButton1.Value = True Then

gender = "Male"

ElseIf OptionButton2.Value = True Then

gender = "female"

Else

gender = "other"

End If

MsgBox gender

Unload UserForm1 'closes userform

End Sub

Vâng thưa các bạn, đây là những điều khiển biểu mẫu người dùng cơ bản trong VBA. Tôi hy vọng nó là hữu ích. Nếu bạn có bất kỳ nghi ngờ nào về các điều khiển biểu mẫu người dùng và các sự kiện biểu mẫu người dùng, hãy viết nó ra trong phần nhận xét bên dưới.

Các bài viết liên quan

Bài viết phổ biến:

Chức năng Countif là cần thiết để chuẩn bị bảng điều khiển của bạn.