如何选择Word的运行实例并在其中打开文档

时间:2014-08-20 12:19:37

标签: vba powershell word-vba

所以这就是我想要做的事情:

我有一个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的运行实例,我可以在其中打开我的文档。但是我能找到的所有例子总是通过启动一个单独的单词实例来调用一个新对象。

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

您可以获得这样的运行实例:

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