2

世界!

仕事でレポート タスクを自動化しようとしていますが、次のような状況があります。

スクリプトを使用してブックでマクロを実行する必要があります。私は仕事をするためにvbscriptを書き込もうとしましたが、これはその重要な部分です:

Set objWbk = GetObject("***Path***\test.xlsm")

objWbk.Application.Run "test.xlsm!test" 

WScript.Quit

マクロは完全に実行されます。私の本当の問題は、ワークブックが開いている場合にのみレポートを実行したいということです。

そのワークブックが開いているかどうかを判断する方法 (vbs または vba) はありますか? (ちなみに、それは私のネットワーク上の別のコンピューターにあります)

4

2 に答える 2

1

ブックが既に開かれているときにのみマクロを実行したいので、次のようなものが機能する可能性があります。

wbName = "test.xlsm"
wbFullName = "***Path***\" & wbName

Set xl = GetObject(, "Excel.Application")
For Each wb In xl.Workbooks
  If LCase(wb.Path & "\" & wb.Name) = wbFullName Then
    wb.Application.Run wbName & "!test"
  End If
Next
于 2012-09-20T14:24:58.747 に答える
1

This is not fully tested and may a need a bit of modification but see if it gets you what you need.

On Error Resume Next
Set objWbk = GetObject("***Path***\test.xlsm")

If Err.Number = 0 Then objWbk.Application.Run "test.xlsm!test" 

wScript.Quit
于 2012-09-19T17:05:30.220 に答える