Userform (form người dùng) trong VBA excel

9 1.8K 19
Userform (form người dùng) trong VBA excel

Đang tải... (xem toàn văn)

Thông tin tài liệu

USERFORM (FORM NGƯỜI DÙNG) TRONG VBA EXCEL Bài viết hướng dẫn bạn làm thế nào để tạo ra một UserForm trong VBA Excel. UserForm là form để tương tác với user. File bài tập đính kèm (Bạn tải về cùng nhé)! Bài viết hướng dẫn bạn làm thế nào để tạo ra một UserForm trong VBA Excel. UserForm là form để tương tác với user, chúng ta sẽ ví dụ một form như sau: Thêm các điều khiển (ActiveX Controls): Để thêm các điều khiển lên Userform, ta làm như sau: 1. Mở Visual Basic Editor. Nếu Project Explorer không hiển thị thì click View, Project Explorer. 2. Click Insert, Userform. Nếu Toolbox không tự động xuất hiện, bấm vào View, Toolbox. Màn hình của bạn sẽ được hiển thị như sau: 3. Thêm các điều khiển được liệt kê trong bảng dưới đây như hình ảnh trên UserForm thể hiện trước đó. Ví dụ, tạo ra một text box bằng cách click vào TextBox từ hộp công cụ. Tiếp theo kéo text box lên UserForm. 4. Thay đổi tên (name) và chú thích (captions) của các điều khiển theo bảng dưới đây. Tên sẽ được sử dụng trong code của Excel VBA. Chú thích sẽ xuất hiện trên màn hình của bạn để mô tả thông tin. Ta nên thay đổi tên của điều khiển. để viết code dễ dàng hơn để đọc. Để thay đổi tên (Name) và chú thích (Caption) của các điều khiển, bấm View, Properties Window và click vào từng điều khiển. Control Name Caption Userform DinnerPlannerUserForm Dinner Planner Text Box NameTextBox Text Box PhoneTextBox List Box CityListBox Combo Box DinnerComboBox Check Box DateCheckBox1 June 13th Check Box DateCheckBox2 June 20th Check Box DateCheckBox3 June 27th Frame CarFrame Car Option Button CarOptionButton1 Yes Option Button CarOptionButton2 No Text Box MoneyTextBox Spin Button MoneySpinButton Command Button OKButton OK Control Name Caption Command Button ClearButton Clear Command Button CancelButton Cancel 7 Labels No need to change Name:, Phone Number:, etc. Lưu ý: Một combo box là một danh sách thả xuống (drop-down list) để người dùng có thể chọn một mục trong danh sách đó. Hiển thị Userform Đặt một command button trên worksheet và paste vào đoạn code sau: Private Sub CommandButton1_Click() DinnerPlannerUserForm.Show End Sub Bây giờ chúng ta sẽ tạo ra các giá trị khởi tạo với Sub UserForm_Initialize. Khi bạn sử dụng Show cho UserForm, sub này sẽ được tự động thực thi. 1. Mở Visual Basic Editor. 2. Trên Project Explorer, click phải chuột vào DinnerPlannerUserForm và click View Code. 3. Chọn Userform từ danh sách thả xuống bên trái, chọn Initialize danh sách bên phải. 4. Thêm đoạn code bên dưới: Private Sub UserForm_Initialize() 'Empty NameTextBox NameTextBox.Value = "" 'Empty PhoneTextBox PhoneTextBox.Value = "" 'Empty CityListBox CityListBox.Clear 'Fill CityListBox With CityListBox .AddItem "San Francisco" .AddItem "Oakland" .AddItem "Richmond" End With 'Empty DinnerComboBox DinnerComboBox.Clear 'Fill DinnerComboBox With DinnerComboBox .AddItem "Italian" .AddItem "Chinese" .AddItem "Frites and Meat" End With 'Uncheck DataCheckBoxes DateCheckBox1.Value = False DateCheckBox2.Value = False DateCheckBox3.Value = False 'Set no car as default CarOptionButton2.Value = True 'Empty MoneyTextBox MoneyTextBox.Value = "" 'Set Focus on NameTextBox NameTextBox.SetFocus End Sub Chú ý: Các đoạn text sau dâu ‘ (nháy đơn) là các lời chú thích, nó sẽ không được thực thi khi chạy code. Gán Macros Chúng ta đã tạo ra được phần đầu của UserForm. Mặc dù trông có vẻ giống một giao diện tương tác với người dùng, nhưng không có gì xảy ra khi chúng ta bấm vào các nút lệnh trên UserForm. 1. Mở Visual Basic Editor. 2. Trên Project Explorer, nháy đôi vào DinnerPlannerUserForm. 3. Nháy đôi vào nút Money spin. 4. Thêm đoạn code sau: Private Sub MoneySpinButton_Change() MoneyTextBox.Text = MoneySpinButton.Value End Sub Giải thích: Dòng code này update giá trị của text box khi người dùng sử dụng nút spin. 5. Nháy đôi vào nút OK. 6. Thêm đoạn code sau: Private Sub OKButton_Click() Dim emptyRow As Long 'Make Sheet1 active Sheet1.Activate 'Determine emptyRow emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 'Transfer information Cells(emptyRow, 1).Value = NameTextBox.Value Cells(emptyRow, 2).Value = PhoneTextBox.Value Cells(emptyRow, 3).Value = CityListBox.Value Cells(emptyRow, 4).Value = DinnerComboBox.Value If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption If CarOptionButton1.Value = True Then Cells(emptyRow, 6).Value = "Yes" Else Cells(emptyRow, 6).Value = "No" End If Cells(emptyRow, 7).Value = MoneyTextBox.Value End Sub Giải thích: Đầu tiên, chúng ta kích hoạt Sheet1. Tiếp theo, chúng ta xác định emptyRow. Biến emptyRow là dòng trống đầu tiên và mỗi lần tăng thêm 1 dòng. Cuối cùng, chúng ta chuyển các thông tin từ các điều khiển trên UserForm để các cột cụ thể của dòng emptyRow. 7. Nháy đôi vào nút Clear. 8. Thêm đọa code sau: Private Sub ClearButton_Click() Call UserForm_Initialize End Sub Giải thích: dòng mã này gọi UserForm_Initialize Sub khi bạn nhấn vào nút Clear. 9. Nháy đôi vào nút Cancel. 10. Thêm đọa code sau: Private Sub CancelButton_Click() Unload Me End Sub Giải thích: dòng mã này đóng UserForm khi bạn bấm vào nút Cancel. Kiểm tra Userform Thoát Visual Basic Editor, nhập thông tin hiển thị dưới đây vào dòng 1 và kiểm tra UserForm. Kết quả:

Ngày đăng: 27/08/2015, 00:10

Mục lục

  • File bài tập đính kèm (Bạn tải về cùng nhé)!

  • Thêm các điều khiển (ActiveX Controls):

  • Hiển thị Userform

  • Gán Macros

  • Kiểm tra Userform

Tài liệu cùng người dùng

  • Đang cập nhật ...