人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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


●質問者: CGQKJ-VP4D7
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ

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

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


2 ● SALINGER

完全自動化するとしたら、毎週火曜日に送られて来るデータの正確な日時やファイル構成、送られてくる場所などの情報に規則性が無いと、スケジュールとして組むことは難しいかと思います。

私が自動化するとしたらざっと次のような物を考えます。
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.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