我有一个需要加载项的 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
插件登录窗口如下所示:
我被困在如何通过引用对象或 HWND 将凭据传递到此加载项窗口。
有一些有用的帖子:Open an Excel file in running Excel with Task Scheduler。并使用任务计划程序在 Excel 的运行实例中打开一个 Excel 文件
如何通过 Windows API 进行身份验证,不一定通过 VBA?我也可以使用 Python。