NTM Solutions

Thứ Tư, 21 tháng 3, 2018

VBA Macro - Bài 16 - Đối tượng User Form


Quay về mục lục VBA Macro


Các bạn tạo 01 file .xlsm (Macro Enabled)
Tạo một nút bấm Form Control để gọi UserForm khi bấm vào-> Menu Developer -> Insert -> Chọn Button, vẽ ra màn hình.

Nhấp phải chuột vào đối tượng -> chọn Assign Macro và nhập dòng lệnh sau:
UserForm1.Show

1.    Tạo mới User Form

Trong cửa sổ VBA Code ta vào menu Insert-> User Form

2.    Vẽ các đối tượng lên UserForm

Mở thanh toolbox: menu View->Toolbox
Bấm chọn đối tượng, nắm kéo thả vào userform

3.    Chạy UserForm -> bấm F5

4.    Các loại đối tượng UserForm

a.       Select
Con trỏ chọn đối tượng.
b.      Label
Nhãn ghi chữ.
c.       Textbox
Đối tượng cho phép nhập 01 dòng dữ liệu.
d.      Combobox
Đối tượng chọn lựa (cho phép gõ)
e.      Listbox
Đối tượng chọn lựa (không cho phép gõ)
f.        Checkbox
Đối tượng chọn lựa dạng Đúng/Sai
g.       OptionButton
Danh sách các đối tượng chọn lựa (dạng chọn 01 lần)
h.      ToggleButton
Nút Tắt/Bật
i.         Frame
Khung gom đối tượng hiển thị.
j.        CommandButton
Nút bấm.
k.       TabStrip
Nhiều tab hiển thị cùng lúc.
l.         MultiPage
Phân trang (nhiều trang hiển thị cùng lúc).
m.    ScrollBar
Thanh cuộn.
n.      SpinButton
Nút thay đổi giá trị theo bước nhảy cố định.
Thuộc tính SmallChange: giá trị bước nhảy 01 lần bấm tăng hay giảm (mặc định là 1)
o.      Image
Chèn hình.
p.      RefEdit
Đối tượng nhập liệu 01 dòng ( có thể thu nhỏ)

5.    Ứng dụng UserForm

·         Cú pháp câu lệnh hiển thị 01 userform
Tên_user_form.Show
·         Cú pháp câu lệnh lấy giá trị của 01 đối tượng trong userform
Tên_đối tượng.Value
·         Khởi động Userform
Phương thức UserForm_Initialize dùng để thiết lập các giá trị ban đầu của các đối tượng trong UserForm.
Ví dụ:
Vẽ các đối tượng sau:
Loại đối tượng
Tên đối tượng
Thuộc tính
UserForm
UserForm1

Textbox
TextBox1

Textbox
txtSpin

ComboBox
ComboBox1

CheckBox
CheckBox1

CheckBox
CheckBox2

RefEdit
RefEdit1

ToggleButton
ToggleButton1

SpinButton
SpinButton1
SmallChange:5
CommandButton
CmdLuu



Ta vào mục UserForm1_Initialize trong màn hình VBA Code nhập dòng lệnh sau:
Private Sub UserForm_Initialize()
TextBox1.SetFocus
'reset ComboBox1
ComboBox1.Clear

'Dien các gia tri ban dau ComboBox1
With ComboBox1
    .AddItem "Hoai Linh"
    .AddItem "Truong Giang"
    .AddItem "Tran Thanh"
End With
'Khoi tao cac gia trị
CheckBox1.Value = "False"
txtSpin.Value = "0"
TextBox1.Value = ""

End Sub
Và 02 đoạn code cho nút cmdLuu và SpinButton1
Private Sub CmdLuu_Click()
MsgBox TextBox1.Value + vbNewLine + ComboBox1.Value + vbNewLine + CStr(CheckBox1.Value)
End Sub

Private Sub SpinButton1_Change()
txtSpin.Value = SpinButton1.Value
End Sub
Các đối tượng trong VBA đa phần đều có thuộc tính Caption để hiển thị tiêu đề của đối tượng (vba không hỗ trợ Unicode nên không gõ được Tiếng Việt có dấu).
Sau cùng các bạn đóng toàn bộ file .xlsm và mở lại (nhớ chọn Enable Macro nếu Excel có hỏi)-> bấm thử nút gọi UserForm.
Nếu vẫn chưa rõ các bạn xem thêm video clip sau:

Nguồn: Lớp học vi tính .COM