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, [email protected]  
 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  
pdf 6 trang baolam 51980 Free
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:

  • pdfxay_dung_ung_dung_excel_tu_sinh_de_bai_tap_va_tu_cham_ket_qu.pdf