Com Add-Ins trong VBA

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

n.n.Tien

Thành viên mới
Tham gia
6/9/24
Bài viết
7
Được thích
1
Xin chào mọi người. Mọi người cho mình hỏi Com Add-Ins trong VBA là gì nhỉ? Cách sử dụng như nào? Thanks all
 
Xin chào mọi người. Mọi người cho mình hỏi Com Add-Ins trong VBA là gì nhỉ? Cách sử dụng như nào? Thanks all

VBA không tạo được COM Add-in bạn nhé. COM Add-in là một sản phẩm được lập trình từ các ngôn ngữ như Delphi, VB6, C++, C#, VB.net,... được biên dịch ra DLL hoặc OCX. Muốn chạy cho một máy nào đó thì bạn phải chạy lệnh đăng ký với Windows cho lần đầu tiên, thường nhà phát triển sẽ tạo bộ cài đặt cho thuận tiện tới người dùng cuối.

Nếu muốn tự cài một file COM Add-in ví dụ "C:\COM\MyAddin.dll" trên một máy
1. Mở Windows PowerShell hoặc Command Prompt
2. Chạy lệnh

Regsvr32 "C:\COM\MyAddin.dll"

Nếu gỡ bỏ cài đặt
Regsvr32 "C:\COM\MyAddin.dll" /u

Nếu chạy lệnh thành công sẽ có một MsgBox kiểu Information thông báo.

(*) Lưu ý: ở bước 2: tùy vào COM Add-in là loại 32 hay 64-bit mà bạn phải thay đổi đường dẫn của file Regsvr32. Bạn muốn tìm hiểu chi tiết thì vào đây xem ví dụ cách cài bằng tay để hiểu bản chất hơn.
 
Upvote 0
VBA không tạo được COM Add-in bạn nhé. COM Add-in là một sản phẩm được lập trình từ các ngôn ngữ như Delphi, VB6, C++, C#, VB.net,... được biên dịch ra DLL hoặc OCX. Muốn chạy cho một máy nào đó thì bạn phải chạy lệnh đăng ký với Windows cho lần đầu tiên, thường nhà phát triển sẽ tạo bộ cài đặt cho thuận tiện tới người dùng cuối.

Nếu muốn tự cài một file COM Add-in ví dụ "C:\COM\MyAddin.dll" trên một máy
1. Mở Windows PowerShell hoặc Command Prompt
2. Chạy lệnh

Regsvr32 "C:\COM\MyAddin.dll"

Nếu gỡ bỏ cài đặt
Regsvr32 "C:\COM\MyAddin.dll" /u

Nếu chạy lệnh thành công sẽ có một MsgBox kiểu Information thông báo.

(*) Lưu ý: ở bước 2: tùy vào COM Add-in là loại 32 hay 64-bit mà bạn phải thay đổi đường dẫn của file Regsvr32. Bạn muốn tìm hiểu chi tiết thì vào đây xem ví dụ cách cài bằng tay để hiểu bản chất hơn.
Cảm ơn bạn đã chia sẻ thông tin!
Ở đây mình muốn tìm hiểu về ứng dụng của Com Add-Ins vào thực tế trong VBA. Nó có ưu điểm và sức mạnh gì khi cài đặt vào VBA. Lấy ví dụ như khi cài đặt Excel Add-Ins vào VBA thì mình hiểu nó là cài đặt các Function tự lập vào các WorkBook nhưng mình lại ko hiểu COM Add-Ins này có ý nghĩa như nào trong thực tế!
 
Upvote 0
Bạn hiểu đơn giản, COM Add-Ins là lập trình nhúng. Excel nhúng VBA trực tiếp để chạy mã thì com Add-ins cần cài đặt để mã được biên dịch để chạy được trong Excel. VBA thì không mạnh bằng các ngôn ngữ lập trình cấp cao khác và các nền tảng lập trình khác hiện đại, nhiều thư viện mới mẻ, giao diện hiện đại, ... và mạnh hơn VBA nhiều mặt, như đa luồng là một lợi thế lớn. Thư viện trong COM Add-Ins có thể dễ dàng truy cập để chạy mã từ VBA.
 
Upvote 0
Bạn hiểu đơn giản, COM Add-Ins là lập trình nhúng. Excel nhúng VBA trực tiếp để chạy mã thì com Add-ins cần cài đặt để mã được biên dịch để chạy được trong Excel. VBA thì không mạnh bằng các ngôn ngữ lập trình cấp cao khác và các nền tảng lập trình khác hiện đại, nhiều thư viện mới mẻ, giao diện hiện đại, ... và mạnh hơn VBA nhiều mặt, như đa luồng là một lợi thế lớn. Thư viện trong COM Add-Ins có thể dễ dàng truy cập để chạy mã từ VBA.
Cảm ơn bạn đã chia sẻ thông tin! Nhưng mình vẫn thấy COM Add-Ins rất trừu tượng. Mình cũng tìm kiếm trên Google chỉ thấy các bài viết nói về cách cài đặt và ứng dụng của Excel Add-Ins trong công việc thực tế mà ko thấy bài viết nào khai thác sức mạnh của COM Add-Ins để học hỏi trong thực tế công việc.
 
