Microsoft Excel, còn được gọi theo tên đầy đủ Microsoft Office Excel, là chương trình xử lý bảng tính nằm trong bộ Microsoft Office của hãng phần mềm Microsoft. Với Microsoft Excel, chúng ta có thể nhập và quản lý hồ sơ cán bộ, giáo viên, học sinh,… đặc biệt là quản lý điểm số của học sinh. Tuy nhiên, công việc quản lý điểm sẽ “tự động hóa” hơn, “chuyên nghiệp” hơn và bảo mật cao hơn nếu chúng ta kết hợp với công cụ nhúng trong Microsoft Office là VBA.
Sáng kiến kinh nghiệm năm 2013 PHẦN 1: ĐẶT VẤN ĐỀ I Lý chọn đề tài: Sự phát triển vũ bão công nghệ thông tin truyền thông đóng vai trò không nhỏ phát triển chung nhân loại Đảng nhà nước ta xác định rõ ý nghĩa, tầm quan trọng tin học, công nghệ thông tin truyền thông yêu cầu đẩy mạnh ứng dụng công nghệ thông tin lĩnh vực xã hội Trong giáo dục ngành Đảng nhà nước quan tâm hàng đầu Dữ liệu trường học hầu hết số hóa phần mềm ứng dụng văn phòng, phần mềm Microsoft Excel thông dụng Microsoft Excel, gọi theo tên đầy đủ Microsoft Office Excel, chương trình xử lý bảng tính nằm Microsoft Office hãng phần mềm Microsoft Với Microsoft Excel, nhập quản lý hồ sơ cán bộ, giáo viên, học sinh,… đặc biệt quản lý điểm số học sinh Tuy nhiên, công việc quản lý điểm “tự động hóa” hơn, “chuyên nghiệp” bảo mật cao kết hợp với công cụ nhúng Microsoft Office VBA VBA viết tắt cụm từ Visual Basic for Application, ngôn ngữ lập trình hướng đối tượng cho ứng dụng, dựa tảng Visual Basic Visual Basic for Application ngôn ngữ lập trình chung, ứng dụng cho phần mềm văn phòng Microsoft Office (gồm Excel, Powerpoint, Word,…) Trong Microsoft Excel, Visual Basic for Application giúp tự động hóa công việc cung cấp cho người dùng hàm tùy biến Visual Basic for Application chương trình hữu ích, phiên gần đây, bao gồm môi trường phát triển tổng hợp (IDE) Chức _ Sáng kiến kinh nghiệm năm 2013 ghi lại đoạn Macro tạo đoạn mã Visual Basic for Application cho hành động có tính chất lặp lại người sử dụng, cho phép thao tác thông dụng tự động hóa, cho phép tạo bảng biểu điều kiện bên bảng tính để trực tiếp giao tiếp với người sử dụng Trong trình làm việc Microsoft Excel, đặc biệt quản lý điểm nhận thấy số tồn “chưa ưng ý” sau: - Giao diện hệ quản lý điểm chưa chuyên nghiệp, nhiều rờm rà - Tính bảo mật không cao, dễ bị thâm nhập sửa chữa điểm số trái phép - Việc lựa chọn sổ điểm học kỳ không thân thiện với người sử dụng - Các công việc nhập điểm, lưu trữ, in ấn, thống kê,… nhiều hạn chế thời gian tính khoa học - Sổ điểm môn học không khóa lại không sử dụng Từ tồn cộng với kinh nghiệm nhiều năm làm ứng dụng Visual Basic for Application nên viết sáng kiến kinh nghiệm “Visual Basic for Application Microsoft Office Excel” thông qua hệ quản lý điểm mà viết sử dụng nhiều năm II Phạm vi ứng dụng: Phạm vi ứng dụng sáng kiến kinh nghiệm giáo viên người biết tin học (ở mức độ tin học văn phòng) công tác ngành giáo dục, trường THCS THPT: - Giáo viên tạo hệ quản lý điểm Microsoft Excel dùng trường THCS, trường THPT cách “chuyên nghiệp” mà không cần có kiến thức sâu lập trình - Giáo viên, người công tác trường THPT tạo Microsoft Excel công cụ phân công giám thị phòng thi,… _ Sáng kiến kinh nghiệm năm 2013 Ngoài ra, sáng kiến kinh nghiệm dành cho yêu thích tin học kiến thức chuyên sâu lập trình III Phương pháp nghiên cứu: - Sưu tầm tài liệu, đọc nghiên cứu - Thực hành thử nghiệm trường THCS DTNT Ba Tơ (huyện Ba Tơ, Quảng Ngãi) năm học 2005 – 2006 - Tiến hành thực nghiệm trường THCS DTNT Ba Tơ (huyện Ba Tơ, Quảng Ngãi) từ năm học 2006 – 2007 trường THPT Nguyễn Công Phương (huyện Nghĩa Hành, Quảng Ngãi) từ năm học 2009 – 2010 đến - Hằng năm có chỉnh sửa, bổ sung, nâng cấp theo công văn hướng dẫn quy chế tính điểm Bộ Giáo dục Đào tạo, Sở Giáo dục Đào tạo Quảng Ngãi yêu cầu thực tế trường theo ý kiến đóng góp đồng nghiệp, người sử dụng _ Sáng kiến kinh nghiệm năm 2013 PHẦN 2: NỘI DUNG I Cơ sở lý luận: Vào năm cuối kỷ 20 năm đầu kỷ 21, công nghệ thông tin phát triển bùng nổ giới, ứng dụng công nghệ thông tin Việt Nam diễn mạnh mẽ hầu hết lĩnh vực Tuy nhiên, nhiều trường học, vùng miền, đặc biệt trường miền núi trường THCS DTNT Ba Tơ, việc tính điểm giáo viên thực tay, công việc tổng hợp điểm nhà trường gặp nhiều khó khăn nên người làm công tác quản lý điểm vất vả sai sót không tránh khỏi II Cơ sở thực tế: Khi thực nhập, tính điểm quản lý điểm bảng tính Microsoft Excel tính bảo mật kém, việc rút trích biểu mẫu thống kê khó khăn, giao diện người dùng không thân thiện… tồn vài vấn đề khác III Nội dung: Trước tiên, phải nhìn nhận Visual Basic for Application ngôn ngữ chung, Microsoft phát triển ngôn ngữ lập trình hướng đối tượng Visual Basic tích hợp kèm theo ứng dụng văn phòng Microsoft Office từ năm 1993, ngôn ngữ lập trình độc lập Sự cần thiết Visual Basic for Application Microsoft Excel: Với ứng dụng làm Microsoft Excel mà hỗ trợ Visual Basic for Application không tạo hộp thoại thân thiện, thông báo “gần gũi” với người Việt Nam, hay thực lựa chọn tùy biến vùng liệu,… mà hết thao tác “tự động”, thông minh _ Sáng kiến kinh nghiệm năm 2013 Một vài hình ảnh hộp thoại tạo Visual Basic for Application: Hình Hình 2 Làm việc với Visual Basic for Application: 2.1 Vấn đề nhập liệu: Trong Microsoft Excel, nhập liệu ta nhập theo hàng ngang hay cột dọc Với bảng liệu nhiều cột hàng bảng điểm học sinh để tránh sai sót thường nhập theo hàng ngang, đồng thời công việc kiểm dò quan trọng, đòi hỏi người làm liệu phải nhìn xác cột điểm kiểm tra (miệng, hệ số 1, hệ số 2, học kỳ) cột _ Sáng kiến kinh nghiệm năm 2013 điểm trung bình học sinh Tuy nhiên sức khỏe, làm việc nhiều với số,… mà nhiều người làm điểm nhầm lẫn hai học sinh gần danh sách Với Visual Basic for Application, tạo “con trỏ dòng” (hình 3) khó nhầm lẫn Hình “Con trỏ dòng” “Con trỏ dòng” gần giống trỏ ô, vệt màu di chuyển theo trỏ ô Màu sắc độ dài định nghĩa Và đoạn code Visual Basic for Application sau tạo “con trỏ dòng”: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim cRows As Long, cCols As Long On Error GoTo ERROR cRows = Cells(Rows.Count, "B").End(xlUp).Row cCols = Cells(6, Columns.Count).End(xlUp).Column If Not Intersect(Target, Range("A6", Cells(cRows, cCols))) Is Nothing Then With ActiveCell Range("A" & row & ":AG" & row).Interior.ColorIndex = 24 End With If ActiveCell.row iPrevRow Then Range("A" & iPrevRow & ":AG" & iPrevRow).Interior.ColorIndex = iPrevRow = ActiveCell.row End If End If ERROR: _ Sáng kiến kinh nghiệm năm 2013 End Sub Ở đoạn code trên, dòng lệnh Range("A" & row & ":AG" & row).Interior.ColorIndex = 24 tạo “con trỏ dòng” có độ dài từ cột A đến cột AG với màu sắc có số 24; dòng lệnh Range("A" & iPrevRow & ":AG" & iPrevRow).Interior.ColorIndex = trả “con trỏ dòng” bình thường di chuyển trỏ đến dòng 2.2 Biểu mẫu nhập liệu: Công việc nhập liệu Microsoft Excel theo cách “truyền thống” nhàm chán, muốn nhập liệu theo cách mẻ hơn, chuyên nghiệp Như có cách dùng biểu mẫu (form) tự tạo lựa chọn tốt Sau ví dụ biểu mẫu tự tạo mà tạo cách dễ dàng Microsoft Excel (hình 4): Hình Đoạn code Visual Basic for Application sau xử lý liệu nhập vào từ biểu mẫu trên: Dim d As Integer Private Sub cmdAdd_Click() _ Sáng kiến kinh nghiệm năm 2013 Dim h As Integer h=2 While Trim(Cells(h, 6)) "" h=h+1 Wend d=h txtName.SetFocus ShowData (d) End Sub Private Sub cmdOK_Click() End End Sub Private Sub cmdDel_Click() On Error GoTo ERROR Dim mess Dim h, c As Integer mess = MsgBox("Bạn có chắn muốn xóa thông tin không?", vbYesNo, "Call 0913667112") If mess = vbYes Then h=d While Cells(h, 6) "" For c = To Cells(h, c) = Cells(h + 1, c) Next h=h+1 Wend If Cells(d, 7) = "" Then d=d-1 End If ShowData (d) End If ERROR: _ Sáng kiến kinh nghiệm năm 2013 End Sub Private Sub cmdNxt_Click() d=d+1 ShowData (d) End Sub Private Sub cmdPre_Click() d=d-1 ShowData (d) End Sub Private Sub txtName_Change() BD = t = txtName While InStr(BD, t, Chr(13)) > t = Left(t, InStr(BD, t, Chr(13)) - 1) + "¶" + Right(t, Len(t) - InStr(BD, t, Chr(13)) - 1) BD = InStr(BD, t, Chr(13)) + Wend Cells(d, 6) = t End Sub Private Sub txtClss_Change() Cells(d, 7) = txtClss End Sub Private Sub UserForm_Activate() Sheets("VTD").Activate d=2 ShowData (d) End Sub Sub ShowData(row As Integer) On Error GoTo ERROR If row = Then cmdPre.Locked = True Else txtName = Cells(row, 6) _ Sáng kiến kinh nghiệm năm 2013 txtClss = Cells(row, 7) cmdPre.Locked = False End If ERROR: End Sub 2.3 Lựa chọn vùng làm việc sheet: Trong sheet, chia làm nhiều vùng liệu khác mà lần cần làm việc với vùng, vùng khác phải “biến mất” để tránh nhầm lẫn Chẳng hạn như: sổ điểm môn học có hai vùng liệu cho học kỳ học kỳ 2, thiết kế chung sheet, không cẩn thận dễ lẫn lộn xử lý liệu Chúng ta muốn làm việc với vùng liệu học kỳ vùng liệu học kỳ phải ẩn ngược lại (như hình 5) Hình Vấn đề giải cách dễ dàng cách tạo hai đối tượng OptionButton HK1 (để lựa chọn vùng liệu học kỳ 1), HK2 (để lựa chọn vùng liệu học kỳ 2) với đoạn code Visual Basic for Application sau: Sub HK1_Click() ActiveSheet.Columns("E:Q").Hidden = False _ 10 Sáng kiến kinh nghiệm năm 2013 ActiveSheet.Columns("R:AF").Hidden = True End Sub Sub HK2_Click() ActiveSheet.Columns("E:Q").Hidden = True ActiveSheet.Columns("R:AF").Hidden = False End Sub Ở đoạn code trên, “E:Q” vùng liệu học kỳ 1, “R:AF” vùng liệu học kỳ Khi lựa chọn OptionButton thuộc tính Hidden vùng “E:Q” False, vùng “R:AF” True (không ẩn vùng liệu học kỳ 1, ẩn vùng liệu học kỳ 2); ngược lại, chọn OptionButton thuộc tính Hidden vùng “E:Q” True, vùng “R:AF” False (ẩn vùng liệu học kỳ 1, không ẩn vùng liệu học kỳ 2) Với công cụ OptionButton trên, tạo biểu mẫu hướng dẫn in ấn hình 6: Hình Cùng với đoạn code Visual Basic for Application sau làm cho công việc in ấn linh hoạt hơn: _ 11 Sáng kiến kinh nghiệm năm 2013 Private Sub cmdCls_Click() End End Sub Private Sub cmdOK_Click() On Error GoTo ERROR: If optScr.Value = True Then Unload Me ActiveSheet.PrintPreview End If If optPrn.Value = True Then Unload Me ActiveSheet.PrintOut End If ERROR: End Sub 2.4 Vấn đề bảo mật: Với hệ quản lý điểm bảo mật vấn đề đáng quan tâm Tuy nhiên, “một mình” Microsoft Excel cho phép tạo mật bảo mật cách chuyên nghiệp được, mà phải kết hợp với Visual Basic for Application Hình _ 12 Sáng kiến kinh nghiệm năm 2013 Sau tạo biểu mẫu hình 7, viết đoạn code Visual Basic for Application sau để quản lý mật khẩu: Private Sub cmbOK_Click() If Sheets("VTD").Cells(8, 4).Value txtMK.Value Then MsgBox "Mật không đúng! Vui lòng nhập lại.", vbCritical, "Call 0913667112" txtMK.Value = "*************" Else Unload Me End If Sheets("VTD").Cells(9, 4).Value = txtMK.Value End Sub Mật đăng ký lưu ô sheet (ở ô D8 sheet có tên VTD) Khi đăng nhập, mật đăng nhập lưu ô khác so sánh với mật đăng ký Khi thoát khỏi hệ quản lý điểm mật đăng nhập bị xóa giá trị ngẫu nhiên khác Đoạn code Visual Basic for Application sau xử lý mật thoát khỏi hệ quản lý điểm: Sub Quit_Click() Sheets("VTD").Cells(9, 4).Value = "=rand()" End Sub IV Hiệu quả: Thực tế, hệ quản lý điểm áp dụng có hiệu từ năm học 2006 – 2007 trường THCS DTNT Ba Tơ (huyện Ba Tơ, Quảng Ngãi) với phiên dành cho cấp THCS, đến năm học 2009 – 2010 phát triển thêm phiên dành cho cấp THPT dùng trường THPT Nguyễn Công Phương (huyện Nghĩa Hành, Quảng Ngãi) Tuy nhiên, từ lúc nghiên _ 13 Sáng kiến kinh nghiệm năm 2013 cứu làm sản phẩm (tháng 10 năm 2005) áp dụng cho năm học 2005 – 2006 hệ quản lý điểm cho kết xác xấp xỉ 100%, đồng nghiệp đánh giá cao Qua thời gian công tác trường THCS DTNT Ba Tơ (từ tháng 01 năm 2005 đến tháng năm 2009) trường THPT Nguyễn Công Phương (từ tháng năm 2009 đến nay), sửa chữa sản phẩm cho phù hợp với quy chế đánh giá, xếp loại môn học năm, đồng thời từ ý kiến đóng góp đồng nghiệp cải tiến kịp thời sản phẩm Chính mà hệ quản lý điểm sử dụng năm sản phẩm CNTT đem lại hiệu công việc cao trường THCS DTNT Ba Tơ trường THPT Nguyễn Công Phương _ 14 Sáng kiến kinh nghiệm năm 2013 PHẦN 3: KẾT LUẬN Visual Basic for Application (gọi tắt VBA) ngôn ngữ đơn giản mang lại hiệu công việc lớn cho người không giỏi lập trình mà quen làm việc với ứng dụng văn phòng Microsoft Office Chúng ta tạo công cụ phục vụ cho công việc thường làm Microsoft Word, Microsoft Excel, Microsoft PowerPoint,… mà hết công cụ phục vụ cho công việc Chính mà từ hệ quản lý điểm, phát triển thêm số sản phẩm khác ngôn ngữ Visual Basic for Application Microsoft Excel Tiện ích chuyển đổi số thành chữ dùng cho công việc kế toán, Chương trình phân công giám thị dùng cho kỳ thi tốt nghiệp THPT, tuyển sinh vào lớp 10,… Tất sản phẩm dùng đem lại hiệu cao Trong khuôn khổ đề tài sáng kiến kinh nghiệm, vấn đề trình bày chưa nói lên hết “cái hay, đẹp” ngôn ngữ Visual Basic for Application Microsoft Excel nói riêng Microsoft Office nói chung, mà dừng lại vài vấn đề nhỏ việc tạo hệ quản lý điểm Microsoft Excel Mong nhận đóng góp ý kiến trao đổi kinh nghiệm từ tất người để Visual Basic for Application ngày ứng dụng nhiều với người thích tin học kiến thức lập trình chuyên sâu _ 15 Sáng kiến kinh nghiệm năm 2013 TÀI LIỆU THAM KHẢO Microsoft Excel VBA Programming – Duane Birnbaum Excel 2007 VBA Programming for Dummies – John Walkenbach Tài liệu Excel VBA Internet Trang wikipedia.com Một vài sáng kiến kinh nghiệm đồng nghiệp Thông tư 58/2011/TT-BGDĐT Bộ Giáo dục Đào tạo Công văn 1692/GDĐT-HĐKH Sở GD&ĐT Quảng Ngãi _ 16 Sáng kiến kinh nghiệm năm 2013 MỤC LỤC Phần 1: ĐẶT VẤN ĐỀ I Lý chọn đề tài .1 II Phạm vi ứng dụng III Phương pháp nghiên cứu Phần 2: NỘI DUNG I Cơ sở lý luận .4 II Cơ sở thực tế III Nội dung Sự cần thiết Visual Basic for Application Microsoft Excel Làm việc với Visual Basic for Application 2.1 Vấn đề nhập liệu 2.2 Biểu mẫu nhập liệu 2.3 Lựa chọn vùng làm việc sheet 10 2.4 Vấn đề bảo mật 12 IV Hiệu .13 Phần 3: KẾT LUẬN 15 TÀI LIỆU THAM KHẢO 16 MỤC LỤC 17 _ 17 Sáng kiến kinh nghiệm năm 2013 SỞ GD & ĐT QUẢNG NGÃI TRƯỜNG THPT NGUYỄN CÔNG PHƯƠNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc BIÊN BẢN XÉT DUYỆT ĐỀ TÀI, SÁNG KIẾN KINH NGHIỆM Tên ĐT, SKKN: Visual Basic for Application Microsoft Office Excel Tác giả: Võ Thế Duy Môn (hoặc Lĩnh vực): Tin học Đơn vị: Trường THPT Nguyễn Công Phương Đánh giá Hội đồng chấm (Ghi tóm tắt đánh giá chính): _ 18 Sáng kiến kinh nghiệm năm 2013 Xếp loại: Nghĩa Hành, ngày Người chấm Người chấm tháng năm 2013 Chủ tịch Hội đồng xét duyệt (Ký, ghi rõ họ tên)(Ký, ghi rõ họ tên) _ 19 Sáng kiến kinh nghiệm năm 2013 UBND TỈNH QUẢNG NGÃI SỞ GD & ĐT QUẢNG NGÃI CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc BIÊN BẢN XÉT DUYỆT ĐỀ TÀI, SÁNG KIẾN KINH NGHIỆM Tên ĐT, SKKN: Visual Basic for Application Microsoft Office Excel Tác giả: Võ Thế Duy Môn (hoặc Lĩnh vực): Tin học Đơn vị: Trường THPT Nguyễn Công Phương Đánh giá Hội đồng chấm (Ghi tóm tắt đánh giá chính): _ 20 Sáng kiến kinh nghiệm năm 2013 Xếp loại: Quảng Ngãi, ngày Người chấm Người chấm tháng năm 2013 Chủ tịch Hội đồng xét duyệt (Ký, ghi rõ họ tên)(Ký, ghi rõ họ tên) _ 21