在Excel 2010中使用VBA代码调用Web服务

我正在尝试在Excel 2010中编写一些可以使用Web服务的VBA代码。 我无法在互联网上find任何相关的资源。 有人可以告诉我如何做到这一点。

我不认为标记为答案的post是正确的 – 它链接到基于MS Office Web Services Toolkit的Excel 2003解决scheme。 该解决scheme不再有效,因为工具包不再受支持。 请参阅: MSDN – 在Excel 2007中使用Web服务 。 该链接为Excel 2007提供了一个解决scheme,可以转换到Excel 2010中。尽pipe如此,您仍然需要使用Microsoft Office开发工具的Visual Studio 2010。 这也意味着在C#或VB.NET中使用.Net框架和编码。

我在最近的一个项目上苦苦挣扎,我想在纯VBA中与Trello和Salesforce交谈,而不安装任何插件,打开Visual Studio或其他黑客。 结束了写我自己的图书馆(很大程度上基于我的最爱之一,RestSharp)。

警告,无耻的插件: https : //github.com/VBA-tools/VBA-Web

一些有趣的function包括Mac支持(!),authentication(Http Basic,OAuth1,OAuth2等),asynchronous支持和JSONparsing(感谢VBA-JSON )

它在Excel 2010和2013(最有可能的2007年)中运行良好,我已经与Salesforce,Trello,Basecamp,Google Maps一起工作,它应该可以和几乎所有的web服务一起工作。

截至发布时间的FWIW我发现Excel 2003的旧Web References Toolkit仍然在Excel 2007/10中生成工作的VBA代码(请注意,在过去的18个月中,有不同的Windows更新有一些不稳定的时刻,停止这个代码的工作,所以我不会认为我的解决scheme是可靠的)。

我可怕的黑客涉及到安装Excel 2003,然后Web参考工具包,然后安装Excel 2007或Excel 2010.我已经设置了3个电脑使用这个黑客,所有正在生产工作的VBA代码,以消耗asmxnetworking服务(我还没有尝试连接其他types的networking服务,但我不明白为什么他们不会工作)。

使用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/zh-cn/dotnet/framework/wcf/samples/using-the-wcf-moniker-with-com-clients