Upvote 0
Tôi cho bạn biết thêm các loại add-in nhé.
1. XLL Add-ins (Bằng ngôn ngữ lập trình C, C++,Delphi và các ngôn ngữ hỗ trợ khác để tạo DLL -> XLL)
2. COM Add-ins (Bằng ngôn ngữ lập trình, biên dịch ra DLL, OCX)
3. Excel Add-ins (viết bằng VBA).

Bản chất đều là add-in tức là ứng dụng nhúng chạy cùng Excel. Tính ứng dụng thực tế hay không là do chính sản phẩn đó cung cấp chức năng gì chứ không phải do công nghệ quyết định chính. Ví dụ add-in VBA tạo hàm đọc số thành chữ, XLL cũng tạo hàm đọc số thành chữ, COM add-in cũng tạo hàm đọc số thành chữ thì tất cả chúng đều là ứng dụng thực tế. Các loại add-in trên là thể hiện sức mạnh công nghệ của loại add-in và điều kiện cũng như khả năng của mỗi nhà phát triển tạo ra nó. Ví dụ người không nghiên cứ về các ngôn ngữ lập trình mạnh như Delphi, C/C++, C#, VB.net nhưng lại quen thuộc VBA thì tạo add-in bằng VBA. Người nào muốn bảo mật code hơn thì tạo add-in dạng COM, XLL (tạm coi khi nó được biên dịch ra mã máy là bảo mật hơn VBA). Người nào muốn khai thác sức mạnh của ngôn ngữ lập trình, nền tảng hỗ trợ cùng thì chọn các ngôn ngữ khác VBA, muốn tối ưu tốc độ chạy hàm thì tạo XLL. Có một số đặc thù mà người ta buộc phải lựa chọn việc tạo loại add-in nào. Ví dụ muốn lấy điều khiển của một thành phần Office cung cấp chỉ khi khởi động các ứng dụng Office, ta buộc phải tạo COM Add-in (nội dung này tôi không nói cụ thể ở đây vì nó thuộc một mớ các nội dung khác, phù hợp ở một chủ đề khác).
Kết luận là tính ứng dụng của loại add-in là do chính add-in tạo ra để làm cái gì và đáp ứng nhóm đối tượng sử dụng nào.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi cho bạn biết thêm các loại add-in nhé.
1. XLL Add-ins (Bằng ngôn ngữ lập trình C, C++,Delphi và các ngôn ngữ hỗ trợ khác để tạo DLL -> XLL)
2. COM Add-ins (Bằng ngôn ngữ lập trình, biên dịch ra DLL, OCX)
3. Excel Add-ins (viết bằng VBA).

Bản chất đều là add-in tức là ứng dụng nhúng chạy cùng Excel. Tính ứng dụng thực tế hay không là do chính sản phẩn đó cung cấp chức năng gì chứ không phải do công nghệ quyết định chính. Ví dụ add-in VBA tạo hàm đọc số thành chữ, XLL cũng tạo hàm đọc số thành chữ, COM add-in cũng tạo hàm đọc số thành chữ thì tất cả chúng đều là ứng dụng thực tế. Các loại add-in trên là thể hiện sức mạnh công nghệ của loại add-in và điều kiện cũng như khả năng của mỗi nhà phát triển tạo ra nó. Ví dụ người không nghiên cứ về các ngôn ngữ lập trình mạnh như Delphi, C/C++, C#, VB.net nhưng lại quen thuộc VBA thì tạo add-in bằng VBA. Người nào muốn bảo mật code hơn thì tạo add-in dạng COM, XLL (tạm coi khi nó được biên dịch ra mã máy là bảo mật hơn VBA). Người nào muốn khai thác sức mạnh của ngôn ngữ lập trình, nền tảng hỗ trợ cùng thì chọn các ngôn ngữ khác VBA, muốn tối ưu tốc độ chạy hàm thì tạo XLL. Có một số đặc thù mà người ta buộc phải lựa chọn việc tạo loại add-in nào. Ví dụ muốn lấy điều khiển của một thành phần Office cung cấp chỉ khi khởi động các ứng dụng Office, ta buộc phải tạo COM Add-in (nôi dung này tôi không nói cụ thể ở đây vì nó thuộc một mớ các nội dung khác, phù hợp ở một chủ đề khác).
Kết luận là tính ứng dụng của loại add-in là do chính add-in tạo ra để làm cái gì và đáp ứng nhóm đối tượng sử dụng nào.
Cảm ơn bạn rất nhiều! Mình đã hình dung ra rồi!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom