Phương pháp tạo phần mềm dùng excel làm nền

Liên hệ QC

vu_tuan_manh_linh

linhvtm84@gmail.com
Tham gia
27/2/10
Bài viết
2,635
Được thích
1,902
Giới tính
Nam
Nghề nghiệp
Kỹ sư Kinh tế Xây dựng
Tôi đã đăng ký chủ đề này trong sinh nhật GPE 12, tuy nhiên do bận công việc đột xuất nên không tham dự được. Nay tôi tạo 1 chủ đề chia sẻ cùng mọi người, hy vọng sẽ giúp được những ai quan tâm, và mong nhận được những ý kiến đóng góp từ các chuyên gia.
____________
Chương trình của tôi gọi là phần mềm cũng được vì nó được cài đặt, được gỡ bỏ như những phần mềm khác, có icon riêng tạo trên desktop, pin to taskbar. Tuy nhiên cũng có thể gọi là 1 dự án VBA, vì chương trình chỉ đơn giản là 1 dự án VBA, 1 add-ins được mở bằng 1 file exe thay vì load một cách thông thường như các add-ins khác.

PHẦN 1: CHUẨN BỊ

Để chuẩn bị cho công việc tạo lập phần mềm, cần chuẩn bị các chương trình hỗ trợ như sau:

1. Excel phiên bản 2010 trở lên (đương nhiên rồi) để tạo file mẫu, tạo add-ins
2. Visual studio để viết file exe
3. Custom UI Editor để tạo menu ribbon cho excel
4. Phần mềm chống dịch ngược mã nguồn .net (tôi đang dùng ConfuserEx v0.6.0)
5. Phần mềm dịch ngược mã nguồn để kiểm tra xem mục số 4. đã hoạt động tốt chưa (Tôi đang dùng ILSpy và VB Decompiler)
6. Phần mềm tạo icon để tạo icon riêng cho phần mềm đang xây dựng (Tôi dùng iconlove)
7. Phần mềm đóng gói để đóng gói các tập tin, dự án thành file cài đặt (Tôi dùng Advanced Installer 13.2)

_____________
 
Cách tạo thanh công cụ trên excel thế nào à bạn? Mình có dùng cái nén rồi tạo file setup nhưng nó chỉ là nằm trong mục addins thôi không ở mục riêng như bạn?
 
Upvote 0
Cách tạo thanh công cụ trên excel thế nào à bạn? Mình có dùng cái nén rồi tạo file setup nhưng nó chỉ là nằm trong mục addins thôi không ở mục riêng như bạn?
Các thanh công cụ đó bạn tạo trong file addin dạng đuôi xlam phần mềm chạy và mở file này lên thì có các công cụ đó. Bạn lên google search cách tạo ribbon cho excel ......
 
Upvote 0
Cách tạo thanh công cụ trên excel thế nào à bạn? Mình có dùng cái nén rồi tạo file setup nhưng nó chỉ là nằm trong mục addins thôi không ở mục riêng như bạn?
Bạn xem lại bài #1 mục số 3. Custom UI Editor để tạo menu ribbon cho excel
Bài đã được tự động gộp:

Phải viết lại toàn bộ code à bạn! code VB6 có chạy cho excell được không?
Hoàn toàn có thể dùng V6, VBNet... để điều khiển Excel, tuy nhiên phức tạp hơn. VBA mặc định Application là excel rồi nên các câu lệnh gần như không cần gọi đối tượng Excel, mà làm việc thẳng luôn với đối tượng con của excel là workbook, worksheet, cell... Còn với VB6, VBNet thì đầu tiên phải nạp Thư viện Excel vào trước, sau đó tạo đối tượng excel rồi mới gọi các đối tượng con ra được. Việc lấy file hiện hành để thực thi trong VBNet, VB6 cũng phức tạp hơn VBA, không đơn thuần là Activeworkbook là xong đâu. Nói chung là khá nhức đầu nếu mới tiếp cận.
 
Lần chỉnh sửa cuối:
Upvote 0
T
PHẦN 1: CHUẨN BỊ

Để chuẩn bị cho công việc tạo lập phần mềm, cần chuẩn bị các chương trình hỗ trợ như sau:

