• ベストアンサー

毎日指定時刻に前日の内容をコピーする

ExcelVBAで手入力し忘れた場合、毎日指定時刻(17:00:00)に前日のセル内容をコピーしたいのですがお解りになる方よろしくお願いします。 1月1日、1月2日は手入力してますが、1月3日当日17:00:00までに入力し忘れた場合(空白)自動マクロで1月2日の内容をコピーし、毎日当日の同指定時刻になればマクロ実行に設定したいのですが。

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

  • ベストアンサー
noname#212058
noname#212058
回答No.1

『毎日指定時刻になったらマクロを動かす』のには Windows のタスクスケジューラを使います。 http://www.siminpc-kitakyushu.com/index.php?QBlog-20141029-1

kuma0220
質問者

補足

できればVBAコードを入力して自動実行したいのですが。

その他の回答 (2)

回答No.3

こんにちは。 >できればVBAコードを入力して自動実行したいのですが。 ふつうは、タスクスケジューラーで、オートメーションにして組みますが、そうでなければ、OnTimeメソッドを利用します。ただ、Excelは開きっぱなしになりますが、できないわけではありません。 しかし、私自身などは、手動でタスクスケジューラーを設定しますが、コマンドプロンプトのATコマンドを使うことも可能です。その時に、現在開いているExcelとぶつからないために、Excelとは別にオートメーションにして、立ち上げた時に、マクロ(モジュール)を呼ぶようにしてます。標準モジュールが分離してしまうはずですから、ThisWorksheetなどのオブジェクトモジュールにするか、コードを呼び出しするか、どちらかに作ります。 ですから、バッチよりも、VBScriptなどで、立ち上げ自体はプログラムをくんだほうが安全です。 手数は複雑に見えますが、わかっている人なら、意外に簡単に出来てしまいます。 問題点は、ほとんどありませんが、土日や祭日は動かないようにすることも必要です。(パソコンが動いている限りですが。) スケジュール(タスク)を登録する http://officetanaka.net/other/extra/tips14.htm なお、文末の田中氏の疑問は、Userと管理者モードの違いだと思います。実行ファイルは、Excelファイル直接ではなく、VBScriptで組んでしまえば、まったく問題は出ません。

kuma0220
質問者

お礼

ありがとうございます。

noname#212058
noname#212058
回答No.2

回答No.1です。 > できればVBAコードを入力して自動実行したいのですが。 VBA コードだけでやりたいという話であれば簡単です。 VBA にはタイマー機能はありませんので『できません』。 タイマー機能は VBA 以外で対応する必要があります。

kuma0220
質問者

お礼

ご教授ありがとうございました。

関連するQ&A