代码之家  ›  专栏  ›  技术社区  ›  Taptronic

在Office 2007应用程序中使用VBA?

  •  4
  • Taptronic  · 技术社区  · 16 年前

    更新:最近读了这篇文章 article .

    7 回复  |  直到 6 年前
        1
  •  9
  •   cori    16 年前

    Office VSTO在Office VBA上提供了大量的附加功能,虽然我不相信微软已经发出终止VBA的信号(事实上, they've said explicitly 它将至少在14号办公室之前存在;Office2007=Office12),我认为将应用程序迁移到VSTO以利用额外的灵活性和功能是非常值得的。

        2
  •  7
  •   to StackOverflow    16 年前

    VSTO有了新的功能,但与VBA相比也有一些主要的缺陷。

    首先,代码访问安全性会使VSTO应用程序的部署变得困难(这是出于礼貌)。

    另一方面,VSTO开发环境远不如VBA对“超级用户”开发人员开放。例如,没有宏记录器让您开始。

    this KB article .

    所有这些加上对现有VBA应用程序的巨大投资意味着VBA不会很快消失。

        3
  •  4
  •   Guy Starbuck    16 年前

    VBA will be supported 展望可预见的未来,但他们也建议新的应用程序使用VSTO。

    最新Mac版本的MS Office不支持VBA,64位Windows以虚拟32位进程外模式运行它。因此,如果您正在计划使用Office作为平台的新应用程序,VSTO是 还有一段路要走,但是您不应该太担心遗留支持。

    正如@cori所指出的,对于微软来说,仅仅是猛拉支持并破坏这么多现有软件将是一个巨大的营销禁忌。

        4
  •  3
  •   Richard Gadsden    16 年前

    自.NET首次发布以来,Microsoft一直在暗示Office的托管代码版本具有集成的VSTO(可能与VB6 IDE为VBA集成的方式相同,因此VS IDE将为VSTO集成)。

    考虑到所涉及的编码量——考虑到这不会产生任何用户可见的功能——我非常怀疑这是否是微软优先考虑的问题。我可以想象,他们将一组托管的对象代码放在现有的代码库之上(就像Joel Spolsky在将VBA放入Excel时将一组COM对象放在现有的C代码库之上),并将一个新的IDE作为默认IDE插入,同时隐藏旧的IDE。甚至这也是一个重要的练习(想象一下编写宏记录器吧!)。当然,这将使.NET成为Office的预请求,Office团队只会在枪口下接受。

    他们永远不会从产品中删除VBA,当然-Excel仍然支持Excel 4宏,Word仍然有WordBasic Automation对象来支持Word 6宏,而且没有任何一个被删除的迹象,因为有太多的遗留代码需要支持-十年来没有人使用过这两种编码模型。

    如果微软真的在Office中安装了.NET环境(坦白说,我怀疑这种情况不会发生),那么他们可能会停止为新的Office功能添加VBA支持。这是他们最接近停止VBA的时候了。

        5
  •  2
  •   Ben Hoffstein    16 年前

    这是一个 comment from Microsoft 关于未来的VBA支持。简而言之,它不会在Windows版本的Office上消失(但在Mac版本上已停止)。

        6
  •  2
  •   gobansaor    16 年前

    http://www.microsoft.com/presspass/press/2008/may08/05-13MacBU2008PR.mspx ).

    对于大多数地面人员来说,VBA和C XLL(以及VB6!!)仍然是首选工具。目前的.NET链接速度缓慢,并且没有提供任何生产力增益。第三部分工具(如ExcelDNA)在一定程度上缓解了这一痛苦,但显然Office的非托管C(和基于汇编程序)代码库并不容易与.NET兼容。

        7
  •  2
  •   Øyvind Skaar    16 年前

    VBA加载项的部署有点麻烦,但VSTO更麻烦。此外,VSTO还需要一些开销,因为它需要在运行代码之前启动CLR。

    但最重要的是;VSTO消除了编写VBA的痛苦。