• ベストアンサー

VBAを時間指定で自動実行

就業時間内(9時~6時)でエクセルVBAを指定時間に自動実行させたいです。 エクセルはパソコン起動した朝に、開いておきます。(バックグラウンド) 指定時間になったらVBAを自動実行させたいのです。 指定時間は例えば、 10時11分 10時16分 10時21分 などです。最初の時間から5分間隔で実行。 こういう事はできるのでしょうか?VBAでできるのか? それ以外の方法があるのか?よくわかりません。 詳しく教えてください。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

たとえば、こんなことか。 下記は、1度testを実行すると、15秒たつとtest1を実行し、以後10秒ごとにtest2を実行するというもの。 test1もtest2も単にmsgboxを表示するだけ。 Dim gotime1, gotime2 Sub test() gotime1 = Time + TimeValue("00:00:15") gotime2 = gotime1 Application.OnTime gotime1, "test1" gotime2 = gotime2 + TimeValue("00:00:10") While gotime2 < gotime1 + TimeValue("00:01:00") Application.OnTime gotime2, "test2" gotime2 = gotime2 + TimeValue("00:00:10") Debug.Print gotime1, gotime2 Wend MsgBox "start " & Time End Sub Sub test1() MsgBox "test1 " & Time End Sub Sub test2() If Time >= gotime1 + TimeValue("00:01:00") Then MsgBox "end " & Time Else MsgBox "test2 " & Time End If End Sub

sumi3377
質問者

お礼

タスクでパソコン起動時に実行させているのですが、 以後、5分とか10分ごとにVBAを起動させる方法がよくわかりませんでした。 なんとか、これでいけそうな気がします。 ありがとうございます。 今、作っているVBAはとても難しいので、また質問させてもらうかも知れませんが、その際には、よろしくお願いします。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

質問者はVBAがどれだけの技量かわからないが、VBAでも上級の課題で、自分で色々調べて勉強してやってください。 Googleで「on time VBA」「Timer VBA」などで調べること。 ーー 時間指定で起動をかける、既製のソフトを探しては、どうでしょう。 Googleで「時間指定 起動 ソフト」「時間間隔 指定 起動 ソフト」で照会。 ーー 普通は質問のようなことしません。

sumi3377
質問者

お礼

勉強してやらなくては。。。と思っているのですが、 自分の正規の仕事以外の仕事で上司命令でやっているので、 勉強する時間がなかなかできません。 OKWaveは、その様な人のためにもあるサイトですよね? タスクでVBAを起動させることはすでにやっているのですが、一定間隔でどの様にやればいいのか?がよくわかりませんでした。 質問の様な事はしませんと言われましたが、業務で行っているこちらの会社は普通じゃないのでしょうか?

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.3

VBAのプログラムが稼動し続けることが条件なので、「VBAの操作」で 対応するのは得策ではありません。 実行するVBAの処理ですが、どんな内容でしょう? つまり、継続性が重要かどうかです。手動で実行する場合に、毎回 エクセルを閉じても問題ないですか?以前の実行状況を変数に保持 しているとなると、閉じられませんよね。 この条件によって、解決方法も変わります。

sumi3377
質問者

補足

ブラウザのフォームに各支店・営業マンに指示を送付するVBAになります。エクセルのシートに記載してある文章を、一定時間にフォームへ書き込むVBAです。現在、パソコン起動時(就業開始時)に自動実行(タスクで実行しています)、それ以外は事務の人がフォームに入力して指示を出していますが、面倒なのでVBAで自動で一定時間の間隔を於いて フォームに書き込みたいと思っています。 VBAを就業時間内(9時~6時)まで自動で動かしたいので、 バックグラウンドで開いておかないといけないと思っていましたが、 エクセルを閉じても、指定時間で自動で実行できるのでしょうか?

  • miyuyu
  • ベストアンサー率61% (30/49)
回答No.2

こんにちは OnTimeメソッドとか

  • dr-9
  • ベストアンサー率47% (24/51)
回答No.1

スタート→コンパネ→タスクで時間指定の起動が出来ます。

