• ベストアンサー

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

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

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

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.3

#2補足へのレスです。 まずはこの辺りを参考に、タスクスケジューラでExcelを起動する設定にしてみてください。 http://www.atmarkit.co.jp/fwin2k/win2ktips/335tasksched/tasksched.html (OSによって違うかもしれません。VISTAはわかりませんm(_ _)m) その後、設定したタスクの[プロパティ]の[タスク]タブの「実行するスケジュール」欄に EXCEL.EXE "C:\work\book1.xls" などというように、起動したいxlsファイル名を ドライブ-フォルダ-からのフルパスで指定してあげると良いです。 もしくは、タスクではExcel起動だけにして、 目的のファイルをStartupフォルダに置いて、Excel起動時に必ず開くようにしても良いです。 2000/xp系のOSなら通常は C:\Documents and Settings\(ユーザー名)\Application Data\Microsoft\Excel\XLSTART というフォルダになります。 あとは、その目的のファイルが開かれた時に、マクロが自動実行されるように ThisWorkbookモジュールの Workbook_Open イベントを使うか、 標準モジュールに Sub auto_open () プロシージャを記述して使うか、などです。

その他の回答 (2)

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.2

こんにちは。 OnTimeメソッドのほうかもしれませんね。ニーズにあわせて判断してみてください。 内容はヘルプで確認したほうが良いでしょう。 Sub testA()   Dim d As Date      d = DateAdd("s", 5, Now)   Call Application.OnTime(EarliestTime:=d, _               Procedure:="testB") End Sub Sub testB()   MsgBox "testB" End Sub #当然の事ですが、OnTime時にExcelが起動していないと実行されません。 #Excel起動から制御したい場合はOSのタスクスケジューラなどを使用する事になるかと。

hornet042
質問者

補足

ご回答ありがとうございました。 このタスクスケジューラの使用方法を教えていただけますか。

  • mohenjo
  • ベストアンサー率37% (125/335)
回答No.1

現在より10秒経てば Application.Wait(Now + TimeValue("0:00:10"))  希望のコード(プログラム)

関連するQ&A

  • エクセルVBAでタイマーコントロールは使えますか

    エクセルVBAでタイマーコントロールは使えますか。 エクセルVBAで、ある時刻になったらマクロを実行させたいと思っています。 無限ループの中にTIME関数で時刻を呼び出し、それをIF文で判定して、 一定時刻にマクロを実行させるものは作りましたが、CPU負荷が高く、24時間 連続で動作させることに不安を感じています。 この他に、VBのタイマーコントロールのような機能を持つオブジェクトや 便利機能等があったら教えていただけませんか。 (一応、VBで時刻管理をするプログラムを作ってそこからエクセルVBAを呼 び出す方法やタスクスケジューラでエクセルVBAを呼び出す方法、ATコマンド 等も考えていますが、可能ならエクセルVBAで閉じて処理をしたい)。 尚、私はWindowsMe+エクセル2000でVBAを作成しています。 実際にVBAを動かすのは、WinsowNT4.0サーバー+エクセル2000を予定してい ます。

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

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

  • Excel VBA から外部プログラムを実行し結果を利用するには?

    Excel VBA から外部プログラム(例えば、Perl)を実行し、 その実行結果をVBAプログラム中で利用する方法を教えて ください。 より具体的にやりたいことを書きますと、 Perlでインターネット上の情報(数字)を取ってきて、 その情報をVBAで利用したいのですが。。。 よろしくお願いします。

  • VBAを実行しないと開けないエクセルファイル

    タイトルのようなエクセルファイルを作りたいです。 閲覧者がVBAの実行を認めない限り、閲覧不可にしたいのです。もし認めない場合はメッセージボックス等で「開くことができません」と表示され、エクセルが閉じるようにしたいです。 どのようなVBAのプログラムを組めば実行できますか?

  • Excel VBAで「プログラム実行」ボタンと「プログラム停止」ボタンをつけたい

    ExcelでVBAを使いアプリをつくっています。 プログラムを実行させるボタンはもちろんつくれるのですが、 プログラムを停止させるボタンをつくるにはどうしたら良いのかと悩んでいます。 ボタンに登録できるのはひとつのプロシージャですよね。 とすると「他のプロシージャを止める」プロシージャをつくらねばならないのでしょうか。とするとどうやって・・・?

  • エクセルを閉じる時のVBAのプログラム

    エクセルを閉じる時に実行するVBAのプログラムを記述する時は、 どのように記述すれば良いのでしょうか?

  • エクセルVBAでこのプログラムの作るには

    最近エクセルVBAを勉強し始めた初心者です。 エクセル上でコマンドボタンを押すとF12~H12にそれぞれ0~9の数字を一定時間回転させF12、H12、G12の順(左、右、真ん中の順)に時間差で0~9の乱数を発生させ表示させるには(パチンコのリーチみたいな感じ?)どのようなプログラムを組めばよろしいでしょうか? 数字を回転させ乱数を表示させるプログラムは For = i = 0 To 100  Range("●●").Value = Int(Rnd * 10) Next i です。 よろしくお願いします。

  • エクセルVBAが対応できるプログラムの大きさ

     エクセルVBAでプログラムの行数が2000行近くになるとプロシージャが大きすぎますとなり、実行できません。これには対処する方法はあるでしょうか。また、エクセル2013ではもっと大きなプロシージャにも対応しているのでしょうか。  よろしくお願いいたします。

  • VBAを時間指定で自動実行

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

  • 別のプログラムとして開いたエクセルをVBAコードでアクティブにする方法について

    すいません、エクセルVBAのことで質問があります。 使っているのはExcel2000です。 1 エクセルブック"A"を開く 2 当方で使用している業務用のアプリケーションを使いデータをエクセル形式で搬出   ⇒"AAA"とは別のエクセルプログラムとして"BooK1"が開かれる このとき、ブック"A"のVBAコードに Workbooks("Book1").Activate と記載しても実行時エラーとなってしまいます。 別のエクセルプログラムで開いたブックを指定してアクティブにするにはどのようなVBAコードを記載したらよろしいのでしょうか。 同じプログラムとして開ければ問題ないのでしょうが、 当方で使っているアプリケーションですと、データを搬出するときには必ず別のプログラムとしてブックが開かれてしまう模様で どうにも回避できません。 どうぞよろしくご教示願います。

専門家に質問してみよう