• ベストアンサー

決められた時間毎に処理を行うってできますか?

Excelで、決められた時間ごとに処理を行うことは、できないでしょうか? 例えば、30秒経過したら、セルの内容をほかのシートに移して、セルをクリアにし、また30秒経過したら、同様な処理を行う・・というような。 AccessのForm_Timer()のような関数を探してます。

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

  • ベストアンサー
  • NCU
  • ベストアンサー率10% (32/318)
回答No.1

OnTime メソッドで何の問題もなく処理できます。

chikako091
質問者

お礼

ありがとうございます。問題解決しました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

ループからどうやって抜け出すかが問題ですがExcel2002なら Application.Wait 30 ’秒 ’処理 や Time と Timer を組み合わせるとか・・・ どの方法がCPUの使用率を低く抑えられるかも ご検討ください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Timer関数の中のFor文の処理

    Timer関数とFor文の使い方について質問です。 例えばTimer関数のインターバルを1秒に設定をします。 そして、Timer関数の処理の中で5秒以上処理のかかるFor文を書いたとします。 その場合、Timerはスタートしてから1秒後にまた最初からFor文の処理を始めるのでしょうか。 それとも5秒以上処理のかかるFor文の処理が終わってから次のTimerの処理に移行するのでしょうか。 もしくは、1秒毎に新たに並列にTimerの処理がスタートして行くのでしょうか。 以上です。よろしくお願いします。

  • マイコンで経過時間のカウント

    マイコンで所定時間経過したかどうかを判断するとき、 下記の2パターンがあると思います。 例えば、マイコンで有名なR社さんのマイコンセミナーでは②で説明していました。 私は②に慣れています。 お互いのメリットデメリットを教えてください。 また、どちらがおすすめなのでしょうか? ①開始時間time1と現時間time2との差分で経過時間を判断する方法。  例えば、arduinoとかでのmills()関数を使用した方法。  time1 = mills();  /*何らかの処理*/  time2 = mills();  time_diff = time2 -time1; /*経過時間*/ ②ある変数timerを1秒ごとに減算して0になったかで判断する  例えば、1秒割込みで   if(timer > 0){ timer--; }  を実施し、  その後、   if(timer == 0){  で比較する。

  • VB2005 でLOOP処理を一定時間経過したら抜けさせる方法

    VB2005の初心者です。 標準モジュールで、Loop処理で一定時間経過したらLoopを抜ける処理を作りたいのですが、どうすれば良いのでしょうか。 Formではないため、System.Windows.Forms.Timerは使えません。 標準モジュールなので、System.Timers.Timer を使うのかと思ったのですが、Intervalで設定した時間が経過したことをどのように知ることができるのでしょうか。 ソースは下記のような単純なループです LtimTimer = New Timers.Timer LtimTimer.Interval = 60000 LtimTimer.AutoReset = False LtimTimer.Enabled = True Do If '設定時間が経過' Then Exit Do End If 反復処理 Loop '設定時間が経過' 部分に、どのように書けば良いのでしょうか。 何かヒントになるようなことでも良いので、 皆様の知恵をお借りできれば幸いです。 よろしくお願い致します。

  • エクセルの処理速度関係の質問です。

    エクセルの処理速度関係の質問です。 エクセルシート上、60万個程度のセルに関数を入れています、 それぞれの関数はVBAにより変数を変化させ、その都度再計算され、 結果を集計、集計結果もシー上へ表示しています。 セルが多い為、変数の変化回数が多いとそれだけ時間が掛かるのですが、 (数時間から数日) もしこれを、VBなどのプログラム内で行えば瞬時に計算されるのでしょうか? エクセルの関数が入っているシートがそのまま再現出来るのかどうかも不明で、 そのあたりも含めた質問なのですが・・。 よろしくお願いいたします。

  • 処理時間のカウント

    PHPで、とある処理からの経過時間を表示することは可能でしょうか? (例)  (1) 画面1で、ボタンを押し処理1開始。経過時間カウントスタート  (2) 画面2に遷移  (3) 画面3に遷移  (4) 画面4で、処理1開始から30秒経過していれば次の処理に進む 御存知の方、御教示いただければ倖いです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • マクロの処理速度が遅くなってしまいました

     今までエクセル2000を使用していたのですが、エクセル2003にバージョンアップして、以下の処理速度を検証したところ、処理が遅くなってしまいました。内容はsheet2にあるデータを変数に格納して簡単な計算をした後にsheet1に入力するということを5回繰り返し、それぞれの処理にかかる時間をsheet3に表示するというものです。 Sub タイム計測()   Dim myStart As Single, myGoal As Single   Dim j As Integer   Application.ScreenUpdating = False   Sheets(1).Select   Cells.Clear     For j = 1 To 5       myStart = Timer         Call サンプル       myGoal = Timer - myStart       Sheets(3).Select       Cells(j, 1) = myGoal       Sheets(1).Select     Next     Sheets(3).Select   Application.ScreenUpdating = True End Sub Sub サンプル()   Dim i As Integer, j As Integer   Dim Data As Variant, KeKKa(1 To 2000, 1 To 199) As Variant   Data = Range(Sheets(2).Cells(1, 1), Sheets(2).Cells(2000, 199))   For i = 1 To 2000     For j = 1 To 199       KeKKa(i, j) = Data(i, j) + Data(i, j)     Next   Next   Range(Cells(1, 1), Cells(2000, 199)) = KeKKa End Sub エクセル2000のときは1回当り平均して概ね0.7秒位で処理していたのですが、エクセル2003にすると1.4秒位かかってしまいます。処理速度が遅くなってしまうとバージョンアップした意味がないのですが、原因や改善策があればどなたか教えていただけないでしょうか?よろしくお願いします。

  • sheetの比較処理

    (条件)エクセルでsheet1、sheet2とsheet3があります。 なおsheet3はsheet1のコピーです。 (処理)  sheet1、sheet2を(100行×7列)の範囲で各セルを比較し、 もし内容が違うのであれば、対応するsheet3セルを黄色で色付けしたい。 処理どうすればいいか。以上宜しくお願いします。

  • 経過時間を表示したい

    エクセル2000を使用しています。 1つの作業の始まりから終わりまでの経過時間を算出して、1ヶ月ごとに平均経過時間を表示させるようにしたいのですが、どのような関数を使用したらいいのかわかりません。どうぞ、教えてください。 例えば、 始まり(セルA2)2002/7/29 16:49  終わり(セルB2)2002/8/1 10:24(日付が変わってしまう場合) 始まり(セルA3)2002/8/6  10:07 終わり(セルB2)2002/8/6  13:41(同日の場合) 平均を求める関数は、単純にAVERAGEでよいのでしょうか。 なお、マクロの知識は全くありませんので、エクセルの関数で教えていただけるようお願いします。

  • 処理時間の計測中に、任意の時間が経過してしまったら、警告表示を行いたいですが、方法が分からないでいます

    C++で、 ある処理の実行に要する時間の計測を行う ソースを書いていたのですが、 時間の計測を開始してから、 3秒以上が経過してしまった場合にのみ、 処理の進行状況に関わらず、 「3秒経過済み」と表示してあげたいと思っていましたが、 時間の計測を、 「difftime」などで表示する方法は分かったものの、 処理の実行中に、3秒以上経過したら、 取り合えず、「3秒経過済み」と表示させる方法が 分からないでいます。 何かアドバイスいただけるとありがたいです。 宜しくお願い致します。 ====================== time_t start, end; time( &start ); //計測開始 //処理が実行される //処理時間の計測中に「最初の3秒が経過してしまった場合」にのみ「3秒経過済み」と表示してあげたい time( &end );//計測終了 ======================

  • 処理時間により、その後の処理の分岐をしたいのですが

    PHPスクリプト内にて、ある処理が例えば30秒以上かかった場合は、その瞬間にexit()やエラーをecho()というような 実装をしたいと思うのですが、どのように書けばいいのか思いつきません。 function hoge() { /* 処理内容 */ //α return $foo; } $foo = hoge(); //β があった場合、どこに、どのように書けばいいのでしょうか? 簡単に書けば、 $time = time(); if(time() - $time >30) { echo "時間超過"; } のような時間的処理分岐を入れたいと思うのですが。 αやβの前に$time = time();を置いたとしても、αの"処理内容"やβの関数実行の後にif(){}節を入れることになるので、 逐次処理のせいで、処理が15分かかった後とかにエラー出力とかになってしまいます。 自分は、何かをスクリプト中で実行し、その処理が30秒を超えた場合はエラーを出したいと考えております。 上記のような分岐方法でなくてもいいのですが、どのように書けばいいのかアドバイス頂けないでしょうか?

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • ボールベアリングを水中で使用しても問題ありませんか?
  • 水中で使用できる適したベアリングはありますか?
  • 水中でのベアリング使用についてご相談です。
回答を見る

専門家に質問してみよう