【问题标题】:Calling web service using VBA code in Excel 2010在 Excel 2010 中使用 VBA 代码调用 Web 服务
【发布时间】:2011-04-01 02:46:15
【问题描述】:

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

【问题讨论】:

标签: excel vba web-services excel-2010 office-2010


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    几年后...我找到了this page,这是迄今为止我找到的最好、最清晰的解释和示例,包括an interesting link providing services to play with

    【讨论】:

      【解决方案3】:

      我在最近的一个项目中遇到了同样的问题,我想在纯 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 一起使用,并且几乎可以与任何网络服务一起使用。

      【讨论】:

      • 哇。很棒的作品,尚未测试,但看起来很棒。非常感谢!
      • 太棒了!感谢分享。
      【解决方案4】:

      截至发稿时,FWIW 发现 Excel 2003 的旧 Web 引用工具包仍在 Excel 2007/10 中生成有效的 VBA 代码(请注意,在过去 18 年中,各种 Windows 更新出现了一些不稳定的时刻几个月已经停止此代码工作,所以我不会认为我的解决方案'可靠')。

      我可怕的 hack 涉及安装 Excel 2003,然后是 Web References Toolkit,然后安装 Excel 2007 或 Excel 2010。我已经使用这个 hack 设置了 3 台 PC,并且都在生成工作 VBA 代码来使用 asmx Web 服务(我没有'没有尝试连接其他类型的网络服务,但我不明白为什么它们不起作用)。

      使用 VSTO 的官方 MS 方法对于我们的一些客户来说有点过头了,这个 VBA hack 让他们很高兴。

      【讨论】:

        【解决方案5】:

        我不认为标记为答案的帖子是正确的 - 它链接到基于 MS Office Web 服务工具包的 Excel 2003 解决方案。该解决方案不再有效,因为不再支持 Toolkit。请参阅:MSDN - Consuming Web Services in Excel 2007。该链接为 Excel 2007 提供了一个解决方案,可以转换为 Excel 2010。不过,您将需要 Visual Studio 2010 和 Microsoft Office 开发人员工具。这也意味着使用 .Net Framework 和 C# 或 VB.NET 编码。

        【讨论】:

        • -1,问题要求 VBA。此回复需要 Visual Studio。
        • 很公平。在我看来,MS 希望 VBA 死掉,它正在推动 Office 的 .net 解决方案。另外,您不必使用 Visual Studio。您可以使用记事本和命令行编译器。
        • 如果 VBA 明天消失,会有多少银行(甚至非常大)几乎停止工作,这会让人们感到惊讶!!!
        • 有趣的是,我正在为其中之一工作,他们会非常乐意从 Excel 二进制文件中删除任何代码。他们中的一些人甚至做到了。他们将 VBA 模块存储在代码存储库中,并根据每个版本的这些模块重新构建工作簿。
        • 我的观点是 MS 积极劝阻 VBA 编码并尝试将开发转移到 .net 和 Visual Studio。删除 MS Office Web 服务工具包就是一个例子。所以VBA明天不会消失,但它的日子已经屈指可数了。不管你喜不喜欢。
        猜你喜欢
        • 1970-01-01
        • 2014-12-13
        • 2010-10-03
        • 2012-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-19
        相关资源
        最近更新 更多