【问题标题】:How to use Word 2013 parameter in VBA template and compile in Word 2010如何在 VBA 模板中使用 Word 2013 参数并在 Word 2010 中编译
【发布时间】:2013-11-03 08:46:24
【问题描述】:

我正在为需要在多个 Word 版本(2003 到 2013,减去 2008)中工作的模板编写代码。我已经接受它不会在所有这些版本中编译。我主要在 Word 2010 中编写代码。到目前为止,我一直能够让它在 2010 年编译,但现在我遇到了一个绊脚石。

我需要使用我定义的特定用户名向文档添加评论。我通过在变量中保存当前用户名和用户首字母来做到这一点,将它们设置为我想要的,添加我的评论,然后重置参数。很简单。但是,在 Word 2013 中,必须设置一个附加参数才能使其正常工作:Application.Options.UseLocalUserInfo。由于 Word 2010 中不存在此功能,因此无法编译。

我认识到这主要是一种不便(我可以注释掉该代码,检查编译问题,然后取消注释)。但我想检查一下是否有更好的、更少麻烦的解决方案。我在跨版本兼容性方面的大部分经验是使用编译器常量和后期绑定,这两者都没有帮助(据我所知)。

基本代码如下。谢谢!

    With Application
       sDocAuthorName = .UserName
       sDocAuthorInitials = .UserInitials
       If IsWord2013 = true Then bUseLocal = GetUseLocalUserInfo
   End With

   With Application
       .UserName = sQAAuthorName
       .UserInitials = sQAAuthorInitials
       If IsWord2013 = true Then .Options.UseLocalUserInfo = True
   End With

   'Do something

   With Application
       .UserName = sDocAuthorName
       .UserInitials = sDocAuthorInitials
       If IsWord2013 = true Then .Options.UseLocalUserInfo = bUseLocal
   End With

【问题讨论】:

  • Application.Options.UseLocalUserInfo- 你从哪里得到的?我在THIS LIST 上看不到这个
  • 检查THIS。我见过其他人在 VBA 中使用类似的 directive 命令来解释不同的版本。
  • @KazJaw 这很奇怪。根据这个线程 (social.msdn.microsoft.com/Forums/office/en-US/…),它只是没有记录在案。也许是后期添加?我手边没有 2013,但根据链接它在对象浏览器中。
  • @DavidZemens 我很乐意这样做,但我不相信 MS 为 Word 版本提供编译器常量。如果 word 2013 使用不同版本的 VBA,我会被设置,但我认为情况并非如此。我用它们来区分仅 Mac 的代码;真希望他们能添加版本。
  • FWIW 这里有更多关于这个参数的信息(AFAIK 它仍然没有在 MSDN 文档中列出)blogs.msmvps.com/wordmeister/missing-office-documentation/…

标签: vba ms-word


【解决方案1】:

我没有 Word 2013,因此无法在该环境中进行测试,但我有 Word 2010,如果您使用后期绑定,则此代码可以编译:

Sub Foo()
Dim wdApp As Object
Dim IsWord2013 as Boolean
    IsWord2013 = False
    Set wdApp = Application

    If IsWord2013 Then wdApp.Options.UseLocalUserInfo = True


End Sub

【讨论】:

  • 哦,哇,我什至没有想过在 Application 对象本身上使用后期绑定。我会测试,但我几乎可以肯定这会奏效。谢谢!完成尽职调查后将返回并标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
相关资源
最近更新 更多