Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6779 / 13646 ツリー ←次へ | 前へ→

【43133】VBAにタイマーはあるのでしょうか? ryo 06/10/3(火) 11:17 質問[未読]
【43135】Re:VBAにタイマーはあるのでしょうか? Blue 06/10/3(火) 11:34 発言[未読]
【43142】Re:VBAにタイマーはあるのでしょうか? Ned 06/10/3(火) 13:09 発言[未読]
【43138】Re:VBAにタイマーはあるのでしょうか? Jaka 06/10/3(火) 11:52 発言[未読]
【43144】Re:VBAにタイマーはあるのでしょうか? パン 06/10/3(火) 16:53 発言[未読]
【43146】Re:VBAにタイマーはあるのでしょうか? ハチ 06/10/3(火) 17:39 発言[未読]
【43178】Re:VBAにタイマーはあるのでしょうか? ryo 06/10/4(水) 20:49 お礼[未読]

【43133】VBAにタイマーはあるのでしょうか?
質問  ryo  - 06/10/3(火) 11:17 -

引用なし
パスワード
   RS-232Cからのデータをエクセルに表示させるソフトを作成しました。
ある機械が動いているときに、セルに1をたてるようにしております。
1がたっている間の時間を測定したいのですが、VBAにはタイマー
という機能はあるのでしょうか。
宜しくお願いします。

【43135】Re:VBAにタイマーはあるのでしょうか?
発言  Blue  - 06/10/3(火) 11:34 -

引用なし
パスワード
   ▼ryo さん:
>RS-232Cからのデータをエクセルに表示させるソフトを作成しました。
>ある機械が動いているときに、セルに1をたてるようにしております。
>1がたっている間の時間を測定したいのですが、VBAにはタイマー
>という機能はあるのでしょうか。
>宜しくお願いします。
VBでいうTimerに相当するものはありません。
しいて言うならば、Application.OnTimeメソッドが近いですが、
1秒間隔でしか測定できません。
関連スレ:http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200610/06100013.txt

ところで、セルに1を立てるのは誰でしょうか?

【43138】Re:VBAにタイマーはあるのでしょうか?
発言  Jaka  - 06/10/3(火) 11:52 -

引用なし
パスワード
   角田さんのところにもありました。
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips15.htm

【43142】Re:VBAにタイマーはあるのでしょうか?
発言  Ned  - 06/10/3(火) 13:09 -

引用なし
パスワード
   ▼ryo さん:
こんにちは。
Blueさんの
>ところで、セルに1を立てるのは誰でしょうか?
これが重要な部分ではないでしょうか。
Worksheet_Change や Worksheet_Calculate などのイベントが発生するのであれば
変更時点の Timer を記録すれば可能だと思われます。

【43144】Re:VBAにタイマーはあるのでしょうか?
発言  パン E-MAIL  - 06/10/3(火) 16:53 -

引用なし
パスワード
   ▼ryo さん:
>RS-232Cからのデータをエクセルに表示させるソフトを作成しました。
>ある機械が動いているときに、セルに1をたてるようにしております。
>1がたっている間の時間を測定したいのですが、VBAにはタイマー
>という機能はあるのでしょうか。
>宜しくお願いします。

こんな感じでドウでしょう?
ST = Timer

***ここに処理を記入

Cells(1, 3).Value = Format(Timer - ST, "0.0000") ’’セルに記入
Debug.Print Format(Timer - ST, "0.0000" & "---" & X)’’イミディエイトに記入

【43146】Re:VBAにタイマーはあるのでしょうか?
発言  ハチ  - 06/10/3(火) 17:39 -

引用なし
パスワード
   ▼ryo さん:

以前、こちらの掲示板でichinose さんに
Application.Evaluateを使えば、コンマ0秒も計れると教えて頂きました。

Sub Test()
  Dim St As Double
  Dim i As Long, j As Long
  Dim Timer As Double
  
  St = [Now()]
  'ここに処理 Testでは10万セルにアクセス
  For j = 1 To 10
    For i = 1 To 10000
      Cells(i, j).Value = i * j
    Next i
  Next j

  Timer = [Now()] - St
  Timer = Timer * 24 * 60 * 60 'シリアル値を秒に変換
  MsgBox Round(Timer, 2)
End Sub

【43178】Re:VBAにタイマーはあるのでしょうか?
お礼  ryo  - 06/10/4(水) 20:49 -

引用なし
パスワード
   皆様、色々ありがとうございます。
Timer関数というものがあるのですね。「今回Timer−前回Timer」の差で時間の測定ができるのですね。

皆様からの返答の中に「セルに1をセットするのは誰?」という質問がありましたが、これはRS-232Cのマクロがセットします。

これで色々模索してみます。
ありがとうございました。

6779 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free