【问题标题】:How can I load another new Word document in the same Word window?如何在同一个 Word 窗口中加载另一个新的 Word 文档?
【发布时间】:2011-01-01 17:07:04
【问题描述】:

似乎在 Microsoft Word 对象模型中,一个 Word 文档绑定到一个 Window,但我想关闭现有文档并打开一个新文档而不关闭 Word 窗口。我该怎么做?

【问题讨论】:

  • 是什么让你认为这是可能的?
  • 好吧,为什么你要这么做?修改您的问题以解释您的实际目标,我们或许可以为您提供帮助。
  • @Jonathan,我正在开发一个 Word 插件,它向 Word 窗口添加侧边栏,我需要在 same Word 窗口中重新加载不同的文档,当 Word 窗口关闭时侧边栏的状态将丢失。
  • @Edwin 我怀疑重新设计插件会更容易,以便它可以在窗口之间保持其状态。
  • @Jonathan,也许这篇文章更好地描述了我的问题?如果我能解决这个问题,我就能解决这个问题!
    stackoverflow.com/questions/4578556/…

标签: vba ms-word ms-office ole


【解决方案1】:

这对我来说可以关闭一个文档并在同一个窗口中打开一个文档(我正在从 normal.dotm 运行宏):

Sub CloseOpenSameWindow()
    Dim d As Document: Set d = ActiveDocument
    Application.ScreenUpdating = False
    d.Close
    Application.Documents.Add Template:="C:\Users\Me\Desktop\Mydocument.docx"
    Application.ScreenUpdating = True
End Sub

【讨论】:

  • 嗨 Otaku,Word 2007 使用这种方法仍然会闪烁很多,而使用 Word 2003 会更好...闪烁的意思是您可以看到一个窗口关闭并显示另一个窗口。感谢您让我知道 ScreenUpdating 属性...
  • @Edwin:我在 Word 2010 上,没有任何闪烁 - 即窗口 没有 关闭 - 只是文档关闭,一个新的而是在同一个窗口中打开。
  • 感谢您的信息,我没有继续使用 Word 2010 进行测试,因为在 Word 2007 上闪烁很多。是的,它没有关闭窗口,看起来我最初的假设是错误的......感谢您让我知道这一点。
【解决方案2】:

你试过 File->Close 吗? 应该关闭文件并让窗口保持打开状态,允许您在同一个窗口中打开另一个文件,至少我记得它是这样工作的。

【讨论】:

  • 您好 Diabl0658,当只有一个 Word 文档打开时确实如此,否则关闭文档也会导致关闭该 Word 窗口。
【解决方案3】:

Ctrl+w(关闭当前窗口)然后Ctrl+n(打开新窗口)

两个按键,仅此而已:)

【讨论】:

  • 嗨 Akhil,我正在开发一个 word 插件,我需要保留原始窗口才能使插件按预期工作。
【解决方案4】:

不是.close吗?

.exit 退出整个应用程序?

【讨论】:

    【解决方案5】:

    暂时使用

    Application.ShowWindowsInTaskbar = False 
    

    这有效地将 Word 变成了 MDI 风格的应用程序。

    【讨论】:

    • 但是我必须更改用户 PC 上的 Word 选项...此外,Word 2000 没有该选项...我们有其他选项吗?
    • “临时使用”我的意思是:将变量设置为当前值,将设置更改为 false,进行文件交换,然后将设置更改回其原始值。 AFAIK,Word 2000 从来没有 MDI 选项,所以我想你会在那个版本上挣扎。但坦率地说,我认为让您的加载项适应每个 版本的 Word 无论如何都会令人担忧。
    • 感谢您的解释,这会导致问题,-我的加载项使用任务窗格并临时更改该选项会导致问题,因为当该选项关闭时,我的任务有多个实例窗格;并且当该选项打开时,仅允许一次任务窗格实例。有什么想法吗?谢谢!
    • @Edwin:任务窗格附加到窗口框架而不是文档,因此当您切换到 MDI 模式时,只有一个窗口。您可以先记录每个文档的任务窗格的状态,然后在完成后将它们重新设置为可见;但这进入了管理任务窗格的领域,这可能是处理此问题而不是更改文档查看模式的更好方法。查看this Microsoft video 获取有关在 Word 文档之间管理任务窗格的指南。
    • @Antogony,感谢您提供更多信息。我编写了一些测试代码来切换 ShowWindowsInTaskbar 属性,我注意到 Windows 任务栏、Word 菜单栏和 Word 窗口本身明显闪烁......看起来这不起作用......
    【解决方案6】:

    在实施您的插件时,您应该考虑以下几点:

    • 加载项不应依赖于窗口模式(SDI 或 MDI)
    • 应保存加载项状态以保留用户自定义。可以使用 XML、注册表、INI 或任何其他格式来保存加载项状态。
    • 每次打开文档时,加载项都应更改以反映文档状态。
    • 加载项应支持多个 word Document 实例。

    见:

    http://www.visualstudiodev.com/visual-studio-tools-for-office/word-addin-multiple-instances-of-word-running-48076.shtml

    http://msdn.microsoft.com/en-us/library/aa189710(v=office.10).aspx

    【讨论】:

      【解决方案7】:

      试试这个

      在 Normal.ThisDocument 中

      Sub main()
          Me.Close
          Documents.Add
      End Sub
      

      这将关闭当前文档并打开一个新文档。您需要处理当前文档的保存

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-26
        相关资源
        最近更新 更多