Browse đến một CommAddin bằng VBA

  • Thread starter Thread starter vba_gpe
  • Ngày gửi Ngày gửi
Liên hệ QC

vba_gpe

Thành viên thường trực
Tham gia
15/12/10
Bài viết
296
Được thích
44
Nghề nghiệp
Thất nghiệp
Gửi anh chị GPE
Kính nhờ anh chị giúp em giải đáp 2 thắc mắc về việc sử dụng Comm-Addin trong Excel
1. Trong Excel 2003: Khi chọn mục Add-in của Excel, em không thấy mục Com-Add-in giống như trong office 2007,2010. Vì vậy, để add thủ công một com-addin ta dùng cách nào?

2. Có cách nào dùng VBA để tự động add một file dll (com-addin) không?
Trong office 2007, em thử add bằng tay một com addin bất kỳ thì thấy xuất hiện một key trong Registry theo đường dẫn: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel\AddIns\" & Tên Comm-Addin. "Connect"
Và 2 giá trị trong cái khóa đó gồm:
FriendlyName Kiểu REG_SZ Giá trị: Tên của Comm-addin
LoadBehavior Kiểu Reg_Dword Giá trị: 3 (Load Startup)

Em dùng VBA để add thêm cái khóa và các giá trị theo đúng giá trị lúc mình add thủ công, tuy nhiên khi kiểm tra lại em không thấy add-in này load lên.
Nhờ anh chị giải đáp giúp .

Em cảm ơn mọi người trước.
Mong nhận được hồi đáp của mọi người .
 
1. Trong Excel 2003: Khi chọn mục Add-in của Excel, em không thấy mục Com-Add-in giống như trong office 2007,2010. Vì vậy, để add thủ công một com-addin ta dùng cách nào?
Mình không biết chèn hình vào trang Web nên vấn đề này bạn vào trang này xem hướng dẫn nhé:Tại đây
2. Có cách nào dùng VBA để tự động add một file dll (com-addin) không?
Bạn xem ví dụ tập tin dưới đây nhé
 

File đính kèm

Cảm ơn bạn Phan Ngọc Lan. Từ bấy lâu tìm kiếm đến nay cũng được giải đáp.

Trân trọng
 
Gửi Phan Ngọc Lan
Có một cái này vẫn chưa theo đúng ý mình đó là:
Sau khi đăng ký 1 addin xong, mình thấy Excel tự động thêm Addin (dll) đó vào mục Addin của Excel chứ không load vào mục Com-Addin của nó.
Mình thấy rằng nếu chỉ cần đăng ký bằng lệnh regsvr32 để add dll vào thư viện thì khi load Excel lên mình cũng thấy Addin đó trong danh sách Addin của Excel rồi.

Cũng có một thí dụ mình tham khảo của Anh Nguyễn Duy Tuân. Khi load lên nó vào thẳng trong Com-Addin của Excel luôn. Bạn xem nhé.

Nhờ Phan Ngọc Lan góp ý nhé.
Trân trọng.
 

File đính kèm

Gửi Phan Ngọc Lan
Có một cái này vẫn chưa theo đúng ý mình đó là:
Sau khi đăng ký 1 addin xong, mình thấy Excel tự động thêm Addin (dll) đó vào mục Addin của Excel chứ không load vào mục Com-Addin của nó.
Mình thấy rằng nếu chỉ cần đăng ký bằng lệnh regsvr32 để add dll vào thư viện thì khi load Excel lên mình cũng thấy Addin đó trong danh sách Addin của Excel rồi.

Mình chưa hiểu ý bạn lắm. Nhưng khi mình sử dụng file mình đã gởi lên thì khi đăng ký trên máy mình nó vẫn load vào mục Com-Addin đấy chứ. Bạn kiểm tra lại xem!
 
Mình chưa hiểu ý bạn lắm. Nhưng khi mình sử dụng file mình đã gởi lên thì khi đăng ký trên máy mình nó vẫn load vào mục Com-Addin đấy chứ. Bạn kiểm tra lại xem!
Dear Ngọc Lan.
Mình gửi trường hợp của mình cho bạn xem luôn nhé:
Mình dùng LockXLS để khóa file XLA trên máy mình. Sau đó, đem file qua 1 máy khác, nếu brow bằng tay đưa cái LockXLSRuntime.dll vào Com Add-in của Excel thì file mới hoạt động được.
Nếu Brow bằng cách đăng ký Regsvr32 file LockXLSRuntime.dll thì file cũng OK. Tuy nhiên, khi mở Excel vào Dialog Addin thì thấy cái Addin LockXLSRuntime có trong danh sách. Ý mình là cũng để Addin LockXLSRuntime load lên nhưng mà để ở trong Com-Addin chứ không đưa vào Addin.

Gửi bạn file Dll bạn xem nhé.

Mong nhận được hồi đáp từ bạn.
 

File đính kèm

Chào vba_gpe.

Theo mình file LockXLSRuntime.dll vẫn chỉ là một dạng Addin (*.xla) thôi vì vậy khi mình Add bằng tay vào COM-Addin thì không được(thêm vào bằng COM-Addin của Excel). Nhưng nếu mình chọn thêm vào Addin (chọn dạng All files hoặc mình có thể đổi đuôi file từ ".dll"->".xla") thì thêm nó vào trong danh sách như bình thường. Vậy mình chắc rằng đó chỉ là một Addin(*.xla) không phải là COM-Addin(*.dll).
Kết luận: Chỉ thêm vào Addin

P/S: file của thầy Nguyễn Duy Tuân mình dùng file đã gửi vẫn đăng ký được vào danh sách COM-Addin
 
Gửi bạn Phan Ngọc Lan
Sao lạ quá, máy tính chổ mình vẫn add được File đó.
Trên máy 2010 (Có cài Lock XLS)
Excel 2010.jpg
Còn trên máy Window XP, office 2007 (Không cài Lock XLS)
Excel 2007_Win XP.jpg

Còn trường hợp đổi đuôi .dll thành .xla thì mình mới biết đấy. Cái .dll này mình lấy nguyên bản của chương trình Lock XLS trên máy tính của mính.

Nhờ bạn và mọi người xem giúp nhé.

Trân trọng. Mong nhận được hồi đáp của mọi người.
 

File đính kèm

Web KT

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

Back
Top Bottom