• ベストアンサー

Excelマクロ 自動実行

マクロをつかって指定時刻になったら、自動でマクロを起動させたいのですが、どうしたらいいですか? 毎日0:00にあるデータをコピーしてディレクトリを変更したいのです。

質問者が選んだベストアンサー

  • ベストアンサー
  • spnlight
  • ベストアンサー率46% (15/32)
回答No.5

4です。余計な処理をさせてるので、こちらを :/ここから SET DT=%date:~-10% SET FNAME=%DT:~5,2%%DT:~8,2% MOVE C:\from\MEAS.TXT C:\to\MEAS%FNAME%.txt :/ここまで(空白はすべて半角です) 西暦+月+日+時+分+秒のときは :/ここから SET DT=%date:~-10% SET TM=%time:~-11% SET hh=%TM:~0,2% SET /a hh=%hh%+0 SET hh=00%hh% SET hh=%hh:~-2% SET FNAME=%DT:~0,4%%DT:~5,2%%DT:~8,2%%hh%%TM:~3,2%%TM:~6,2% MOVE C:\from\MEAS.TXT C:\to\MEAS%FNAME%.txt :/ここまで(空白はすべて半角です)

water18
質問者

お礼

度々、ありがとうございます。

water18
質問者

補足

ファイル名が変わらずにMEAS.TXTのままなのですが どうすればいいでしょうか?

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 #3さんのご指摘のとおり、UWSC では、ファイル名の決め方とかは、スクリプトを書かなくてはなりませんが、VBAよりは、もう少し複雑な動きが可能ですね。ただ、マクロを組める人なら、簡単に、VBScript は書けるはずです。以下のコードはすぐに読めると思います。 >毎日0:00にあるデータをコピーしてディレクトリを変更したいのです。 なぜ、データのコピーで、Excelが出てくるのでしょうか?時間設定なら、VBSCriptなどを、タスクに入れればよいと思います。 >それとファイル名を毎回変えたいのですが >(例、MEAS01.TXT、MEAS02.TXT、...) ご質問のmeas01.txt の枝番が増えるというは、元の名前が同じで、枝番を増やすということなのか、はっきりしませんが、Excelを使わなくても、単に、メモ帳で、適当な名前を付けて、拡張子に、vbs を付ければよいのではありませんか。 ただし、元ファイルの決め方をどのようにしているのか、ご質問の内容では分かりません。元ファイルを探すのか、それとも、決められているのか、ということです。ここでは、いつも同じ名前で、元ファイルは決められたものとします。 なお、最初、MoveFileも考えましたが、万が一を考えて、コピーしてから、削除にしました。 初歩的な内容ですが、こんな風に考えてみました。 ------------------------------------ ''FileCopy.VBS CONST SRCE ="C:\Documents and Settings\YOURNAME\My Documents\AFold\" CONST DEST ="C:\Documents and Settings\YOURNAME\My Documents\BFold\" CONST fBASE ="MEA" CONST fEXT =".TXT" i =01 'スタートの枝番,枝番がない場合は、"" とする Set objFS =CreateObject("Scripting.FileSystemObject") i = FormatNum(i) If objFS.FileExists(SRCE & fBASE & i & fEXT) Then orgFn =SRCE & fBASE & i & fEXT dstfn = DEST & fBASE & i & fEXT Do While objFS.FileExists(dstfn) i = FormatNum(i + 1) dstfn = DEST & fBASE & i & fEXT Loop Set mf =ObjFS.GetFile(orgFn) mf.Copy(dstFn) ObjFS.DeleteFile(orgFn) Else MsgBox "元のファイルがありません。" End If '書式変換 Function FormatNum(num) num =CLng(num) If Len(num) = 0 Then num ="" ElseIf 2-Len(num)>0 Then num = String(2-Len(num),"0") & num Else num = num End if FormatNum = num End Function

  • spnlight
  • ベストアンサー率46% (15/32)
回答No.4

>COPY A:****.xls C:\***\***.xls は、コピーで、移動なら MOVE [ドライブ:][パス]送りファイル名 [ドライブ:][パス]受けファイル名 をになります。 >それとファイル名を毎回変えたいのですが >(例、MEAS01.TXT、MEAS02.TXT、...) 予測すると、毎日あるファイルを別の場所に移動したい。尚且つ、ファイル名が一緒なので、上書きされると困るからファイル名を変更して、移動したい。 で、よろしいですか? よろしければ、連番では無く、日付を付与して保存するパターンでどうでしょうか? ANo.2さんのタスクでの実行に加え、実行するバッチファイルを以下の様に記述する。 例: 送りファイルはCドライブのfromフォルダのMEAS.TXTとします。 受けファイルはCドライブのtoフォルダのMEAS0806.TXTとします。 SET DT=%date:~-10% SET TM=%time:~-11% SET hh=%TM:~0,2% SET /a hh=%hh%+0 SET hh=00%hh% SET hh=%hh:~-2% SET FNAME=%DT:~5,2%%DT:~8,2% MOVE C:\from\MEAS.TXT C:\to\MEAS%FNAME%.txt :/ここまで(空白はすべて半角です) 私は、西暦+月+日+時+分+秒(20080826191637)の様にしてます。 その場合は、以下の様に変更です SET FNAME=%DT:~0,4%%DT:~5,2%%DT:~8,2%%hh%%TM:~3,2%%TM:~6,2% 以上 大きなお世話かも知れませんが、参考までに

water18
質問者

お礼

参考にさせていただきました。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.3

#1です。 すみません。 UWSCというアプリです。 http://www.vector.co.jp/soft/win95/util/se115105.html BATファイルを作成しては?と思ったのですが、対象とするファイル 名が、毎回異なる場合などは、対応しにくいので、ExcelVBAで 作成するか、VBSなどで記述されることをお勧めします。 VBSの場合は、VBSでプログラミングしたものをタスク マネージャーに登録するという手順になります。 VBSについては、 http://sapporo.cool.ne.jp/avg/vbs/vbs01.html

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>毎日0:00にあるデータをコピーしてディレクトリを変更したいのです。 エクセルで処理せずに  タスクマネージャー で実行する時間とファイル名(****.BAT)を設定しておく  全てのプログラム アクセサリ システムツール タスクスケジューラ で設定できます。 実行するファイルは バッチファイルを作成しておく  メモ帳などで作成します  COPY A:****.xls C:\***\***.xls とか記述して ファイル名に ***.BAT と拡張子を.BAT と指定しておくと MS-DOSのコマンドで実行されます。 DOSのバッチファイルに代わりにエクセルでマクロ Private Sub Workbook_Open() ・・・ End Sub に記述しておく方法もありますが。 の2つ設定が必要です(エクセルを起動しておく必要がありません。パソコンは立ち上げておく必要はありますが)

water18
質問者

補足

ファイルを切り取って移動する場合はどうなるのでしょうか? >COPY A:****.xls C:\***\***.xls コピー ファイル名 コピー先ファイル名 という解釈でよろしいのでしょうか? それとファイル名を毎回変えたいのですが (例、MEAS01.TXT、MEAS02.TXT、...) できますでしょうか?

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

http://www.vector.co.jp/magazine/softnews/060627/n0606273.html​ キー操作・マウス操作を記録させ、指定した時間に再生できます。 有料版もありますがフリー版で十分使えます。 Excelのマクロの記録のようなもので、上記ソフトでも再生時刻の指定 はできますが、Windows標準のタスクマネージャーに登録して実行する ことも可能です。

water18
質問者

補足

リンク切れのようですが… なんという名前のソフトですか?

関連するQ&A