我有一个简单的脚本,我想运行它,它会检查是否有打开的word文档,如果它打开了,则使其可见。它可以是任何word文档,所以我不能专门针对任何文件名。
这是到目前为止的代码:
Dim Word
Set Word = GetObject(, "Word.Application")
If Word Is Nothing Then
MsgBox "Is not running"
Else
MsgBox "Is running"
Word.Visible = True
End If
除了Word.Visible = True
之外,一切都有效。弹出窗口显示"正在运行",但 Word 文档不会显示在前面、选中或根本不可见。我错过了什么?谢谢!
更新的详细信息:
我什至像这样尝试过...
Dim Word
Set Word = GetObject(, "Word.Application")
Word.Visible = True
Word.Selection.TypeText "Hello Word"
使用此代码...只要 Word 当前处于打开状态,它就应该使其可见,然后写 Hello Word。它确实写了 Hello Word,但不使其可见。我运行它的一个,我可以看到 Word 在我的任务栏中闪烁,因为添加了 Hello Word,但仍然不可见。希望对您有所帮助!
您似乎误解了Visible
属性的工作原理。该属性定义应用程序是否可见(如"任务栏中是否显示")。
显然,您的应用程序已经可见(否则您将无法看到它在任务栏中闪烁),但您真正想要的是取消最小化它并将其放在前面。WindowState
属性应为您执行此操作:
Const wdWindowStateNormal = 0
Const wdWindowStateMaximize = 1
Const wdWindowStateMinimize = 2
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
MsgBox "Is not running"
Else
MsgBox "Is running"
wd.WindowState = wdWindowStateNormal
End If
Set oWord = CreateObject ("Word.Application")
oWord.Visible = True