プロが教える店舗&オフィスのセキュリティ対策術

Sub データー削除()
Sheets("Sheet2").Select
Rows("3:17").Select
Selection.ClearContents
Range("A1").Select
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
データーAというエクセルBOOKに
上記の単純なマクロが組み込まれています
このBOOKは普段は常に閉じている状態です
このBOOKがAM0:00に自動で開いて上記のマクロの実行できるように
するにはどの様にしたらいいでしょうか?
on timeとかいう方法を使うらしいでんすが使い方がよくわかりません

A 回答 (3件)

Windowsのタスク機能を使うのが一番早いかと思います。


BOOKか通常は閉じているような場合は特に。

Windowsのバージョンによって多少異なりますが、
XPであれば、コントロールパネルのタスク
→スケジュールされたタスクの追加で決まった時間に
自動でプログラムを起動させることが出来ます。
    • good
    • 0

こんにちは。



最初にExcelでは、終了してしまったら、OnTimeの自動実行はできません。
それと、以下のように、オートメーション・オブジェクトで作らないと、万が一にもその時間Excelを開いているときには、エラーを起こしてしまいます。

最初に以下のコードをメモ帳置いて、例えば、MYEXCEL.VBS など、拡張子を vbs にして、適当なフォルダに保存します。

Const fn = "D:\Test01.xls"
On Error Resume Next
Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open fn
If Err.Number = 0 Then
xlApp.Visible = True
End If
Err.Clear
On Error GoTo 0
Set xlApp = Nothing

'(このコードは、絶対に全角空白は入れてはいけません。ハングします)

次に、Excelの該当するブックのThisWrobkook に以下のように入れます。

Private Sub Workbook_Open()
 Call データ削除
End Sub


'以下は少し内容を書き換えました。前のコードですと、誤動作の恐れがあります。

Sub データー削除()
With ThisWorkbook
 .Sheets("Sheet2").Select
 Rows("3:17").ClearContents
 Range("A1").Select
 .Save
 .Close
End With
End Sub

次に、メモ帳で登録した、MYEXCEL.VBS を
[スタート]--[パフォーマンスとメインテナンス]--[タスク]
スケジュールされたタスクの追加

タスクウィザードで、[次へ]で、[参照]で、
MYEXCEL.VBS
を選んで、タスクの設定を適当にしてください。
    • good
    • 0

(1)OnTimeは、このコードが入っているVB,VBAのユーザープログラムが実行されていて、時間が来れば実行するという、まあ身内が寝ずの番で働いているようなものです。


TimerやOnTimeでGoogleででも照会して、適当なものを探すこと。または"指定時刻実行"などで照会。
(2)こういうものはOSにそういうことが出来る仕掛けが作ってあって(タスク管理の一分野)それを使うのがよいでしょう。
(3)上位でプログラムを実行させるUWSCのようなソフト
http://blogs.yahoo.co.jp/uwsc_script/5321840.html
(4)またソフトの定時実行の機能があるのを採り上げた(売りにした)既製ソフト(出来ればフリー)を使う
(4)辺りの方法がよいのでは。
初心者がこの種のプログラムをやるのは無理で、VBAぐらいのプログラム勉強中のレベルでは、相当経験をつんでからやるべきことでしょう。プロ(業者)に相談するようなことだと思う。
質問の例
Sub test01()
Application.OnTime Now + TimeValue("00:01:00"), "test02"
End Sub
Sub test02()
MsgBox Now()
End Sub
1分後にTest02を実行し、その時刻を表示する例。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!