Những nguyên tắc chung xây dựng chương trình trên Excel
Chia sẻ bởi Phan Tu Huong |
Ngày 07/05/2019 |
95
Chia sẻ tài liệu: Những nguyên tắc chung xây dựng chương trình trên Excel thuộc Excel
Nội dung tài liệu:
NHỮNG NGUYÊN TẮC XÂY DỰNG PHẦN MỀM TRÊN EXCEL
ThS. Phan Tự Hướng
Bộ môn Địa kỹ thuật
Trường ĐH Kiến trúc Hà Nội
Trong chuyên môn, việc xây dựng các sản phẩm ứng dụng trong Excel của mình là ước muốn của nhiều người. Nhưng công việc đó không hề đơn giản, đòi hỏi nhiều công sức và trình độ của người viết chương trình. Sản phẩm ứng dụng không những phản ánh kết quả của quá trình nghiên cứu, học tập VBA mà còn kiến thức chuyên môn của bạn.
Dưới đây là những nguyên tắc cơ bản khi xây dựng phần mềm trong Excel.
1. Thiết kế giao diện trong Excel:
Công việc này tưởng đơn giản nhưng rất quan trọng. Với sự hỗ trợ của tính năng định dạng 3-D đã khiến Form và các nút lệnh điều khiển bóng bẩy hơn, đẹp hơn, chuyên nghiệp hơn. Khá nhiều người sử dụng Form trên nền bảng tính, vì có thể thể hiện nhiều đối tượng, khả năng định dạng phong phú hơn UserForm.
Công việc này không đòi hỏi khả năng mỹ thuật, tạo bố cục của từng người.
2. Khai thác triệt để hàm, công thức trong Excel:
Excel hỗ trợ nhiều hàm và công thức cho việc tính toán. Việc khai thác sử dụng hàm, công thức sẵn có cho phép kiểm soát chương trình tốt hơn, kết quả xử lý nhanh hơn. Chúng ta chỉ sử dụng hàm VBA khi trong Excel không có hoặc hàm không phù hợp.
Công việc này đòi hỏi kiến thức cơ bản Excel, khả năng kết nối, lồng ghép các hàm của người sử dụng.
Danh sách các hàm trong Excel tải ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?11627-Ebook-C%C3%B4ng-th%E1%BB%A9c-v%C3%A0-h%C3%A0m-Excel
3. Khai thác ứng dụng giao diện trong Excel:
Chức năng Conditional Formatting và Data Validation giúp ích cho việc hiển thị, khai thác, kiểm soát dữ liệu.
Ví dụ như dữ liệu nhập vào được giới hạn trong một khoảng nào đó, phải là số nguyên, số thập phân, trong danh sách sẵn có hoặc chuỗi có độ dài nhất định. Chức năng Data Validation sẽ giúp chúng ta nhập liệu một cách chính xác theo yêu cầu, hạn chế sai sót tối thiểu.
Ngoài ra Data Validation giúp ích khi có hiện thông báo do kết quả nhập liệu không đúng như thiết lập. Thông báo đó gần tương tự MsgBox nhưng có thể thể hiện được tiếng Việt theo kiểu gõ Unicode và thực hiện một cách rất đơn giản.
Với một số trường hợp đặc biệt, có thể lồng ghép Data Validation với VBA để xử lý số liệu phức tạp hơn, đặc biệt hơn.
Hướng dẫn sử dụng Conditional Formatting tải ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?7883-%C4%90%E1%BB%8Bnh-d%E1%BA%A1ng-theo-%C4%91i%E1%BB%81u-ki%E1%BB%87n-%28Conditional-Formatting-CF%29-trong-Excel&p=259806#post259806
Hướng dẫn sử dụng Data Validation tải ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?37911-H%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-s%E1%BB%AD-d%E1%BB%A5ng-Data-Validation&p=251698#post251698
http://www.giaiphapexcel.com/forum/showthread.php?1136-Validation-Tutorial
4. Sử dụng VBA để xây dựng Sub, Function, UserForm:
Khi tính toán dữ liệu phức tạp, đòi hỏi chúng ta phải sử dụng VBA để xây dựng Sub, Function, UserForm để giải quyết công việc đó vì Excel không tự làm được. Đó là nguyên nhân hình thành lớp học VBA trong Excel này.
Ví dụ như đổi tiền từ số sang chữ, nội suy, tính toán hàm lượng giác theo góc độ - phút – giây, kết nối với môi trường bên ngoài như Word, Access, AutoCad,...
Những kiến thức về xây dựng Sub, Function, UserForm đã được học khá nhiều. Việc của chúng ta là phải khai thác, lồng ghép, phối hợp sao cho code sáng sủa, dễ nâng cấp. Nguyên tắc về đặt tên biến, tên điều khiển phải rõ ràng, mạch lạc, tránh nhầm lẫn. Càng nhiều comment chỉ dẫn càng tốt.
Thử hình dung khi đã lãng quên, ta mở lại chương trình để nâng cấp, sửa đổi thì sao? Quy định rõ ràng như trên sẽ giúp ta nhớ lại nội dung thực hiện của code.
Với những bài toán quan trọng và phức tạp, nên xây dựng sơ đồ khối để dễ dàng kiểm soát các tình huống, đường đi nước bước rõ ràng.
Ngoài ra, khi đã thiết lập giao diện mới khi mở chương trình, cần phải trả lại định dạng của Excel khi đóng chương trình.
5. Việt hoá Msgbox, Inputbox, UserForm:
Đây là yếu tố mấu chốt khi xây dựng phần mềm Việt. Thường những thông báo tiếng Việt không dấu để lại sự phản cảm cho người sử dụng. Cần chú ý thông điệp của Msgbox cho phù hợp với trường hợp.
Hiện nay, công cụ Việt hoá Msgbox, Inputbox do anh Nguyễn Duy Tuân, anh Bình đã xây dựng thành công. Còn UserForm thì khó nhất là Việt hoá Caption đã được anh Lê Văn Duyệt thực hiện được.
Đường link tải Msgbox Unicode tiếng Việt:
http://www.giaiphapexcel.com/forum/showthread.php?3049-G%E1%BB%ADi-t%E1%BA%B7ng-c%C3%A1c-b%E1%BA%A1n-h%C3%A0m-MsgBoxUni-hi%E1%BB%83n-th%E1%BB%8B-font-ti%E1%BA%BFng-Vi%E1%BB%87t-Unicode&highlight=
Đường link tải tiếng Việt trong Caption của UserForm:
http://www.giaiphapexcel.com/forum/showthread.php?2625-C%C3%A1c-h%E1%BB%99p-tho%E1%BA%A1i-v%C3%A0-form-ng%C6%B0%E1%BB%9Di-d%C3%B9ng&p=282269&highlight=#post282269
6. Chạy thử để kiểm tra các tình huống:
Nhiều khi trong quá trình xây dựng code, chúng ta không lường hết được tình huống xảy ra một cách đầy đủ. Vì vậy công việc test thử phần mềm là hết sức cần thiết, đề phòng những sai lệch do không kiểm soát hết mọi trường hợp.
7. Thích ứng với các phiên bản Excel:
Đây là vấn đề đau đầu vì thường Office được nâng cấp liên tục. Nhìn chung, từ Office 2003 trở về trước, Excel có 1 dạng cấu trúc (đuôi xls) nên việc đọc và sử dụng dữ liệu đơn giản.
Từ Office 2007 trở đi, giao diện, menu, cấu trúc dữ liệu (xlsm),... đều thay đổi. Vì vậy, chương trình xây dựng cần phải chú ý đến những biến đổi này.
Vì vậy, nên sử dụng các đối tượng lập trình ít bị thay đổi theo phiên bản. Điều đó hạn chế những lỗi do không thích ứng cách phiên bản.
Ví dụ như từ Office 2007 trở về sau, menu được thay bằng Ribbon. Do đó việc điều khiển menu sẽ có sự thay đổi lớn, từ lập trình VBA thông thường chuyển sang XML.
8. Bảo mật chương trình:
Khi đã cho ra sản phẩm có tính ứng dụng cao, công việc bảo mật sản phẩm là cần thiết. Điều đó sẽ tránh việc sử dụng bừa bãi, vi phạm bản quyền hoặc đơn thuần là người sử dụng sửa đổi không đúng.
Có 2 hình thức bảo mật từ bên trong và bên ngoài Excel. Hình thức bảo mật bên trong thường rất yếu, dễ bị bẻ khoá.
Bảo mật từ bên ngoài thường an toàn hơn. Khi đó phải sử dụng các phần mềm chuyên bảo mật cho Excel, ví dụ như ta có thể sử dụng Lockxls, Excel Protect,...
Ngoài ra, một số chương trình diệt virus coi dự án VBA là virus nên dễ bị quét nhầm, việc khôi phục không đơn giản. Chương trình Lockxls ngoài khả năng biến file Excel thành file chạy (exe) thì còn có khả năng bảo vệ dự án VBA không bị quét nhầm.
Đường link tải bài viết về Bảo mật trong Excel:
http://www.giaiphapexcel.com/forum/showthread.php?39176-B%E1%BA%A3o-m%E1%BA%ADt-trong-Excel&highlight=
Ngoài ra, bạn có thể bảo mật nâng cao nhờ việc di chuyển code sang môi trường lập trình khác như VB6, VB.NET để mã hoá. Khi đó toàn bộ code nằm trong file exe hoặc dll. Việc bẻ khoá trở nên khó khăn hơn nhiều.
9. Đóng gói, cài đặt chương trình:
Để sản phẩm mang tính chuyên nghiệp, ta cần đóng gói, cài đặt một cách bài bản.
Tôi xin giới thiệu Inno Setup 5 có chức năng cài đặt tiện dụng và miễn phí.
Kết luận:
Đó là những nguyên tắc cơ bản để xây dựng phần mềm ứng dụng trên Excel.
Việc xây dựng phần mềm trên Excel sẽ giúp người sử dụng thành thạo hơn trong việc khai thác, sử dụng Excel với VBA. Đó cũng là kết quả của quá trình học VBA đã được ứng dụng vào 1 sản phẩm cụ thể.
ThS. Phan Tự Hướng
Bộ môn Địa kỹ thuật
Trường ĐH Kiến trúc Hà Nội
Trong chuyên môn, việc xây dựng các sản phẩm ứng dụng trong Excel của mình là ước muốn của nhiều người. Nhưng công việc đó không hề đơn giản, đòi hỏi nhiều công sức và trình độ của người viết chương trình. Sản phẩm ứng dụng không những phản ánh kết quả của quá trình nghiên cứu, học tập VBA mà còn kiến thức chuyên môn của bạn.
Dưới đây là những nguyên tắc cơ bản khi xây dựng phần mềm trong Excel.
1. Thiết kế giao diện trong Excel:
Công việc này tưởng đơn giản nhưng rất quan trọng. Với sự hỗ trợ của tính năng định dạng 3-D đã khiến Form và các nút lệnh điều khiển bóng bẩy hơn, đẹp hơn, chuyên nghiệp hơn. Khá nhiều người sử dụng Form trên nền bảng tính, vì có thể thể hiện nhiều đối tượng, khả năng định dạng phong phú hơn UserForm.
Công việc này không đòi hỏi khả năng mỹ thuật, tạo bố cục của từng người.
2. Khai thác triệt để hàm, công thức trong Excel:
Excel hỗ trợ nhiều hàm và công thức cho việc tính toán. Việc khai thác sử dụng hàm, công thức sẵn có cho phép kiểm soát chương trình tốt hơn, kết quả xử lý nhanh hơn. Chúng ta chỉ sử dụng hàm VBA khi trong Excel không có hoặc hàm không phù hợp.
Công việc này đòi hỏi kiến thức cơ bản Excel, khả năng kết nối, lồng ghép các hàm của người sử dụng.
Danh sách các hàm trong Excel tải ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?11627-Ebook-C%C3%B4ng-th%E1%BB%A9c-v%C3%A0-h%C3%A0m-Excel
3. Khai thác ứng dụng giao diện trong Excel:
Chức năng Conditional Formatting và Data Validation giúp ích cho việc hiển thị, khai thác, kiểm soát dữ liệu.
Ví dụ như dữ liệu nhập vào được giới hạn trong một khoảng nào đó, phải là số nguyên, số thập phân, trong danh sách sẵn có hoặc chuỗi có độ dài nhất định. Chức năng Data Validation sẽ giúp chúng ta nhập liệu một cách chính xác theo yêu cầu, hạn chế sai sót tối thiểu.
Ngoài ra Data Validation giúp ích khi có hiện thông báo do kết quả nhập liệu không đúng như thiết lập. Thông báo đó gần tương tự MsgBox nhưng có thể thể hiện được tiếng Việt theo kiểu gõ Unicode và thực hiện một cách rất đơn giản.
Với một số trường hợp đặc biệt, có thể lồng ghép Data Validation với VBA để xử lý số liệu phức tạp hơn, đặc biệt hơn.
Hướng dẫn sử dụng Conditional Formatting tải ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?7883-%C4%90%E1%BB%8Bnh-d%E1%BA%A1ng-theo-%C4%91i%E1%BB%81u-ki%E1%BB%87n-%28Conditional-Formatting-CF%29-trong-Excel&p=259806#post259806
Hướng dẫn sử dụng Data Validation tải ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?37911-H%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-s%E1%BB%AD-d%E1%BB%A5ng-Data-Validation&p=251698#post251698
http://www.giaiphapexcel.com/forum/showthread.php?1136-Validation-Tutorial
4. Sử dụng VBA để xây dựng Sub, Function, UserForm:
Khi tính toán dữ liệu phức tạp, đòi hỏi chúng ta phải sử dụng VBA để xây dựng Sub, Function, UserForm để giải quyết công việc đó vì Excel không tự làm được. Đó là nguyên nhân hình thành lớp học VBA trong Excel này.
Ví dụ như đổi tiền từ số sang chữ, nội suy, tính toán hàm lượng giác theo góc độ - phút – giây, kết nối với môi trường bên ngoài như Word, Access, AutoCad,...
Những kiến thức về xây dựng Sub, Function, UserForm đã được học khá nhiều. Việc của chúng ta là phải khai thác, lồng ghép, phối hợp sao cho code sáng sủa, dễ nâng cấp. Nguyên tắc về đặt tên biến, tên điều khiển phải rõ ràng, mạch lạc, tránh nhầm lẫn. Càng nhiều comment chỉ dẫn càng tốt.
Thử hình dung khi đã lãng quên, ta mở lại chương trình để nâng cấp, sửa đổi thì sao? Quy định rõ ràng như trên sẽ giúp ta nhớ lại nội dung thực hiện của code.
Với những bài toán quan trọng và phức tạp, nên xây dựng sơ đồ khối để dễ dàng kiểm soát các tình huống, đường đi nước bước rõ ràng.
Ngoài ra, khi đã thiết lập giao diện mới khi mở chương trình, cần phải trả lại định dạng của Excel khi đóng chương trình.
5. Việt hoá Msgbox, Inputbox, UserForm:
Đây là yếu tố mấu chốt khi xây dựng phần mềm Việt. Thường những thông báo tiếng Việt không dấu để lại sự phản cảm cho người sử dụng. Cần chú ý thông điệp của Msgbox cho phù hợp với trường hợp.
Hiện nay, công cụ Việt hoá Msgbox, Inputbox do anh Nguyễn Duy Tuân, anh Bình đã xây dựng thành công. Còn UserForm thì khó nhất là Việt hoá Caption đã được anh Lê Văn Duyệt thực hiện được.
Đường link tải Msgbox Unicode tiếng Việt:
http://www.giaiphapexcel.com/forum/showthread.php?3049-G%E1%BB%ADi-t%E1%BA%B7ng-c%C3%A1c-b%E1%BA%A1n-h%C3%A0m-MsgBoxUni-hi%E1%BB%83n-th%E1%BB%8B-font-ti%E1%BA%BFng-Vi%E1%BB%87t-Unicode&highlight=
Đường link tải tiếng Việt trong Caption của UserForm:
http://www.giaiphapexcel.com/forum/showthread.php?2625-C%C3%A1c-h%E1%BB%99p-tho%E1%BA%A1i-v%C3%A0-form-ng%C6%B0%E1%BB%9Di-d%C3%B9ng&p=282269&highlight=#post282269
6. Chạy thử để kiểm tra các tình huống:
Nhiều khi trong quá trình xây dựng code, chúng ta không lường hết được tình huống xảy ra một cách đầy đủ. Vì vậy công việc test thử phần mềm là hết sức cần thiết, đề phòng những sai lệch do không kiểm soát hết mọi trường hợp.
7. Thích ứng với các phiên bản Excel:
Đây là vấn đề đau đầu vì thường Office được nâng cấp liên tục. Nhìn chung, từ Office 2003 trở về trước, Excel có 1 dạng cấu trúc (đuôi xls) nên việc đọc và sử dụng dữ liệu đơn giản.
Từ Office 2007 trở đi, giao diện, menu, cấu trúc dữ liệu (xlsm),... đều thay đổi. Vì vậy, chương trình xây dựng cần phải chú ý đến những biến đổi này.
Vì vậy, nên sử dụng các đối tượng lập trình ít bị thay đổi theo phiên bản. Điều đó hạn chế những lỗi do không thích ứng cách phiên bản.
Ví dụ như từ Office 2007 trở về sau, menu được thay bằng Ribbon. Do đó việc điều khiển menu sẽ có sự thay đổi lớn, từ lập trình VBA thông thường chuyển sang XML.
8. Bảo mật chương trình:
Khi đã cho ra sản phẩm có tính ứng dụng cao, công việc bảo mật sản phẩm là cần thiết. Điều đó sẽ tránh việc sử dụng bừa bãi, vi phạm bản quyền hoặc đơn thuần là người sử dụng sửa đổi không đúng.
Có 2 hình thức bảo mật từ bên trong và bên ngoài Excel. Hình thức bảo mật bên trong thường rất yếu, dễ bị bẻ khoá.
Bảo mật từ bên ngoài thường an toàn hơn. Khi đó phải sử dụng các phần mềm chuyên bảo mật cho Excel, ví dụ như ta có thể sử dụng Lockxls, Excel Protect,...
Ngoài ra, một số chương trình diệt virus coi dự án VBA là virus nên dễ bị quét nhầm, việc khôi phục không đơn giản. Chương trình Lockxls ngoài khả năng biến file Excel thành file chạy (exe) thì còn có khả năng bảo vệ dự án VBA không bị quét nhầm.
Đường link tải bài viết về Bảo mật trong Excel:
http://www.giaiphapexcel.com/forum/showthread.php?39176-B%E1%BA%A3o-m%E1%BA%ADt-trong-Excel&highlight=
Ngoài ra, bạn có thể bảo mật nâng cao nhờ việc di chuyển code sang môi trường lập trình khác như VB6, VB.NET để mã hoá. Khi đó toàn bộ code nằm trong file exe hoặc dll. Việc bẻ khoá trở nên khó khăn hơn nhiều.
9. Đóng gói, cài đặt chương trình:
Để sản phẩm mang tính chuyên nghiệp, ta cần đóng gói, cài đặt một cách bài bản.
Tôi xin giới thiệu Inno Setup 5 có chức năng cài đặt tiện dụng và miễn phí.
Kết luận:
Đó là những nguyên tắc cơ bản để xây dựng phần mềm ứng dụng trên Excel.
Việc xây dựng phần mềm trên Excel sẽ giúp người sử dụng thành thạo hơn trong việc khai thác, sử dụng Excel với VBA. Đó cũng là kết quả của quá trình học VBA đã được ứng dụng vào 1 sản phẩm cụ thể.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Phan Tu Huong
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)