Yukino Ichikawa
VIP
1. Lưu thành file Addin bằng VBA.
Giả sử chúng ta đang code trên một file Excel, lưu file này thành xlsm.
Bây giờ muốn lưu file này thành Addin thì làm như sau:
Cách trên ta lưu file addin cùng thư mục với file code xlsm. Tuy nhiên thực tế, các file Addin thường có một folder được quy định riêng. Code dưới đây sẽ giúp các bạn truy cập tới folder này :
Tuy nhiên, nếu chúng ta làm công việc phân phối một sản phẩm Addin. Tôi cho rằng lựa chọn tốt hơn hết là lưu addin này tới một thư mục riêng biệt nào đó trên máy tính thì tốt hơn. Ta có thể kiểm tra hoạt động không chỉ là đăng ký Addin và sử dụng, mà còn có thể mở trực tiếp file Addin này và kiểm tra nó.
2. Đăng ký Addin bằng VBA
Đoạn code sau sẽ đăng ký một file Addin xlam cho hiển thị trên danh sách Addin của Excel.
3. Cài đặt Addin
Việc này tuơng đường với tích chọn vào danh sách Addin lựa chọn ra Addin mà ta muốn sử dụng.
4. Hiển thị danh sách quản lý Addin
5. Tự động đăng ký khi phân phối Addin ra ngoài.
Nguồn tham khảo:
Giả sử chúng ta đang code trên một file Excel, lưu file này thành xlsm.
Bây giờ muốn lưu file này thành Addin thì làm như sau:
Mã:
Sub AddinSaveas()
Dim strFile As String
strFile = Replace(ThisWorkbook.FullName, ".xlsm", ".xlam")
If Dir(strFile) <> "" Then Kill strFile
ThisWorkbook.SaveAs Filename:=strFile, FileFormat:=xlOpenXMLAddIn
End Sub
Mã:
Sub AddinFolder()
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
MsgBox wsh.SpecialFolders("Appdata") & "\Microsoft\Addins\"
End Sub
2. Đăng ký Addin bằng VBA
Đoạn code sau sẽ đăng ký một file Addin xlam cho hiển thị trên danh sách Addin của Excel.
Mã:
Sub AddinAdd()
AddIns.Add ThisWorkbook.Path & "\AddinTest.xlam"
End Sub
Việc này tuơng đường với tích chọn vào danh sách Addin lựa chọn ra Addin mà ta muốn sử dụng.
Mã:
Sub AddinInstall()
AddIns("AddinTest").Installed = True
End Sub
Mã:
Sub AddinManeger()
Dim rtn
rtn = Application.Dialogs(xlDialogAddinManager).Show
If rtn = True Then
MsgBox "OK"
Else
MsgBox "Cancel"
End If
End Sub
Mã:
Sub AdinAutoInstall()
Dim InstallPath
Dim AddinPath
Dim AddinFile
Dim AddinName
Dim xlApp
Dim fso
Dim wsh
AddinName = "AddinTest" 'Addin file name、Addin name
AddinFile = AddinName & ".xlam"
On Error Resume Next
'Lam viec voi Excel
Set xlApp = Application 'VBA
'Set xlApp = CreateObject("Excel.Application") 'VbScript
'Truong hop da dang ky thi huy chon
xlApp.AddIns(AddinName).Installed = False
'Obj duoc su dung de giao tiep
Set wsh = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
'Addin file name, truong hop nay la de chung trong mot folder me
AddinPath = ThisWorkbook.Path & "\" 'VBA
'AddinPath = fso.GetFolder(".") & "\" 'VbScript
'Addins folder、Co the chi dinh folder tuy y
InstallPath = wsh.SpecialFolders("Appdata") & "\Microsoft\Addins\"
'Copy file Addin
fso.CopyFile AddinPath & AddinFile, InstallPath & AddinFile, True
'Dang ky file Addin
'xlApp.Workbooks.Add 'VbScript
xlApp.AddIns.Add InstallPath & AddinFile
xlApp.AddIns(AddinName).Installed = True
'xlApp.Quit 'VbScript
'Giai phong bo nho
Set wsh = Nothing
Set fso = Nothing
Set xlApp = Nothing
MsgBox "Cai dat thanh cong"
End Sub
Bạn cần đăng nhập để thấy link