這篇別處抄不到,只有自己懟。
1、先使用 regasm工具注冊dll到注冊表
2、插件dll,即com addin的dll需要寫注冊表的Excel插件項;函數dll,即automation-add-in只需要regasm注冊后使用Excel的加載項(Automation)加載即可使用
3、使用vbs代碼啟用com addin 與函數Automation(addin)
下面是注冊表 與 Excel啟用addin代碼:
bat代碼:
@echo off ::echo Register for 64 bit Excel....... set a=%~dp0 set addin=%a%Com.FToolsforExcel.dll set function=%a%Com.FToolsforExcel.UDF.dll set load=%a%load.vbs :: The RegAsm tool adds the necessary class and interface information to the registry :: %SystemRoot% means "C:\Windows" %SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe "%addin%" /CodeBase %SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe "%function%" /CodeBase :: add Registry keys to "HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins" echo Windows Registry Editor Version 5.00 >add.reg echo. echo [HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\Com.FToolsforExcel.MyConnect] >>add.reg echo "Description"="Com.FToolsforExcel.MyConnect" >>add.reg echo "FriendlyName"="FTools for Excel ComVersion" >>add.reg echo "LoadBehavior"=dword:02 >>add.reg regedit /s add.reg del /q add.reg :: run load vbscript CScript "%load%" ::echo Register successful ::pause exit
bat調用的vbs代碼:
On Error Resume Next Dim oExcel Set oExcel= GetObject(, "Excel.Application") if Err.Number = 0 Then oExcel.COMAddIns("Com.FToolsforExcel.MyConnect").Connect = True oExcel.AddIns("Com.FToolsforExcel.UDF.Functions").Installed = True else Set oExcel = CreateObject("Excel.Application") oExcel.COMAddIns("Com.FToolsforExcel.MyConnect").Connect = True oExcel.AddIns("Com.FToolsforExcel.UDF.Functions").Installed = True oExcel.Quit end if
學習英文可以看
自定義函數UDF可以參考:
https://www.codeproject.com/Articles/552375/ExcelplusUDFpluslibraryplusinplusC-23plusfrompluss
https://bettersolutions.com/csharp/excel-interop/csharp-excel-functions-automation-add-ins.htm