1. Excel phiên bản 2010 trở lên (đương nhiên rồi) để tạo file mẫu, tạo add-ins
2. Visual studio để viết file exe
3. Custom UI Editor để tạo menu ribbon cho excel
4. Phần mềm chống dịch ngược mã nguồn .net (tôi đang dùng ConfuserEx v0.6.0)
5. Phần mềm dịch ngược mã nguồn để kiểm tra xem mục số 4. đã hoạt động tốt chưa (Tôi đang dùng ILSpy và VB Decompiler)

...
_____________

Theo như đặt vấn đề ban đầu của chủ topic thì nếu bạn Linh hướng tới thiết kế ứng dụng theo kiểu của cá nhân bạn, ai muốn làm theo Linh thì ok. Nhưng nếu ai chưa rõ về phương pháp thiết kế ứng dụng mà đọc bài trên thì sẽ thiếu những khía cạnh mở, đa chiều nên tôi viết bài bổ sung để các bạn khác muốn dấn thân vào con đường này tham khảo một cách đầy đủ thêm nhé.

Phần chữ màu đỏ. Chủ topic đang khuynh hướng người thiết kế phần mềm trên Excel dạng đóng.
Mục 1: Chỉ giới hạn Excel 2010 là chưa chính xác: Chúng ta phải thiết kế ứng dụng chạy trên đa môi trường Excel: 2003, 2007,... 2016 32, 64 -bit. Nếu như tác giả dùng VSTO để lập trình thì hoàn toàn không đúng. VSTO cho phép lập trình với Excel 2003 SP3 trở lên. Còn nếu không dùng VSTO thì Excel nào cũng được.

Mục 2: Việc sử dụng ngôn ngữ lập trình là tùy chọn. .NET chỉ là một trong các ngôn ngữ sinh sau đẻ muộn, người ta dùng được tất cả các ngôn ngữ lập trình để can thiệp vào Excel. Vì Excel là dạng Application Server nên tất cả các ngôn ngữ lập trình hỗ trợ gọi COM là kết nối được. Như VB6, Delphi, Foxpro, Access, C, C++, .NET. Bản thân các ứng dụng trong bộ Office (Word, Access, Powerpoint,Outlook) và AutoCad đều gọi được nhưng vì chúng cùng một kiểu model thiết kế.

Mục 3: Tác giả đang đưa người thiết kế về dạng menu Ribbon. Thực tế trong design người ta thường áp dụng ít nhất 3 mô hình thiết kế:
1. TreeView - Menu mô tả theo cây lệnh đa cấp độ - muilti level:
2. Sơ đồ chức năng trên màn hình chính
3. Ribbon: đây là model thiết kế mới do Microsoft đưa ra từ phiên bản Office 2007 nhưng nó không hoàn toàn phù hợp với một số phần mềm mà chức năng cần có mô tả kỹ. Điều nữa là nó chiếm không gian màn hình khá nhiều. Nói chung Ribbon tùy vào loại ứng dụng mà ta nên lựa chọn hay không.
Đây là ví dụ về design phần mềm trên Excel 2003: TreeView + sơ đồ thiết kế
b8d3bbe6-677b-4d92-b276-0a108b76865d.jpg

Mục 4,5: không cần bàn trong chủ đề này vì không có cái gì là chống được cả.

Bổ sung thêm: Nếu các bạn lập trình DLL, OCX, EXE (ứng dụng có biên dịch mã máy) thì chú ý tới trình biên dịch cho môi trường nào?
32 bit, 64-bit. Từ phiên bản Office 2010 trở lên Microsoft có 2 loại phiên bản 32 và 64-bit nên nếu bạn chỉ chăm chăm làm 32-bit thì bạn chỉ có thể phân phối ứng dụng đó cho Office 32-bit mà thôi. Giống như các file Excel trước đây dùng ActiveX Controls trong bộ MSCOMCTL.OCX đều bị lỗi không đỡ được vì nó chỉ là loại ActiveX 32-bit và không hỗ trợ unicode. (Hiện nay đã có loại thay thế gần như hoàn toàn với đầy đủ controls unicode). Vậy chọn phần mềm lập trình và biên dịch nên chọn loại hỗ trợ cả 32 và 64-bit. Hiện nay phổ biến là Delphi, C/C++ và .NET
. VB6 không thể biên dịch ra 64-bit nhé!
 