関連するQ&A

  • VBA 再実行

    エクセルVBAでループによる以下のような定期実行を行っています。 >1時間に一度株価のデータを取りに行きます。 >データ取得後、他のPCに(VBAでソフトを起動させて)アップロードします。 *このアップロードの時に、ソフトが別の処理をしていると起動しません。 VBAで起動はさせるものの、ソフトが実行しないという状態になります。 そこで、一度行った処理を時間をおいて再度実行させたいのです。 できれば、30秒後と1分後に2回再実行するというようにしたいと思っています。 どなたか、お力添え頂けませんか

  • 指定した時刻と時間間隔を表示するVBA

    'カレンダーフォームのVBA If Intersect(Target, Range("BP1")) Is Nothing Then Exit Sub If MsgBox("日付を記入するためカレンダーを表示させます、よろしいでしょうか?", vbYesNo) = vbNo Then Exit Sub Else End If ' カレンダーフォームを起動する Call ShowCalendarFromRange2(Target) End Sub セルBP1を選択するとあらかじめ作成していたカレンダーフォームが起動され指定した日付を選択出来るVBAが入っています。 質問ですがカレンダーで日付を選択した後に直ぐinput boxを使用し「指定した時間(〇〇:〇〇)を入力して下さい。」と表示させ、指定した時間をCO14に表記させます。(例えば8:00と入力したらCO14に8:00と表示される様にします。) 次にもう一度input boxを使用し今度は「先ほど指定した時刻からの時間間隔(〇〇分)を入力して下さい。」と表示させ、CO15~CO37に指定した時間間隔を自動で表示させます。(例えば5分と入力したらCO15には8:05、CO16には8:10・・・とinput boxでしていた時間間隔を自動で表示させます。) この様なVBAはどの様にすれば宜しいでしょうか?

  • excel VBA 自動入力

    excel VBA 自動入力 こんにちは excelから現在バックグランドで開いているアプリケーションやWebブラウザのフォームなどに excelの値をVBAで入力するにはどのような指定の仕方をしたらよいでしょうか? 指定方法としては、"Alt+Tab"を1回押した時にアクティブになる部分、 つまり、作成予定のexcelファイルをアクティブにする直前にアクティブだった入力フォームへ 入力するという指定がしたいです。 どうかご教示お願いします。

  • エクセル2007です。セルの塗りつぶしを自動に実行するVBAについて、

    エクセル2007です。セルの塗りつぶしを自動に実行するVBAについて教えてください。システム日付でVBAを使用したいのですが横軸に日付(2010/1/1~2015/12/31)、縦軸に時間(0~24まで)があるシートです。日付と時間がマッチしたところのセルを緑色に塗りつぶしたいと思います(スケジュール表を作成中です)。VBA初心者ですが、記述等教えていただきたいと思います。よろしくお願いします。

  • AccessVBAで実行時間を指定するには

    よろしくお願いします。 VBAで指定した時間に処理(関数)を呼び出すという事がしたくて色々調べていたらApplication.Ontime というやつでなんとかできそうだとメドが立った ・・・つもりでいたのですが、どうやらこれはExcelの機能のようでした。 参照設定でエクセルのオブジェクトライブラリをチェックしたらAccessVBAで  >Excel.Application.Ontime 待ち時間, コマンドA と記述することでひとまず実行予約的な事まではできたのですが、 指定時間になると「コマンドAが見つかりません」 というエラーメッセージが出てしまいます。 おそらくエクセルのマクロを実行しようとして「見つからない」と言われているのでは無いかと考えています。 長くなりましたが質問は、上記のようなコードで、Accessのマクロ(関数)を呼び出すにはどうすれば良いのでしょうか? よろしくお願いします。 上記の前提が勘違いの場合は併せてご指摘頂ければ幸いです。

  • マクロを指定時間に自動で実行させるのは

    よろしくお願い致します。 マクロを指定した時間に自動的に実行させることは 可能でありますか? 別件ですが あるマクロを実行させていろいろ計算を させて その結果を別のブックを作って名前をつけて 保存してそのブックは自動的に閉じさせています。 さらに大元のマクロがあるブックも 自動的に 終了(閉じる)させることは可能でしょうか? 文章がつたなくて申し訳ないですが よろしくお願いします。

  • エクセルファイルを開いた時にVBAを自動実行させるには??

    こんにちは。いつもお世話になっています。 エクセルで作ったファイルを開いた時に、VBAを自動実行させたいのですが、どうすれば良いのでしょうか? 自分なりに調べたのですが、メッセージボックスを出す方法しかわかりません・・・。 別にVBA名を入れてもさっぱりダメです。 どうぞよろしくお願いします。

  • Windows2000 で指定した時間後にコマンドを自動実行する方法

    指定した時間後に、あるコマンドを自動実行する方法を教えてもらえない でしょうか。コマンドラインで実行できる方法限定です。 フリーソフト利用でもOKです。OSは Windows2000 Professional です。 宜しくお願いいたします。 (例)10分後に、コマンド "abc.exe para1 para2" を自動実行する。

  • 指定時間に自動実行

    いつもお世話になっております。 早速ですが、 OFFICEXP EXCELでデータを更新するプロシージャを指定時間に実行させたいのですが、どのようにしたら良いのでしょうか。 Ontimeを使用してみたのですがまったく動きません。 Sub Ontime() Object.OnTime earliesttime:=("10:30:00"), procedure:="オートシェイプ28_Click", schedule:=True End Sub 超初心者なのでよろしくお願いします。

  • EXCEL VBA 自動でプログラムの実行できますか

    EXCELのVBAでタイマー等を使用して一定の時間がきたら プログラムを実行させたいのですが、教えて下さい。 宜しくお願いします。

専門家に質問してみよう