Xây dựng ứng dụng Excel tự sinh đề bài tập và tự chấm kết quả
TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG
Nguyễn Quốc Huy và tgk
XÂY DỰNG ỨNG DỤNG EXCEL TỰ SINH ĐỀ BÀI TẬP
VÀ TỰ CHẤM KẾT QUẢ
BUILD AN EXCEL APPLICATION TO GENERATE EXERCISES
AND MARK RESULTS AUTOMATICALLY
NGUYỄN QUỐC HUY và NGUYỄN VĂN HOÀNG
TÓM TẮT: Khi học môn sử dụng phần mềm bảng tính Microsoft Excel, học sinh/sinh viên phải
làm nhiều bài tập vận dụng về 1 hàm để có thể hiểu và vận dụng được cú pháp của hàm. Tuy nhiên,
mỗi hàm thường chỉ có 1 ví dụ minh họa và 1 bài tập áp dụng, dẫn đến việc người học không có
nhiều cơ hội thực hành, khi tự thực hành các bài tập, người học cũng muốn biết công thức mình sử
dụng là đúng hay sai, khi không thể hỏi trực tiếp thầy cô giảng dạy. Chính vì vậy, việc xây dựng 1
ứng dụng tự động ra đề bài tập và chấm kết quả khi tự thực hành của người học sẽ giúp giải quyết
được 2 vấn đề nêu trên rất hiệu quả.
Từ khóa: Microsoft Excel; lập trình VBA; ứng dụng tự động.
ABSTRACT: When studying how to use Microsoft Excel spreadsheet application, students have to
do many exercises about a function in order to understand and apply the syntax of the function.
However, each function usually only has one illustrative example and one exercise, leading to the
lack of opportunities for learners to practice much, Moreover, when self-studying, learners also
want to know whether the formula they used is right or wrong, but sometimes it is impossible to ask
the teachers directly for many reasons, Therefore, being able to build an application that generate
the exercises and marks the results automatically when doing self-practice of learners will help
solve the two above problems very effectively..
Key words: Microsoft Excel; VBA programming; automatic application.
vận dụng. Với nhiều hàm có cách vận dụng đa
dạng hoặc hàm khó, sinh viên rất muốn có thêm
các bài tập tương tự để làm thêm, cho nhuần
nhuyễn. Từ thực tế trên, chúng tôi đã xây dựng 1
ứng dụng dựa trên nền tảng Excel với khả năng tự
sinh ra các yêu cầu bài tập 1 cách ngẫu nhiên và
chấm kết quả ngay khi người học viết xong lệnh.
Ứng dụng được lập trình bằng ngôn ngữ VBA
(Visual Basic for Application) giúp cho việc tương
tác với Microsoft Excel dễ dàng và mạnh mẽ.
2. NỘI DUNG
1. ĐẶT VẤN ĐỀ
Khi học tập module Microsoft Excel thuộc
môn học Tin học cơ bản nói riêng, hay các môn
học về Microsoft Excel nói chung, sinh viên rất
mong muốn sau khi học xong cú pháp về hàm,
khi làm các bài tập áp dụng, sẽ được giảng viên
nhận xét, đánh giá kết quả đúng hay sai, để
điều chỉnh. Một số sinh viên ngại hỏi hoặc thực
hành ở nhà, không có giảng viên đánh giá kết
quả làm bài, từ đó dẫn đến việc nhiều sinh viên
không rõ công thức/hàm mình viết ra đã đúng
hay chưa. Bên cạnh đó, mỗi 1 hàm ngoài cú pháp và
1 ví dụ minh họa, cũng thường chỉ có từ 2-3 bài tập
Xây dựng ứng dụng ra đề bài và chấm kết
quả bài tập [1], [2], [3], [4]
ThS. Trường Đại học Văn Lang, hoang.nv@vlu.edu.vn, Mã số: TCKH27-06-2021
124
TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG
Số 27, Tháng 5 - 2021
thức lấy căn bậc 2. Đáp án của câu này luôn là
=Sqrt(C12) nên ta dễ dàng xác định sinh viên
viết đúng hay sai (hình 2).
2.1. Phân tích
Với bối cảnh xây dựng 1 ứng dụng phục
vụ cho sinh viên học tập Module Excel của Bộ
môn Tin học cơ bản của Trường Đại học Văn
Lang, ứng dụng sẽ tập trung vào các hàm bao
gồm: Abs(), Sqrt(), Sum(), Min(), Max(), Average(),
Day(), Month(), Year(), Date(), Int(), Mod(), Rank(),
Round(), Left(), Right(), Mid() và If(). Dựa trên sự
tương đồng về tính chất, và mức độ quan trọng,
được sử dụng nhiều của các hàm trong module,
ta sẽ gom tất cả các hàm trên thành 10 nhóm,
mỗi nhóm sẽ được thiết kế riêng trên 1 Sheet,
từ đó ta được 10 nhóm hàm như sau:
Các hàm toán học: Abs(), Sqrt(), Sum(),
Min(), Max(), Average(),
Hình 1. Máy tính tự chấm
khi viết đúng công thức Hàm Abs
Cáchàmthờigian:Day(),Month(),Year(),Date(),
Hàm Int() và Hàm Mod(),
Hàm Rank(),
Hàm Round(),
Hàm Left(),
Hình 2. Máy tính tự chấm khi viết sai Hàm Sqrt
Hàm Right(),
Tại sheet này, ta cũng dùng vòng lặp For
để tạo ra 1 dãy các số từ 100 đến 1000 đại diện
cho giá trị lương nhân viên, sinh viên sẽ viết
các hàm Sum, Min, Max, Average tương ứng. Các
câu này sẽ có nhiều đáp án, ví dụ như hàm
Sum, sinh viên có thể viết Sum(H4:H11), hoặc
có thể viết Sum(H4,H5,H6,H7,H8,H9,H10,H11)
hoặc cũng có thể là Sum(H4:H9,427,503) đều
cho ra kết quả chính xác. Theo giáo trình, đáp
án hợp lệ và cách làm tối ưu nhất là Sum(H4:H11),
cho nên chỉ có phương án này máy mới chấm
đúng cho sinh viên. Mỗi hàm cũng sẽ được chấm
ngay sau khi sinh viên viết xong công thức.
Hàm Mid(),
Hàm If() (dùng kết hợp với hàm chuỗi),
Hàm If() (dạng dãy số liên tục).
2.2. Xây dựng ứng dụng
2.2.1. Sheet [Hàm toán học]
Ta viết thủ tục (Sub) để tạo số ngẫu nhiên
mang giá trị âm, yêu cầu sinh viên viết công
thức lấy giá trị tuyệt đối. Đáp án của câu này
luôn là =Abs(C3) nên ta dễ dàng xác định là
sinh viên viết đúng hay sai. Khi sinh viên viết
đúng, một icon mặt cười xuất hiện; khi sai, icon
mặt khóc xuất hiện (hình 1).
Cũng tại sheet này, ta tạo số ngẫu nhiên
mang giá trị dương, yêu cầu sinh viên viết công
Hình 3. Các tình huống khi viết công thức
125
TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG
Nguyễn Quốc Huy và tgk
Để ứng dụng có thể sử dụng cho nhiều khóa
học, các yêu cầu sẽ được sinh ra ngẫu nhiên ngay
khi ứng dụng Excel được mở ra. Để sinh viên có
thể luyện tập, có nút [Tạo bài mới] để xóa hết
mọi công thức sinh viên đã viết và phát sinh yêu
cầu bài tập mới cho sinh viên làm lại.
chứa các giá trị phù hợp, trong đó mỗi 1 dòng
sẽ là dữ liệu của 1 yêu cầu.
2.2.2. Sheet [Hàm thời gian]
Tại sheet này, ta cũng viết thủ tục tạo ngẫu
nhiên giá trị ngày tháng năm và yêu cầu sinh
viên viết các hàm Day, Month, Year và Date
(hình 4).
2.2.3. Sheet [Hàm Int & Mod]
Tại sheet này, để sinh viên thấy rõ tính
thực tế của 2 hàm trên, ta phải thiết kế 1 bảng
Hình 4. Giao diện Sheet [Hàm thời gian]
Hình 5. Bảng dữ liệu để tạo yêu cầu cho Hàm Int & Hàm Mod
Khi sinh ra giá trị ngẫu nhiên là “stt”, ta sẽ
lấy được các giá trị tương ứng trong dòng và
điền vào yêu cầu trên sheet. Đối với hàm này,
để chấm được kết quả, cần biết giá trị của tham
số (số bị chia), nó chính là dữ liệu trong cột
“giá trị”.
điền vào yêu cầu trên sheet. Đối với hàm này,
để chấm được kết quả, cần biết giá trị của tham
số (cách sắp xếp), nó chính là dữ liệu trong cột
“giá trị rank”. Tại đây, yêu cầu sinh viên phải
sao chép công thức xuống đầy đủ các dòng bên
dưới, nhằm mục đích kiểm tra việc vận dụng kỹ
thuật Fill (điền dữ liệu) của sinh viên và cũng
để nhấn mạnh đến thao tác cố định địa chỉ vùng
ô đã chọn. Do đó, nếu sinh viên không sao chép
xuống các ô bên dưới hoặc không cố định vùng
đã chọn, máy sẽ chấm sai (hình 8).
2.2.5. Sheet [Hàm Round]
Tại sheet này, có nhiều cách làm tròn khác
nhau, ta cũng thiết kế 1 bảng chứa các giá trị
phù hợp, trong đó mỗi 1 dòng sẽ là dữ liệu của
1 yêu cầu (hình 9).
Hình 6. Giao diện ra đề và chấm bài
của Sheet [Hàm Int & Hàm Mod]
Tại sheet này, giảng viên muốn ôn lại khái
niệm giá trị địa chỉ tuyệt đối khi viết công thức
nên sẽ có 2 cột là “cột tham chiếu” và “giá trị”.
Với các cách làm tròn, sẽ có 1 tham số tương
ứng chính là giá trị của cột “cách làm tròn”.
Nếu sinh viên không sao chép công thức xuống
các dòng bên dưới hoặc không sử dụng giá trị
địa chỉ tuyệt đối, máy sẽ chấm sai (hình 10).
2.2.4. Sheet [Hàm Rank]
Tại sheet này, có 2 loại xếp hạng (cao nhất
hạng nhất và thấp nhất hạng nhất), ta cũng thiết
kế 1 bảng chứa các giá trị phù hợp, trong đó mỗi
1 dòng sẽ là dữ liệu của 1 yêu cầu (hình 7).
Khi sinh ra giá trị ngẫu nhiên là “stt”, ta sẽ
lấy được các giá trị tương ứng trong dòng và
126
TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG
Số 27, Tháng 5 - 2021
Hình 7. Bảng dữ liệu để tạo yêu cầu cho Hàm Rank
Hình 8. Giao diện ra đề và chấm bài của Sheet [Hàm Rank]
Hình 9. Bảng dữ liệu để tạo ra yêu cầu cho Hàm Round
Hình 10. Giao diệ n ra đề và chấ m bài củ a Sheet [Hàm Round]
cách ngẫu nhiên, tương ứng với yêu cầu đó cũng
2.2.6. Sheet [Hàm Left], Sheet [Hàm Right] và
Sheet [Hàm Mid]
sẽ tính toán được đáp án chính xác tương ứng.
Điểm cần lưu ý, khi lấy 1 ký tự bên trái hoặc 1 ký
tự bên phải, sẽ có 2 đáp án hợp lệ. Để sinh viên
làm quen hơn với các yêu cầu đề bài, yêu cầu lấy
chuỗi cũng sẽ được thay đổi ngẫu nhiên, lấy 3 ký
tự bên trái hoặc 4 ký tự đầu tiên hay lấy 2 ký tự
bên phải hoặc lấy ra ký tự cuối cùng.
Các sheet này về bản chất đều là hàm xử lý
chuỗi, được sử dụng nhiều trong module nên được
tách ra để sinh viên thực hành nhiều lần. Ta viết
thủ tục để tạo 1 danh sách các chuỗi sẽ được dùng
trong công thức và lấy ngẫu nhiên 1 chuỗi trong
danh sách vừa tạo, đồng thời cũng tạo ra yêu cầu 1
Hình 11. Giao diện ra đề và chấm bài của Sheet [Hàm Left], Sheet [Hàm Right], Sheet [Hàm Mid]
127
TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG
Nguyễn Quốc Huy và tgk
Sẽ tương ứng với đề bài là:
2.2.7. Sheet [Hàm If]
Tại sheet này, cần kiểm tra sinh viên về khả
năng vận dụng các hàm chuỗi đã học, kết hợp với
Hàm If lồng vào nhau. Để yêu cầu đề bài đa dạng,
các hàm chuỗi đa dạng, ta sẽ tạo bảng như sau:
Hình 14. Yêu cầu được tạo ra từ dữ liệu
trong bảng con
Đối với câu If lồng nhau, về lý thuyết thì
sinh viên có thể viết If nào trước cũng được, có
thể để tham số [value_if_flase] cuối cùng là
null, nhưng trong thực tế, giảng viên thường
yêu cầu sinh viên viết đúng trình tự của đề bài,
cũng như trường hợp If cuối cùng không cần
viết, do đó khi lập trình đáp án, cũng sẽ dựa
trên tiêu chí này, nếu sinh viên làm khác, sẽ bị
coi như làm sai.
Hình 12. Bảng để thiết kế Sheet [Hàm If]
Trong đó, “ô chứa yêu cầu” là địa chỉ của
ô sẽ bắt đầu cho 1 bảng, chứa các thông tin cho
1 đề bài. Ví dụ như bảng sau:
Hình 13. Bảng con để tạo 1 yêu cầu trong Hàm If
Hình 15. Giao diện ra đề và chấm bài của Sheet [Hàm If]
Sẽ tương ứng với đề bài là:
2.2.8. Sheet [Hàm If t.t]
Tương tự như Sheet [Hàm If], sheet này
cũng cần thiết kế 1 bảng như sau:
Hình 18. Yêu cầu được tạo ra từ dữ liệu
trong bảng con
Đối với câu If này, ngoài các yêu cầu như
câu If ở sheet trước, sinh viên phải tập cách đọc
thật kỹ đề bài để phân biệt khi nào sử dụng
phép so sánh > hay >=, < hay <= (hình 19).
2.2.9. Phân phối và bảo mật
Hình 16. Bảng để thiết kế Sheet [Hàm If t.t]
Trong đó, “ô chứa” là địa chỉ của ô sẽ bắt
đầu cho 1 bảng, mà bảng đó sẽ chứa các thông
tin cho 1 đề bài. Ví dụ như hình 17.
Ứng dụng là một chương trình Excel có hỗ
trợ Macro (lập trình bằng ngôn ngữ VBA), có
phần mở rộng là xlsm, do vậy khi sinh viên sử
dụng các ứng dụng phần mềm văn phòng có hỗ trợ
định dạng xlsm sẽ sử dụng được. Ứng dụng được
Hình 17. Bảng con để tạo ra 1 yêu cầu
trong Hàm If t.t
128
TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG
Số 27, Tháng 5 - 2021
phân phối theo kiểu upload file lên Internet và sinh
viên download về máy sử dụng nên phải bảo mật
bằng cách đặt mật khẩu truy cập mã nguồn để
tránh việc sinh viên xem mã nguồn và điều chỉnh.
Hình 19. Giao diện ra đề và chấm bài của Sheet [Hàm If t.t]
dụng tạo ngẫu nhiên đề bài với ngân hàng trên
50 bài sẽ giúp học sinh nắm rất rõ các hàm đã
học. Với khả năng tự chấm kết quả đúng/sai,
thậm chí gợi ý đáp án đúng, học sinh/sinh viên
có thể tự tin làm bài vì biết kết quả của mình,
không cần liên hệ giáo viên/giảng viên. Từ
những kết quả đạt được, chúng ta có thể thấy
việc ứng dụng ngôn ngữ lập trình VBA để xây
dựng các ứng dụng hỗ trợ giảng dạy Excel là
hết sức hữu ích và nên được đầu tư để phát
triển nhiều ứng dụng hay hơn.
3. KẾT LUẬN
Không chỉ áp dụng cho sinh viên, chúng ta
có thể dựa trên ý tưởng của ứng dụng này phát
triển thành 1 ứng dụng đầy đủ, bao gồm tất cả
các hàm phục vụ cho khối học sinh trung học
cơ sở, khối trung cấp, cao đẳng, đại học. Không
chỉ dừng lại ở các hàm thông thường, các hàm
tài chính, kế toán cũng có thể xây dựng thành 1
ứng dụng tự động tương tự. Đối với học sinh ở
vùng sâu vùng xa, không có điều kiện tiếp cận
nhiều nguồn tài liệu học tập, việc có 1 ứng
TÀI LIỆU THAM KHẢO
[1] Phan Tự Hướng (2009), Lập trình VBA trong Excel, Nxb Thống kê, Hà Nội.
[2] Nguyễn Thu Nguyệt Minh (2018), Tin học cơ bản và ứng dụng, Nxb Khoa học và Kỹ thuật.
[3] Birnbaum Duane (2003), Microsoft Excel VBA Professional Projects, Premier Press, USA.
[4] Denise Etheridge (2007), Microsoft Excel 2007 Programming, Wiley Publishing, USA.
Ngày nhận bài: 25-3-2021. Ngày biên tập xong: 05-5-2021. Duyệt đăng: 20-5-2021
129
Bạn đang xem tài liệu "Xây dựng ứng dụng Excel tự sinh đề bài tập và tự chấm kết quả", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
xay_dung_ung_dung_excel_tu_sinh_de_bai_tap_va_tu_cham_ket_qu.pdf

