- ベストアンサー
決められた時間毎に処理を行うってできますか?
Excelで、決められた時間ごとに処理を行うことは、できないでしょうか? 例えば、30秒経過したら、セルの内容をほかのシートに移して、セルをクリアにし、また30秒経過したら、同様な処理を行う・・というような。 AccessのForm_Timer()のような関数を探してます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
関連するQ&A
- Timer関数の中のFor文の処理
Timer関数とFor文の使い方について質問です。 例えばTimer関数のインターバルを1秒に設定をします。 そして、Timer関数の処理の中で5秒以上処理のかかるFor文を書いたとします。 その場合、Timerはスタートしてから1秒後にまた最初からFor文の処理を始めるのでしょうか。 それとも5秒以上処理のかかるFor文の処理が終わってから次のTimerの処理に移行するのでしょうか。 もしくは、1秒毎に新たに並列にTimerの処理がスタートして行くのでしょうか。 以上です。よろしくお願いします。
- ベストアンサー
- Visual Basic
- マイコンで経過時間のカウント
マイコンで所定時間経過したかどうかを判断するとき、 下記の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){ で比較する。
- ベストアンサー
- C・C++・C#
- 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 '設定時間が経過' 部分に、どのように書けば良いのでしょうか。 何かヒントになるようなことでも良いので、 皆様の知恵をお借りできれば幸いです。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- エクセルの処理速度関係の質問です。
エクセルの処理速度関係の質問です。 エクセルシート上、60万個程度のセルに関数を入れています、 それぞれの関数はVBAにより変数を変化させ、その都度再計算され、 結果を集計、集計結果もシー上へ表示しています。 セルが多い為、変数の変化回数が多いとそれだけ時間が掛かるのですが、 (数時間から数日) もしこれを、VBなどのプログラム内で行えば瞬時に計算されるのでしょうか? エクセルの関数が入っているシートがそのまま再現出来るのかどうかも不明で、 そのあたりも含めた質問なのですが・・。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- マクロの処理速度が遅くなってしまいました
今までエクセル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秒位かかってしまいます。処理速度が遅くなってしまうとバージョンアップした意味がないのですが、原因や改善策があればどなたか教えていただけないでしょうか?よろしくお願いします。
- ベストアンサー
- Visual Basic
- 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 );//計測終了 ======================
- ベストアンサー
- C・C++・C#
- 処理時間により、その後の処理の分岐をしたいのですが
PHPスクリプト内にて、ある処理が例えば30秒以上かかった場合は、その瞬間にexit()やエラーをecho()というような 実装をしたいと思うのですが、どのように書けばいいのか思いつきません。 function hoge() { /* 処理内容 */ //α return $foo; } $foo = hoge(); //β があった場合、どこに、どのように書けばいいのでしょうか? 簡単に書けば、 $time = time(); if(time() - $time >30) { echo "時間超過"; } のような時間的処理分岐を入れたいと思うのですが。 αやβの前に$time = time();を置いたとしても、αの"処理内容"やβの関数実行の後にif(){}節を入れることになるので、 逐次処理のせいで、処理が15分かかった後とかにエラー出力とかになってしまいます。 自分は、何かをスクリプト中で実行し、その処理が30秒を超えた場合はエラーを出したいと考えております。 上記のような分岐方法でなくてもいいのですが、どのように書けばいいのかアドバイス頂けないでしょうか?
- ベストアンサー
- PHP
お礼
ありがとうございます。問題解決しました。