Macro Excel - UserForms
Đôi khi, bạn có thể phải thu thập thông tin nhiều lần từ những người khác. Excel VBA cung cấp cho bạn một cách dễ dàng để xử lý công việc này-UserForm. Như bất kỳ biểu mẫu nào khác mà bạn điền, UserForm giúp bạn hiểu đơn giản, thông tin nào sẽ được cung cấp. UserForm thân thiện với người dùng theo cách mà các điều khiển được cung cấp có thể tự giải thích, kèm theo các hướng dẫn bổ sung khi cần thiết.
Ưu điểm chính của UserForm là bạn có thể tiết kiệm thời gian mà bạn dành cho những gì và cách thức điền thông tin.
Tạo UserForm
Để tạo UserForm, hãy tiến hành như sau:
- Nhấp vào tab DEVELOPER trên Ribbon.
- Bấm Visual Basic. Một cửa sổ Visual Basic cho sổ làm việc sẽ mở ra.
- Nhấp vào Chèn,
- Chọn UserForm từ danh sách thả xuống.
UserForm xuất hiện ở phía bên phải của cửa sổ.
Hiểu về UserForm
Phóng to cửa sổ UserForm.xlsx - UserForm1.
Bây giờ bạn đang ở chế độ thiết kế. Bạn có thể chèn các điều khiển trên UserForm và viết mã cho các hành động tương ứng. Các điều khiển có sẵn trong ToolBox. Thuộc tính của UserForm nằm trong cửa sổ Thuộc tính. UserForm1 (chú thích của UserForm) được cung cấp trong Forms trong Projects Explorer.
- Thay đổi chú thích của UserForm thành Báo cáo Dự án - Hàng ngày trong cửa sổ thuộc tính.
- Thay đổi tên của UserForm thành ProjectReport.
Những thay đổi được phản ánh trong UserForm, thuộc tính và trình khám phá dự án.
Các điều khiển trong ToolBox
Một UserForm sẽ có các thành phần khác nhau. Khi bạn nhấp vào bất kỳ thành phần nào, bạn sẽ được cung cấp hướng dẫn về cái gì và cách thức cung cấp thông tin hoặc bạn sẽ được cung cấp các tùy chọn (lựa chọn) để lựa chọn. Tất cả những điều này được cung cấp bởi các điều khiển ActiveX trong ToolBox của UserForm.
Excel cung cấp hai loại điều khiển - điều khiển biểu mẫu và điều khiển ActiveX. Bạn cần hiểu sự khác biệt giữa hai loại điều khiển này.
Kiểm soát biểu mẫu
Điều khiển biểu mẫu là điều khiển gốc của Excel tương thích với các phiên bản Excel trước, bắt đầu từ phiên bản Excel 5.0. Điều khiển biểu mẫu cũng được thiết kế để sử dụng trên trang tính macro XLM.
Bạn có thể chạy macro bằng cách sử dụng điều khiển Biểu mẫu. Bạn có thể gán một macro hiện có cho một điều khiển hoặc ghi hoặc ghi một macro mới. Khi điều khiển được nhấp vào, macro. Bạn đã học cách chèn nút lệnh từ các điều khiển Biểu mẫu trong trang tính để chạy macro. Tuy nhiên, không thể thêm các điều khiển này vào UserForm.
Điều khiển ActiveX
Các điều khiển ActiveX có thể được sử dụng trên VBA UserForms. Các điều khiển ActiveX có các thuộc tính mở rộng mà bạn có thể sử dụng để tùy chỉnh giao diện, hành vi, phông chữ và các đặc điểm khác của chúng.
Bạn có các điều khiển ActiveX sau đây trong UserForm ToolBox -
- Pointer
- Label
- TextBox
- ComboBox
- ListBox
- CheckBox
- OptionButton
- Frame
- ToggleButton
- CommandButton
- TabStrip
- MultiPage
- ScrollBar
- SpinButton
- Image
Ngoài các điều khiển này, Visual Basic cung cấp cho bạn hàm MsgBox có thể được sử dụng để hiển thị thông báo và / hoặc nhắc người dùng thực hiện một hành động.
Trong vài phần tiếp theo, bạn sẽ hiểu các điều khiển này và MsgBox. Sau đó, bạn sẽ ở vị trí để chọn điều khiển nào trong số các điều khiển này được yêu cầu để thiết kế UserForm của bạn.
Nhãn
Bạn có thể sử dụng Nhãn cho mục đích nhận dạng bằng cách hiển thị văn bản mô tả, chẳng hạn như tiêu đề, chú thích và / hoặc hướng dẫn ngắn gọn.
Example
Hộp văn bản
Bạn có thể sử dụng TextBox là một hộp hình chữ nhật, để nhập, xem hoặc chỉnh sửa văn bản. Bạn cũng có thể sử dụng TextBox làm trường văn bản tĩnh trình bày thông tin chỉ đọc.
Example
Hộp danh sách
Bạn có thể sử dụng Hộp danh sách để hiển thị danh sách một hoặc nhiều mục văn bản mà từ đó người dùng có thể chọn. Sử dụng hộp danh sách để hiển thị số lượng lớn các lựa chọn khác nhau về số lượng hoặc nội dung.
- Chèn ListBox trên UserForm.
- Nhấp vào ListBox.
- Gõ ProjectCodes cho Tên trong cửa sổ Thuộc tính của ListBox.
Có ba loại Hộp danh sách -
Single-selection List box- Một Hộp Danh sách lựa chọn duy nhất chỉ cho phép một lựa chọn. Trong trường hợp này, hộp danh sách giống với một nhóm các nút tùy chọn, ngoại trừ hộp danh sách có thể xử lý một số lượng lớn các mục hiệu quả hơn.
Multiple selection List Box - Hộp Danh sách nhiều lựa chọn cho phép một trong hai lựa chọn hoặc các lựa chọn liền kề (liền kề).
Extended-selection List Box - Hộp Danh sách lựa chọn mở rộng cho phép một lựa chọn, các lựa chọn liền kề và các lựa chọn không liền kề (hoặc rời rạc).
Bạn có thể chọn một trong các loại Hộp Danh sách này từ cửa sổ Thuộc tính.
- Nhấp chuột phải vào UserForm.
- Chọn Mã Chế độ xem từ danh sách thả xuống. Cửa sổ mã của UserForm mở ra.
- Nhấp vào Khởi tạo trong hộp trên cùng bên phải của cửa sổ mã.
- Nhập nội dung sau trong Private Sub UserForm_Initialize ().
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Bấm vào tab Chạy trên ruy-băng.
- Chọn Run Sub / UserForm từ danh sách thả xuống.
Tiếp theo, bạn có thể viết mã cho các hành động chọn một mục trong danh sách. Nếu không, bạn chỉ có thể hiển thị văn bản được chọn, đây là trường hợp điền Mã dự án trong Báo cáo.
ComboBox
Bạn có thể dùng ComboBoxkết hợp hộp văn bản với hộp danh sách để tạo hộp danh sách thả xuống. Hộp tổ hợp nhỏ gọn hơn hộp danh sách nhưng yêu cầu người dùng nhấp vào mũi tên xuống để hiển thị danh sách các mục. Sử dụng hộp tổ hợp để chỉ chọn một mục từ danh sách.
- Chèn một ComboBox trên UserForm.
- Nhấp vào ComboBox.
- Gõ ProjectCodes2 cho Tên trong cửa sổ Thuộc tính của ComboBox.
- Nhấp chuột phải vào UserForm.
- Chọn Mã Chế độ xem từ danh sách thả xuống.
- Cửa sổ mã của UserForm mở ra.
Nhập như sau như hình dưới đây.
ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Bấm vào tab Chạy trên ruy-băng.
- Chọn Run Sub / UserForm từ danh sách thả xuống.
Nhấp vào mũi tên xuống để hiển thị danh sách các mục.
Bấm vào mục được yêu cầu, chẳng hạn như Project2016-5. Tùy chọn đã chọn sẽ được hiển thị trong hộp tổ hợp.
CheckBox
Bạn có thể sử dụng các hộp kiểm để chọn một hoặc nhiều tùy chọn được hiển thị bằng cách nhấp vào các hộp. Các tùy chọn sẽ có nhãn và bạn có thể hình dung rõ ràng những tùy chọn nào được chọn.
Một hộp kiểm có thể có hai trạng thái:
- Đã chọn (đã bật), được biểu thị bằng dấu tích trong hộp
- Đã xóa (đã tắt), được biểu thị bằng ô trống
Bạn có thể sử dụng các hộp kiểm để chọn các tùy chọn trong một hộp kết hợp để tiết kiệm không gian. Trong trường hợp như vậy, hộp kiểm cũng có thể có trạng thái thứ ba -
Hỗn hợp, nghĩa là sự kết hợp của các trạng thái bật và tắt, được biểu thị bằng một chấm đen trong hộp. Điều này sẽ được hiển thị để chỉ ra nhiều lựa chọn trong hộp tổ hợp với các hộp kiểm.
Chèn các hộp kiểm trong UserForm như hình dưới đây.
- Bấm vào tab Chạy trên ruy-băng.
- Chọn Run Sub / UserForm từ danh sách thả xuống.
- Nhấp vào các hộp cho các tùy chọn đã chọn của bạn.
Nút tùy chọn
Bạn có thể sử dụng một nút tùy chọn, còn được gọi là nút radio để thực hiện một lựa chọn duy nhất trong một tập hợp giới hạn các lựa chọn loại trừ lẫn nhau. Một nút tùy chọn thường được chứa trong một hộp nhóm hoặc một khung.
Một nút tùy chọn được biểu thị bằng một vòng tròn nhỏ. Một nút tùy chọn có thể có một trong hai trạng thái sau:
- Đã chọn (đã bật), được biểu thị bằng một dấu chấm trong vòng tròn
- Đã xóa (đã tắt), được biểu thị bằng khoảng trống
Khung
Bạn có thể sử dụng điều khiển khung, còn được gọi là hộp nhóm để nhóm các điều khiển liên quan thành một đơn vị trực quan. Thông thường, các nút tùy chọn, hộp kiểm hoặc nội dung có liên quan chặt chẽ được nhóm trong một điều khiển khung.
Điều khiển khung được biểu diễn bằng một đối tượng hình chữ nhật với nhãn tùy chọn.
Chèn một khung với chú thích “Lựa chọn”.
Chèn hai nút tùy chọn với chú thích “Có” và “Không” trong điều khiển khung. Các tùy chọn Có và Không loại trừ lẫn nhau.
- Bấm vào tab Chạy trên ruy-băng.
- Chọn Run Sub / UserForm từ danh sách thả xuống.
- Nhấp vào tùy chọn đã chọn của bạn.
Nút bật tắt
Bạn có thể sử dụng nút bật tắt để biểu thị trạng thái, chẳng hạn như Có hoặc Không hoặc một chế độ, chẳng hạn như bật hoặc tắt. Nút thay đổi giữa trạng thái được bật và trạng thái bị vô hiệu hóa khi nó được nhấp vào.
Chèn nút bật tắt trên UserForm như hình dưới đây -
Bấm vào tab Chạy trên ruy-băng.
Chọn Run Sub / UserForm từ danh sách thả xuống. Nút chuyển đổi sẽ ở trạng thái bật theo mặc định.
Nhấp vào nút chuyển đổi. Nút chuyển đổi sẽ bị tắt.
Nếu bạn nhấp lại vào nút chuyển đổi, nó sẽ được bật.
CommandButton
Bạn có thể sử dụng nút lệnh để chạy macro thực hiện một số hành động khi người dùng nhấp vào nó. Bạn đã học cách sử dụng nút lệnh trên trang tính để chạy macro.
Nút lệnh còn được gọi là nút ấn. Chèn một nút lệnh trên UserForm như hình dưới đây -
- Nhấp chuột phải vào nút lệnh.
- Nhập mã sau vào Commandbutton1_click () con.
ProjectCodes2.DropDown
- Bấm vào tab Chạy trên ruy-băng.
- Chọn Run Sub / UserForm từ danh sách thả xuống.
Nhấp vào nút lệnh. Danh sách hộp tổ hợp thả xuống sẽ mở ra, vì đó là hành động mà bạn đã viết trong mã.
TabStrip
Bạn có thể chèn một dải tab giống với các tab Excel trên UserForm.
Thanh cuộn
Bạn có thể sử dụng thanh cuộn để cuộn qua một loạt các giá trị bằng cách nhấp vào mũi tên cuộn hoặc bằng cách kéo hộp cuộn.
Chèn một thanh cuộn vào UserForm bằng cách vẽ nó ở vị trí cần thiết và điều chỉnh độ dài của thanh cuộn.
- Nhấp chuột phải vào thanh cuộn.
- Chọn Mã Chế độ xem từ danh sách thả xuống. Cửa sổ Mã mở ra.
- Thêm dòng sau vào con ScrollBar1_Scroll ().
TextBox2.Text = "Scrolling Values"
- Bấm vào tab Chạy trên ruy-băng.
- Chọn Run Sub / UserForm từ danh sách thả xuống.
Kéo hộp cuộn. Văn bản - Giá trị cuộn sẽ được hiển thị trong hộp văn bản khi bạn chỉ định nó làm hành động cho cuộn thanh cuộn.
MsgBox ()
Bạn có thể sử dụng hàm MsgBox () để hiển thị thông báo khi bạn nhấp vào một cái gì đó. Nó có thể là một hướng dẫn hoặc một số thông tin hoặc một cảnh báo hoặc một cảnh báo lỗi.
Ví dụ: bạn có thể hiển thị thông báo rằng các giá trị đang được cuộn khi bạn bắt đầu cuộn hộp cuộn.
Hiển thị Biểu tượng Hộp Thư
Bạn có thể sử dụng các màn hình biểu tượng hộp tin nhắn mô tả thông điệp cụ thể. Bạn có nhiều biểu tượng hộp thư phù hợp với mục đích của mình -
- Nhập mã sau trong 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"
- Bấm vào tab Chạy trên ruy-băng.
- Chọn Run Sub / UserForm từ danh sách thả xuống.
- Kéo hộp cuộn.
Bạn sẽ nhận được liên tiếp các hộp thông báo sau.
Thiết kế UserForm
Bây giờ, bạn đã hiểu về các điều khiển khác nhau mà bạn có thể sử dụng trên UserForm. Chọn các điều khiển, nhóm chúng nếu cần và sắp xếp chúng trên UserForm theo một số trình tự có ý nghĩa. Viết các hành động cần thiết dưới dạng mã tương ứng với các điều khiển tương ứng.
Tham khảo hướng dẫn VBA trong thư viện hướng dẫn này để biết ví dụ về UserForm.