毎週火曜日にデータが送信されてきます。そのデータを加工集計しています。
その作業をできる限り自動化したいのです。
具体的には
1)あるフォルダにあるデータを解凍(そのフォルダにあるファイルを選択してLhasaにドロップ解凍を行っている。まずこの部分を自動化)
2)解凍されたデータをエクセルを用いて名前の変更。この部分はプログラム作成済みです。ただ、1)の作業終了後、エクセルを立ち上げ、プログラムの実行をしているので、エクセルの立ち上げ、プログラムの実行を自動で行いたい。
http://www.atmarkit.co.jp/fwin2k/win2ktips/1368taskw7/taskw7.html
定期的に実行させるならば タスク・スケジューラーを用いたらいいでしょう。
完全自動化するとしたら、毎週火曜日に送られて来るデータの正確な日時やファイル構成、送られてくる場所などの情報に規則性が無いと、スケジュールとして組むことは難しいかと思います。
私が自動化するとしたらざっと次のような物を考えます。
1)Lhasaで解凍するということはzipかlzhになりますが、zipの場合はコマンドラインで解凍することもできますので自動化を考えた場合Lhasaに拘ることもないのかなと思います。例えばvbsにフォルダをドロップすることでVBScriptから解凍することもできます。
以下はドロップしたzipを解凍するvbsのサンプルです。
※わかりやすくするためにエラートラップ等は省いています。
set fso = WScript.CreateObject("Scripting.FileSystemObject") File = WScript.Arguments(0) With CreateObject("Shell.Application") .NameSpace(fso.GetParentFolderName(File)).CopyHere .NameSpace(File).Items End With
2)1)でvbsを使うと、次にVBScriptからExcelを立ち上げフォルダのパスをそのまま送りマクロを実行させることができます。その部分は次のようなVBScriptで可能です。
Set ExApp = CreateObject("Excel.Application") ExApp.Visible = True ExApp.Workbooks.Open "C:\Users\hogehoge\Desktop\マクロ.xls" ExApp.Run "myMacro", WScript.Arguments(0)
上記をvbsで保存し、フォルダをドロップするとマクロ.xlsが開きmyMacroという関数が実行されます。
下記のようにマクロ.xlsに関数を作ればパスが渡ることが確認できると思います。
Private Sub myMacro(path As String) MsgBox path End Sub
パスが渡れば作成済みのプログラムで使うことができます。
気をつけることは解凍からプログラムの実行を自動で行う場合、解凍の同期処理が必要であるということ。
コメント(0件)