Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA tạo một Biểu mẫu người dùng chứa nhiều trang. Biểu mẫu người dùng này cũng chứa hình ảnh.

Điều khiển Đa trang chứa hai trang. Tại trang 1, người dùng có thể điền thông tin cá nhân của mình. Tại trang 2, người dùng có thể cho biết mình thích bức tranh nào nhất.

Userform Page 1

Userform Page 2

Để tạo Biểu mẫu người dùng này, hãy thực hiện các bước sau.

  1. Mở Trình soạn thảo Visual Basic. Nếu Project Explorer không hiển thị, hãy bấm View, Project Explorer.

  2. Nhấp vào Chèn, Biểu mẫu người dùng. Nếu Hộp công cụ không tự động xuất hiện, hãy bấm Xem, Hộp công cụ. Màn hình của bạn sẽ được thiết lập như bên dưới.

Userform Screen Setup in Excel VBA

  1. Thêm điều khiển Đa trang, nhãn, hộp văn bản (đầu tiên ở trên cùng, thứ hai ở dưới đầu tiên), khung, các nút tùy chọn (đầu tiên ở bên trái, thứ hai ở bên phải), hộp danh sách, điều khiển hình ảnh và nút lệnh. Khi điều này đã được hoàn thành, kết quả sẽ phù hợp với phiên bản trống của Biểu mẫu người dùng được hiển thị trước đó. Ví dụ: tạo điều khiển Nhiều trang bằng cách nhấp vào Nhiều trang từ Hộp công cụ. Tiếp theo, bạn có thể kéo điều khiển Nhiều trang trên Biểu mẫu người dùng. Khi bạn đến khung Giới tính, hãy nhớ vẽ khung này trước khi bạn đặt hai nút tùy chọn vào đó.

  2. Bạn có thể thay đổi tên và chú thích của các điều khiển. Tên được sử dụng trong mã VBA Excel. Phụ đề là những thứ xuất hiện trên màn hình của bạn. Bạn nên thay đổi tên của các điều khiển, nhưng không cần thiết ở đây vì chúng ta chỉ có một số điều khiển trong ví dụ này. Để thay đổi chú thích của Biểu mẫu người dùng, tab Đa trang, nhãn, khung, nút tùy chọn và nút lệnh, hãy nhấp vào Chế độ xem, Cửa sổ thuộc tính và nhấp vào từng điều khiển.

  3. Để hiển thị Biểu mẫu người dùng, hãy đặt một nút lệnh trên trang tính của bạn và thêm dòng mã sau:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Bây giờ chúng ta sẽ tạo Sub UserForm_Initialize. Khi bạn sử dụng phương thức Hiển thị cho Biểu mẫu người dùng, phụ này sẽ tự động được thực thi.

  1. Mở Trình soạn thảo Visual Basic.

  2. Trong Project Explorer, nhấp chuột phải vào UserForm1 và sau đó nhấp vào View Code.

  3. Chọn Userform từ danh sách thả xuống bên trái. Chọn Khởi tạo từ danh sách thả xuống bên phải.

  4. Thêm các dòng mã sau:

Private Sub UserForm_Initialize()

With ListBox1

.AddItem "Mountains"

.AddItem "Sunset"

.AddItem "Beach"

.AddItem "Winter"

End With

End Sub

Giải thích: hộp danh sách ở trang 2 sẽ được lấp đầy.

Bây giờ chúng tôi đã tạo phần đầu tiên của Biểu mẫu người dùng. Mặc dù nó trông đã gọn gàng rồi nhưng sẽ không có gì xảy ra khi chúng ta chọn một mục từ hộp danh sách hoặc khi chúng ta nhấp vào nút OK.

  1. Tải xuống các hình ảnh (bên phải của trang này) và thêm chúng vào “C: \ test \”

  2. Trong Project Explorer, nhấp đúp vào UserForm1.

  3. Nhấp đúp vào hộp danh sách.

  4. Thêm các dòng mã sau:

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then

Image1.Picture = LoadPicture("C:\test\Mountains.jpg")

End If

If ListBox1.ListIndex = 1 Then

Image1.Picture = LoadPicture("C:\test\Sunset.jpg")

End If

If ListBox1.ListIndex = 2 Then

Image1.Picture = LoadPicture("C:\test\Beach.jpg")

End If

If ListBox1.ListIndex = 3 Then

Image1.Picture = LoadPicture("C:\test\Winter.jpg")

End If

End Sub

Giải thích: những dòng mã này tải một hình ảnh tùy thuộc vào mục được chọn trong hộp danh sách.

  1. Nhấp đúp vào nút OK.

  2. Thêm các dòng mã sau:

Private Sub CommandButton1_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 = TextBox1.Value

Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then

Cells(emptyRow, 3).Value = "Male"

Else

Cells(emptyRow, 3).Value = "Female"

End If

Cells(emptyRow, 4).Value = ListBox1.Value

'Close Userform

Unload Me

End Sub

Giải thích: đầu tiên, chúng tôi kích hoạt Sheet1. Tiếp theo, chúng tôi xác định voidRow. Biến voidRow là hàng trống đầu tiên và tăng lên mỗi khi thêm bản ghi. Tiếp theo, chúng tôi chuyển thông tin từ Userform sang các cột cụ thể của blankRow. Cuối cùng, chúng tôi đóng Biểu mẫu người dùng.

  1. Thoát khỏi Visual Basic Editor, nhập các nhãn được hiển thị bên dưới vào hàng 1 và kiểm tra Userform.

Kết quả:

Test the Userform