定時に行う作業を自動化したい。

毎週火曜日にデータが送信されてきます。そのデータを加工集計しています。
その作業をできる限り自動化したいのです。
具体的には
1)あるフォルダにあるデータを解凍(そのフォルダにあるファイルを選択してLhasaにドロップ解凍を行っている。まずこの部分を自動化)
2)解凍されたデータをエクセルを用いて名前の変更。この部分はプログラム作成済みです。ただ、1)の作業終了後、エクセルを立ち上げ、プログラムの実行をしているので、エクセルの立ち上げ、プログラムの実行を自動で行いたい。

回答の条件
  • 1人20回まで
  • 13歳以上
  • 登録:2012/01/12 12:48:41
  • 終了:2012/01/19 12:50:03

回答(2件)

id:taknt No.1

きゃづみぃ回答回数13481ベストアンサー獲得回数11982012/01/12 12:54:40

http://www.atmarkit.co.jp/fwin2k/win2ktips/1368taskw7/taskw7.html

定期的に実行させるならば タスク・スケジューラーを用いたらいいでしょう。

id:SALINGER No.2

SALINGER回答回数3430ベストアンサー獲得回数9692012/01/13 11:10:49

完全自動化するとしたら、毎週火曜日に送られて来るデータの正確な日時やファイル構成、送られてくる場所などの情報に規則性が無いと、スケジュールとして組むことは難しいかと思います。
 
私が自動化するとしたらざっと次のような物を考えます。
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

パスが渡れば作成済みのプログラムで使うことができます。
気をつけることは解凍からプログラムの実行を自動で行う場合、解凍の同期処理が必要であるということ。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません