Chắc hẳn chúng ta đã từng làm những bài thi trắc nghiệm nhiều rồi phải không nào, nhưng có bao giờ bạn tự hỏi tạo ra bài thi đó như thế nào, làm thế nào để có thể chấm thi trắc nghiệm tự động và nhanh chóng? Hôm nay chúng ta cùng tìm hiểu một ứng dụng của VBA trong việc tạo bài thi trắc nghiệm trên Excel, một kỹ thuật tưởng khó nhưng lại rất đơn giản.
Xem nhanh
Khi chuẩn bị câu hỏi, bạn phải chuẩn bị nội dung bao gồm:
Dưới đây là ví dụ về bảng câu hỏi trắc nghiệm:
Gồm các mục:
Tham khảo thêm bài viết: Tự động cập nhật dữ liệu với công cụ Spin Button
Hoặc bạn có thể thực hiện với việc sử dụng Scroll Bar như sau:
Vẽ 1 Scroll Bar (tab Developer / Insert / Scroll Bar (Form Control))
Sau khi tạo được Scroll Bar, chúng ta click chuột phải vào thanh Scroll Bar và chọn Format Control để thiết lập cho đối tượng này:
Trong mục Format Control, chúng ta thiết lập các nội dung sau:
Minimum value: Giá trị nhỏ nhất, đặt là 1
Maximun value: Giá trị lớn nhất, chúng ta xác định bài thi trắc nghiệm có bao nhiêu câu thì chọn tới giá trị đó, ở đây có 4 câu hỏi nên đặt giá trị là 4
Cell link: Ô liên kết để trả về kết quả chọn của Scroll Bar. Tại ví dụ này chúng ta đặt tại ô G10
=> Khi đó mỗi lần click tăng / giảm giá trị của Scroll Bar thì sẽ tăng / giảm 1 đơn vị tại ô G10, có thể chọn tối đa tới giá trị là 4
Căn cứ vào giá trị tạo được bởi Scroll Bar, chúng ta sẽ sử dụng hàm Vlookup để lấy nội dung của các câu hỏi:
Khi đó các giá trị về Câu hỏi, đáp án sẽ thay đổi phụ thuộc vào việc click chọn số câu hỏi ở Scroll Bar
Trong tab Developer / Insert / Chọn Option Button (form control)
Tạo ra 4 option tương ứng với 4 câu trả lời. Lưu ý: Sắp xếp theo thứ tự các option
Click chuột phải vào 1 Option bất kỳ, chọn Format Control
Trong Format Control chúng ta tạo Cell link cho các Option. Lưu ý: tất cả các option sẽ cùng Link vào 1 vị trí. Khi chọn Option nào sẽ ra kết quả là số thứ tự của Option đó. Do vậy chúng ta cần sắp xếp đúng thứ tự các Option theo các đáp án.
Vì kết quả của Option Button ra các con số tương ứng theo số thứ tự của Option Button, nên để xác định đáp án đó là A , B, C hay D thì cần thêm 1 bước: Sử dụng hàm IF để xác định kết quả của từng Option Button tương ứng với câu trả lời nào.
Tại ô H9 chúng ta sử dụng hàm như sau:
=IF(G9=1,”A”,IF(G9=2,”B”,IF(G9=3,”C”,”D”)))
Tiếp theo chúng ta xác định thêm 1 hàm để xác định kết quả đã lựa chọn ở phần Trả lời trong Bảng câu hỏi. Tại ô I9 sử dụng hàm sau:
Tương ứng với mỗi câu hỏi sẽ xác định xem câu hỏi đó đã có câu trả lời chưa.
Khi chuyển câu hỏi sẽ có các trường hợp sau xảy ra:
Khi câu hỏi chưa có câu trả lời thì tương ứng với đó kết quả ô I9 = 0
Như vậy thao tác chuyển câu hỏi sẽ tương ứng với việc thiết lập giá trị tại ô G9 = I9
Chúng ta có câu lệnh VBA như sau:
Gán Macro này cho Scroll Bar để mỗi khi thay đổi giá trị tại Scroll Bar sẽ thực hiện thao tác này: Click chuột phải vào Scroll Bar, chọn Assign Macro, trong bảng Assign Macro chọn Macro Chuyen_cau_hoi rồi bấm OK
Khi đã chắc chắn với đáp án và trả lời câu hỏi, cần thêm 1 bước xác nhận câu trả lời để ghi nhận câu trả lời, đồng thời phân biệt với những câu hỏi chưa được trả lời.
Logic của thao tác này như sau:
Vì trong bảng câu hỏi bắt đầu từ dòng 3 => Số thứ tự câu hỏi + 2 = Số dòng chứa câu hỏi
Câu lệnh VBA được viết như sau:
Khi hoàn thành thao tác lưu chúng ta có thể kết hợp thêm 1 msgbox để thông báo lại đáp án được chọn, giúp người làm bài kiểm tra lại mình đã chọn đáp án nào.
=> Tạo riêng 1 nút bấm “Xác nhận” để gắn Macro này
Tạo nút bấm bằng cách: Chọn tab Insert / Shapes / vẽ hình bất kỳ (ví dụ như hình chữ nhật) => Trang trí, định dạng và gắn đoạn text cho hình
Click chuột phải vào nút bấm này, chọn Assign Macro và chọn tới Macro Tra_loi
Tạo thêm 1 cột xác định điểm / đúng – sai cho câu trả lời trong Bảng câu hỏi
Tại ô O2 chúng ta sử dụng hàm Countif để đếm các câu trả lời đúng
(Nếu theo điểm số thì sử dụng hàm Sum để cộng tổng điểm)
Tạo Macro thông báo số câu trả lời đúng:
Gán Macro này vào nút lệnh “Kết quả” (Tương tự ở trên, tạo nút bấm “Kết quả” rồi gán Macro này)
Như vậy chúng ta đã hoàn thành được bài trắc nghiệm rồi. Các bạn có thể tăng thêm nhiều câu hỏi nữa để làm phong phú hơn bài thi nhé.
Bảng câu hỏi có thể đặt ở Sheet khác và ẩn sheet đó đi để tránh việc lộ kết quả nhé.
Đây là dạng trắc nghiệm câu hỏi độc lập. Nếu bạn xây dựng dạng bài trắc nghiệm có sẵn toàn bộ câu hỏi thì cách làm sẽ khác.
Tải về file mẫu tại: http://bit.ly/2EaRoiV
Đến đây bạn đã có thể bắt đầu tìm hiểu những điều thú vị của VBA được rồi. VBA giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên Excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như Word, Power Point, Outlook … giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp …
Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online. Hiện nay hệ thống đang có nhiều ưu đãi khi bạn đăng ký khóa học này. Chi tiết xem tại: