• ベストアンサー

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

  • 毎日指定時刻に自動でエクセルを開き、マクロを起動する方法

    <前提条件> ・パソコンを常に起動している(シャットダウンはしない) ・TEST.xlsにマクロ作成済 <お聞きしたいこと> ・毎日指定時刻(15:30)にTEST.xlsを開き、登録されている  マクロを自動で実行したい <私の考え> ・TEST.xlsに下記マクロを登録しようと思っております。  ただ、下記だけですと、「指定時刻にエクセルを開く」と、  「毎日指定時刻に自動でマクロを実行する」ことができません。  あまりマクロについて知識がないため、ご教示のほどよろしくお願いいたします。 Sub 指定時刻にマクロを実行する() Application.OnTime TimeValue("15:30:00"), _ "MSGBOX", _ TimeValue("00:00:30") End Sub Sub MSGBOX() msgbox"TEST" End Sub 

  • アプリケーションを自動実行してくれるソフト

    指定時刻に指定アプリケーションを起動するだけのソフトはいろいろ あるようですが、指定時刻に指定アプリケーションを起動し、 アプリケーション内のメニューパス(例:ファイル→新規作成→保存) を登録しおいて(エクセルのマクロみたいに)特定の機能を自動実行できる フリーソフトってあるでしょうか? もし、ない場合、なにか代替案があるでしょうか? 教えてください。

  • マクロの自動実行などについて

    エクセル2003のVBAマクロについて質問です あるワークシートに値が入力されたら、マクロを自動実行するように出来ないでしょうか? 又、そのセルの値を別のセルにコピーしたいのですが、データを入力する度にセルの場所が ひとつ下へずれます。この最終列のセルの値を必ず拾うようにするにはどうすればよいでしょうか? ややこしくてすいません

  • 【エクセル】マクロの自動実行

    エクセル2003を使用しています。 例)セルH4に名前が入力された時に、 今まで「Ctrl + Q」で起動していたマクロを自動実行 出来るようにしたいのです。 上記のような動きをしてくれ関数ないしマクロを知っている方が 居ましたら教えてもらえないでしょうか?

  • エクセルでマクロを自動的に実行

    表題の通りなんですが、エクセルで、あるセルに指定された数値(語句)が入った場合に、それを自動的に感知して実行するマクロがあればと思うのですが、そういったことってできるのでしょうか。 具体的には、  1、バーコードリーダーで数値をセルに入力  2、その数値に対応する名前をvlookup関数にて表示  3、その名前が入力された時点でマクロが自動的に実行 と言うものです。  3の部分がよく分からずに困っています。できるかどうか分かりませんが、もしできるようであるならその方法を教えていただければありがたいです。どうか、よろしくお願いします。

  • マクロの自動実行について

    マクロの自動実行についてお伺いします。 今、エクセルに一定のデータを貼り付けたら、(例えばナンバーを元に)自動的にソートされるマクロを作ろうとしてます。 以下流れになります。 **************************** 以下貼り付け(エクセル以外からの元データ) (プログラムの詳細は分かりませんが、エクセルなどにコピペできるものらしいです。) 1|Aさん 3|Bさん 2|Cさん ~ N|XXさん ↑をエクセルをシートに貼り付けしたら、別シートにソートされて 1|Aさん 2|Cさん 3|Bさん ~ N|XXさん という表が出来上がる。 **************************** 自動実行だとworksheet_changeというイベントがあるようですが、特定の範囲なりセルなりが指定されてる場合にいきる処理のように見えます。 そんなに広範囲ではないことは予想できますが、はっきりとしたデータの範囲も量も分からない場合、ループで範囲を覚え、それをソートするのがいいのでしょうか。 ちょっと質問が曖昧な気もしますが、アドバイスお願いします。

  • WindwsXPでスクリプトを自動実行したい

    MS-DOSの時代は、BATファイルというのがあって、指定時刻にコマンドを自動実行することができましたが、WindwsXPでそのようなことをするフリーソフトはありますか?ご存知の方、紹介してください。やりたいのは次のことです。 毎日指定時刻に指定のフォルダを指定の場所に上書きコピーする。 よろしくお願いします。

  • エクセルマクロについて

    いつもお世話になっております。 エクセルのマクロについて質問させていただきます。 仕事上測定した10回データを、エクセルで計算させ平均やσ出すという処理を毎回しているのですが、測定したデータというのが、csvファイルで10個できあがり、それを一つずつ開いては貼っての繰り返しをしています。 この作業をマクロで自動的に出来ないものかと思い質問させていただきました。 装置によって毎回.csvの前のファイル名が変る恐れがあるので、csvファイルの入っているフォルダ(ディレクトリを指定)を指定し、その中にあるcsvファイルを自動的に貼る事が出来る事が理想です。 VBAではこのような処理のサンプルプログラムがあるのですが、VBAはあまり解らないので出来ればマクロの記録からできればと思います。 宜しくお願い致します。

  • マクロの自動実行

    会社のパソコンで毎朝使うエクセルがあるので、そのエクセルはスタートアップに入れております。 実際にはそのエクセルの中でマクロを実行するのですが、スタートアップではエクセルが立ち上がるだけで、マクロまで自動で実行してくれるものではありません。 エクセルが立ち上がると同時に指定のマクロプログラムが走るように…なーんてことができるのでしょうか?? どなたか教えてください。よろしくおねがいします。

  • Excelでマクロを自動実行する方法

    Excelでマクロを起動時に自動実行する方法を教えて下さい。

専門家に質問してみよう