【问题标题】:How to select a running instance of Word and open a Document within如何选择正在运行的 Word 实例并在其中打开文档
【发布时间】:2014-08-20 22:50:14
【问题描述】:

这就是我想要做的:

我有一个 VBA 应用程序,它使用多个打开的 Word-2010 文档的信息。只要在同一个进程中打开所有打开的文档,这就可以正常工作。但是我不想手动打开这些文档,而是通过 Powershell 来打开这些文档,到目前为止,我只能通过启动一个新的 Word 实例来做到这一点。让我们看一下代码:

$isRunning = (Get-Process | Where-Object { $_.Name -eq "WINWORD" }).Count -gt 0

if ($isRunning) {

    #Select open Word Process
    **$wrd = # ???** 

    # Make Word Visible 
    $wrd.visible = $true  

    # Open a document  
    $doc = $wrd.documents.add($latest.Fullname)  
}
else {

    # Create Word Object  
    $wrd = New-object -com word.application 

    # Make Word Visible 
    $wrd.visible = $true  

    # Open a document  
    $doc = $wrd.documents.add($latest.Fullname)  
}

???标记我想选择一个正在运行的 Word 实例的位置,我可以在其中打开我的文档。但我能找到的所有示例总是通过启动一个单独的 word 实例来调用一个新对象。

另一种解决方法是更改​​我的 VBA 应用程序以访问不同进程的文档,但我不知道这是否可能或如何做到。

无论哪种方式,任何帮助都将受到高度赞赏。

谢谢。

【问题讨论】:

标签: vba powershell ms-word


【解决方案1】:

你可以像这样得到一个正在运行的实例:

$word = [System.Runtime.InteropServices.Marshal]::GetActiveObject('Word.Application')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多