Lần chỉnh sửa cuối:
Upvote 0
Theo như đặt vấn đề ban đầu của chủ topic thì nếu bạn Linh hướng tới thiết kế ứng dụng theo kiểu của cá nhân bạn, ai muốn làm theo Linh thì ok. Nhưng nếu ai chưa rõ về phương pháp thiết kế ứng dụng mà đọc bài trên thì sẽ thiếu những khía cạnh mở, đa chiều nên tôi viết bài bổ sung để các bạn khác muốn dấn thân vào con đường này tham khảo một cách đầy đủ thêm nhé.

Phần chữ màu đỏ. Chủ topic đang khuynh hướng người thiết kế phần mềm trên Excel dạng đóng.
Mục 1: Chỉ giới hạn Excel 2010 là chưa chính xác: Chúng ta phải thiết kế ứng dụng chạy trên đa môi trường Excel: 2003, 2007,... 2016 32, 64 -bit. Nếu như tác giả dùng VSTO để lập trình thì hoàn toàn không đúng. VSTO cho phép lập trình với Excel 2003 SP3 trở lên. Còn nếu không dùng VSTO thì Excel nào cũng được.

Mục 2: Việc sử dụng ngôn ngữ lập trình là tùy chọn. .NET chỉ là một trong các ngôn ngữ sinh sau đẻ muộn, người ta dùng được tất cả các ngôn ngữ lập trình để can thiệp vào Excel. Vì Excel là dạng Application Server nên tất cả các ngôn ngữ lập trình hỗ trợ gọi COM là kết nối được. Như VB6, Delphi, Foxpro, Access, C, C++, .NET. Bản thân các ứng dụng trong bộ Office (Word, Access, Powerpoint,Outlook) và AutoCad đều gọi được nhưng vì chúng cùng một kiểu model thiết kế.

Mục 3: Tác giả đang đưa người thiết kế về dạng menu Ribbon. Thực tế trong design người ta thường áp dụng ít nhất 3 mô hình thiết kế:
1. TreeView - Menu mô tả theo cây lệnh đa cấp độ - muilti level:
2. Sơ đồ chức năng trên màn hình chính
3. Ribbon: đây là model thiết kế mới do Microsoft đưa ra từ phiên bản Office 2007 nhưng nó không hoàn toàn phù hợp với một số phần mềm mà chức năng cần có mô tả kỹ. Điều nữa là nó chiếm không gian màn hình khá nhiều. Nói chung Ribbon tùy vào loại ứng dụng mà ta nên lựa chọn hay không.
Mục 4,5: không cần bàn trong chủ đề này vì không có cái gì là chống được cả.

Bổ sung thêm: Nếu các bạn lập trình DLL, OCX, EXE (ứng dụng có biên dịch mã máy) thì chú ý tới trình biên dịch cho môi trường nào?
32 bit, 64-bit. Từ phiên bản Office 2010 trở lên Microsoft có 2 loại phiên bản 32 và 64-bit nên nếu bạn chỉ chăm chăm làm 32-bit thì bạn chỉ có thể phân phối ứng dụng đó cho Office 32-bit mà thôi. Giống như các file Excel trước đây dùng ActiveX Controls trong bộ MSCOMCTL.OCX đều bị lỗi không đỡ được vì nó chỉ là loại ActiveX 32-bit và không hỗ trợ unicode. (Hiện nay đã có loại thay thế gần như hoàn toàn với đầy đủ controls unicode). Vậy chọn phần mềm lập trình và biên dịch nên chọn loại hỗ trợ cả 32 và 64-bit. Hiện nay phổ biến là Delphi, C/C++ và .NET
. VB6 không thể biên dịch ra 64-bit nhé!
Cảm ơn thầy Duy Tuân rất nhiều!
 
Upvote 0
Bạn chủ thớt và các bạn trên diễn đàn có thể cho mình xin thêm tài liệu để học được món này không ạ?
Mình đang cần để tạo 1 file riêng cho cty sử dụng ạ.
Cảm ơn các bạn rất nhiều.
 
Upvote 0
Web KT
Back
Top Bottom