使用Excel 2010中使用VBA代码调用Web服务
-
29-09-2019 - |
题
我正在尝试在Excel 2010中编写一些可以使用Web服务的VBA代码。我无法在互联网上找到任何相关资源。有人可以告诉我如何做。
解决方案
我认为该帖子标记为答案是正确的 - 它链接到基于MS Office Web Services工具包的Excel 2003解决方案。该解决方案不再有效,因为不再支持该工具包。看: MSDN-在Excel 2007中消费Web服务. 。该链接为Excel 2007提供了一个解决方案,可以将其转换为Excel2010。您将需要Visual Studio 2010带有Microsoft Office Developers工具。这也意味着在C#或VB.NET中使用.NET框架和编码。
其他提示
我在我最近的一个项目上挣扎着同样的问题,我想在纯VBA中与Trello和Salesforce交谈,而无需安装任何插件,打开Visual Studio或其他黑客。最终写了我自己的图书馆(主要基于我的最爱之一,RestSharp)。
警告,无耻插头: https://github.com/vba-tools/vba-web
一些有趣的功能包括Mac支持(!),身份验证(HTTP Basic,OAuth1,Oauth2等),异步支持和JSON解析(感谢 vba-json)
它在Excel 2010和2013(最有可能是2007年)中的工作非常出色,并且我已经与Salesforce,Trello,Basecamp,Google Maps一起工作,并且应该与任何WebService一起使用。
FWIW截至发布时,我发现Excel 2003的旧Web参考工具包仍然在Excel 2007/10中生成工作VBA代码(请注意,在过去的18个月中,有一些摇摇欲坠的时刻,有各种Windows更新停止此代码工作,因此我不会考虑我的解决方案“可靠”)。
我可怕的黑客涉及安装Excel 2003,然后是Web参考工具包,然后安装Excel 2007或Excel2010。我已经使用此hack设置了3台PC,所有这些都在生产工作VBA代码来消费ASMX Web服务(我没有尝试过连接其他类型的Web服务,但我不明白为什么它们不起作用)。
使用VSTO的官方MS方法对我们的某些客户来说是太远了,而这个VBA黑客使他们感到高兴。
几年后...我发现 这一页 到目前为止,这是我发现的最好,最清晰的解释和例子,包括 一个有趣的链接,提供服务的服务.
Windows Communication Foundation(WCF)服务绰号将Web服务集成到基于COM的开发环境中,例如Microsoft Office Visual Basic for Applications(Office VBA)或Visual Basic 6.0。有关详细信息,请参见链接 https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/using-the-wcf-moniker-with-com-clients