- ベストアンサー
Excelを条件で自動起動したい
- 通常業務の妨げにならないよう、Excelを特定の条件で自動起動したいです。当日の15時までに起動していなければ、Excelを起動またはポップアップを表示させたいと考えています。
- 他のソフトを使用できないため、Windows7上のExcel 2003を使用しています。毎日行う業務でExcelを忘れることがあり、それを解決したいです。
- Excelファイルが当日開かれていなかった場合のみ、ポップアップを表示させたりExcelを起動させたりしたいです。具体的な実現方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
タスクスケジューラへの登録の仕方はご存じの様ですね。 以下の内容のVBSを作成して、タスクスケジューラで15時に起動させては如何でしょう。 いきなりExcelが開くと、その時に他の作業中の場合困りますので、メッセージだけ表示させています VBSはここから----↓ Option Explicit Dim objFileSys Dim strFilePath Dim objFile Set objFileSys = CreateObject("Scripting.FileSystemObject") strFilePath = "C:\WORK\確認対象ファイル.xls" Set objFile = objFileSys.GetFile(strFilePath) '最終更新日が今日かどうかを確認 if DateDiff("d",objFile.DateLastAccessed,now()) <> 0 then MsgBox( "本日、まだ作業していません" ) end if Set objFile = Nothing Set objFileSys = Nothing
その他の回答 (2)
- itu1989
- ベストアンサー率44% (37/83)
以下のプログラムをテキストファイルで作成する。(ファイル名:任意.vbs) '↓プログラム START Set objFso = CreateObject("Scripting.FileSystemObject") Set objFile = objFso.GetFile("C:\Users\Admin\Documents\エクセル.xls") Dim dayTarget:dayTarget = Right("0" & Year(objFile.DateLastModified) , 4) & Right("0" & Month(objFile.DateLastModified) , 2) & Right("0" & Day(objFile.DateLastModified) , 2) Dim dayNow:dayNow = Right("0" & Year(Now()) , 4) & Right("0" & Month(Now()) , 2) & Right("0" & Day(Now()) , 2) if (dayNow - dayTarget) >= 1 then Set shell = WScript.CreateObject("WScript.Shell") shell.Run """C:\Program Files\Microsoft Office\Office14\EXCEL.EXE"" ""C:\Users\Admin\Documents\エクセル.xls""" else end if '↑プログラム END ■上記プログラムの以下に示す箇所を環境に合わせて修正する (1)「C:\Users\Admin\Documents\エクセル.xls」を起動したいExcelファイルのパスへ変更する(2箇所) (2)「C:\Program Files\Microsoft Office\Office14\EXCEL.EXE」をご自分のExcelのインストールされているパスへ変更する。 ■タスクスケジューラに作成したプログラム(任意.vbs)を登録する (1)チェックしたい分だけ登録する(30分毎、1時間毎など) 以上です。 15時までにチェックすると言うのはスケジューラで対応して下さい。プログラムでは日付ファイルの更新日付と現在日付を確認して当日更新されたかどうかをチェックしています。なので、Excelが開かれても保存しなければ再度チェックにかかります。
お礼
回答ありがとうございます。 とても難しそうなプログラムです・・・ 理解するにはだいぶ時間がかかりそうです。 丁寧にありがとうございました!
- やぎ じじい(@yagijijii)
- ベストアンサー率56% (63/112)
Windows標準搭載済みアプリのタスク・スケジューラを使用すれば良いのでは?
補足
タスク・スケジューラーの場合ですと、 Excelファイルの起動ではなく、本体の起動となります。 また、今日起動したかどうかの判断ができません。
お礼
回答ありがとうございます。 明日実行してみたいと思います! ありがとうございました