我有一个需要加载项的Excel自动化任务。使用加载项需要单独的身份验证。
无法通过我的凭据。我必须在加载项加载时手动进行身份验证。因为老式的方式启动了一个新的(未经身份验证的)实例,所以我无法弄清楚如何完全自动化需要加载项的任务。
我知道我可以使用getObject在Excel中使用此加载项对象来查找加载项名称:
For i = 1 To AddIns.Count
Debug.Print (AddIns(i).Name)
Debug.Print (AddIns(i).FullName)
Debug.Print (AddIns(i).Title)
Debug.Print (AddIns(i).Installed)
Debug.Print (AddIns(i).FullName)
Next
这将显示加载项名称,我可以使用
在其中找到加载项Set MyObject = AddIns("addin name")
或使用findWindow(Windows API)查找加载项实例
hWnd = FindWindow(vbNullString, "Add-in Login Window Title")
WindowsAPI getobject上的引用链接以及Findwindows和SendMessage的引用函数 http://msdn.microsoft.com/en-us/library/office/gg251785(v=office.14).aspx
addin登录窗口如下所示:
我不知道如何通过引用对象或HWND将凭据传递给此加载项窗口。
有一些有用的帖子:Open an Excel file in running instance of Excel with Task Scheduler。和Open an Excel file in running instance of Excel with Task Scheduler
如何通过Windows API进行身份验证,不一定通过VBA进行身份验证?我也可以使用Python。