想在VBA范围内做到这一点(其他用户没有其他开发工具可以修改).我知道第三方应用程序(例如iMacros)做类似但希望尽可能通用.该商店使用XP和Excel 2003.
(1) VBA子程序控制InternetExplorer浏览器自动查看网站,表单提交等.
(2)有没有办法从WebBrowser的内容中获取屏幕截图?没有凌乱的SendKeys方法?.NET有一个Webbrowser.DrawToBitmap方法,但无法找到一个简单的VBA解决方案.想要整个屏幕,包括"低于折叠" - 滚动条下方......
我的最终目标是用 C# 构建一个类库 (Calculator.dll),其中包含可通过 VBA 访问 Excel 的函数。
我本来希望避免注册 dll 的需要,而是在 VBA 代码中使用 Declare Function 语句,但显然这是不可能的,我的研究表明我需要使类库 COM-Visible,然后注册并将其添加为 VBA 项目的引用。在早期的 Visual Studio 版本中,这似乎是单击项目属性对话框中的框的问题,但我在 VS2022 中没有看到该框?!
这些是我对“玩具”示例采取的步骤,以及我遇到的问题。
(1) 我用一个计算类和一个简单的方法来添加两个整数,构建了以下 .dll。由于我们使用 32 位 Excel,因此我将其配置为 x86。
namespace ClassLibraryCalculator
{
public class Calculate
{
public int Add(int a,int b){ return a + b; }
}
}
Run Code Online (Sandbox Code Playgroud)
(2) 在命令提示符下,以管理员身份运行,我尝试运行 regsvr32“ClassLibraryCalculator.dll”,但遇到错误“..已加载,但未找到入口点 DllRegisterServer”
经过搜索,据说解决这个问题的方法是修改项目属性,这是(在早期版本的VS中?)一个对话框

带有一个复选框,但我在 Visual Studio 2022 项目属性中没有看到任何与 COM 相关的内容。