Hướng dẫn tạo bài thi trắc nghiệm trên Excel bằng VBA
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 ...
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.
Bước 1: Chuẩn bị bảng câu hỏi
Khi chuẩn bị câu hỏi, bạn phải chuẩn bị nội dung bao gồm:
- Nội dung phần hỏi
- Các đáp án có thể chọn
- Kết quả đúng
- Câu trả lời nhận được
Dưới đây là ví dụ về bảng câu hỏi trắc nghiệm:
Bước 2: Chuẩn bị phần bài thi
Gồm các mục:
- Nội dung từng câu hỏi: phần câu hỏi và đáp án lựa chọn
- Nút chuyển câu hỏi: có thể sử dụng Spin Button hoặc Scroll Bar để thực hiện.
1. Tạo Spin Button / Scroll Bar
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
2. Tạo nội dung câu hỏi và câu trả lời
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
3. Tạo Option Button để chọn câu trả lời
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”)))
- Nếu kết quả ô G9 là 1 thì lấy giá trị là A
- Nếu kết quả ô G9 là 2 thì lấy giá trị là B
- Nếu kết quả ô G9 là 3 thì lấy giá trị là C
- Không phải các trường hợp trên thì lấy giá trị là D (tương ứng với kết quả là 4)
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.
Bước 3: Tạo lệnh VBA cho các thao tác
1. Thao tác chuyển câu hỏi
Khi chuyển câu hỏi sẽ có các trường hợp sau xảy ra:
- Câu hỏi chưa có câu trả lời: thì tất cả các Option sẽ không được chọn, điều này tương ứng với ô kết quả Cell Link của Option Button (ô G9) = 0
- Câu hỏi đã có câu trả lời: thì sẽ đánh dấu chọn vào Option tương ứng với kết quả đã trả lời, điều này tương ứng với kết quả Cell link của Option Button (ô G9) = giá trị của ô I9
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
2. Thao tác xác nhận câu trả lời
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:
- Đáp án thu được khi click chọn vào câu trả lời sẽ nằm ở các ô G9 (chọn Option Button) và H9 (đáp án tương ứng với Option Button được chọn)
- Kết quả tại ô G9 và H9 sẽ được lưu vào tương ứng với câu hỏi (ô G10) => Xác định Số dòng chứa câu hỏi
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
3. Thao tác chấm điểm / thông báo kết quả
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)
Kết luận
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.
Chúc các bạn học tốt cùng Học Excel Online
Tải về file mẫu tại: http://bit.ly/2EaRoiV