• 締切済み

vbスクリプトについて

Excelファイル(D:\test.xls)を再起動するvbスクリプトを作成し、 4時間おきに実行するタスクスケジュールを設定したいと思います。 ※6:00、10:00、14:00、18:00、22:00、2:00のタスクスケジュールを作成し、  vbスクリプトを実行。 次のタスクスケジュールが実行されるまでの4時間は、Excelファイル(D:\test.xls)は 開いたままの状態です。 なので、vbスクリプトで、まずExcelファイル(D:\test.xls)が開いている場合は、 「D:\test.xls」を一旦(上書き保存なしで)閉じて、再度、「D:\test.xls」を開きたいと思っています。 ※他のExcelファイルが開いている場合は、「D:\test.xls」のみ閉じる。 「D:\test.xls」を開くスクリプトはできたのですが、「D:\test.xls」を閉じるところがわかりません。 どなたか教えていただけないでしょうか。 【vbスクリプト】----------------------------------------- '「D:\test.xls」が開いている場合は閉じる  ??? '「D:\test.xls」を起動する Dim xlApp Dim xlWbk Set xlApp=CreateObject("Excel.Application") xlApp.Visible=True Set xlWbk=xlApp.Workbooks.open("D:\test.xls",True) ---------------------------------------------------------

みんなの回答

回答No.3

間違いがあったので直しました。 Option Explicit Dim filename Dim filename2 Dim book Dim oExcel Dim FS filename="D:\test.xls" Set oExcel = GetObject(, "Excel.Application") Set FS = CreateObject("Scripting.FileSystemObject") filename2 = FS.getFileName( filename ) oExcel.DisplayAlerts = False for each book in oExcel.Workbooks if book.fullname = filename then oExcel.Workbooks(filename2).Close end if next oExcel.Workbooks.Open filename Set oExcel = Nothing Set FS = Nothing

回答No.2

作ってみました。 .vbsで保存してタスクにあててみてください。 Option Explicit Dim filename Dim filename2 Dim book Dim oExcel Dim FS filename="D:\test.xls" filename2 = FS.getFileName( filename ) Set oExcel = GetObject(, "Excel.Application") Set FS = CreateObject("Scripting.FileSystemObject") oExcel.DisplayAlerts = False for each book in oExcel.Workbooks if book.fullname = filename then oExcel.Workbooks(filename2).Close end if next oExcel.Workbooks.Open filename Set oExcel = Nothing Set FS = Nothing

  • gongon8
  • ベストアンサー率30% (6/20)
回答No.1

GetObject関数を使ったら、とりあえず指定したブックは閉じられましたので お試しあれ。(ちなみに、指定したブックが閉じられていても、特にエラーにはならないみたいです) Dim xlApp Dim xlWbk Set xlWbk=GetObject("C:\test.xls") Set xlApp = xlWbk.Application xlApp.DisplayAlerts=False xlWbk.Close xlApp.Quit

関連するQ&A