No.1
- 回答日時:
「Timerイベント」が発生するたびに変数が初期化されるのが問題なのでしょうか?
でしたら、「Staticステートメントで変数を宣言する。」あるいは、モジュールの宣言セクションで「Publicキーワードを使って”パブリック変数”を宣言する。」を利用してみてはいかがでしょうか?
どちらの場合でも、途中で初期化(0?)する必要がある場合はそのタイミングが難しいかも知れません。
ご参考までに...
No.2ベストアンサー
- 回答日時:
ぼくはVBのタイマーを信用していません。
VBのタイマーは、タイマーイベントのロジックの処理の重さにより多少ずれているように思えるのです。(正確だというのであればごめんなさい)
ちなみにAPI関数でWINDOWSが起動してからどれだけの時間が経過したかなどの、時間に関するものがあります。そういったものを使用したほうが、コンパイル後のEXEが小さくすみます。
タイマーコントロールを使用しないやり方を記述します。
処理の簡単なながれとしては
直前の実行時から1秒経過したら、配列に値をセットするようになってます。
実行秒数は、配列要素の数だけの秒数を実行します。
----以下のソースを貼り付けてください。----
必要なものフォームとコマンドボタン1
Option Explicit
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private pTime As Long
Private lngWork(5) As Long
Private lngCount As Long
Private Sub Command1_Click()
Dim maxCount As Long
Dim lngGetTime As Long
Command1.Enabled = False
lngCount = LBound(lngWork)
maxCount = UBound(lngWork)
'とりあえず開始の時間を取得
pTime = timeGetTime
Do Until lngCount > maxCount
DoEvents
'時間を取得
lngGetTime = timeGetTime
'前回の処理から1秒経過すると以下の処理を行う
If (lngGetTime - pTime >= 1000) Then
lngWork(lngCount) = lngGetTime
pTime = lngGetTime
lngCount = lngCount + 1
End If
Loop
MsgBox "end"
Command1.Enabled = True
End Sub
この回答へのお礼
お礼日時:2001/10/17 16:52
ありがとうございます。わざわざソースまで書いてくださって、とてもうれしいです。大変参考になりました。おかげさまで問題はほぼ解決できました。勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 2019で質問があります。 計測器のデータをExcelで記録したんですが、1秒刻みで記録 4 2022/09/07 22:46
- 交通科学 数学の問題で教えてほしいです。 1. 長さ90メートルの列車が420メートルのトンネルを通過するのに 3 2022/03/22 13:56
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- 統計学 風速を1秒刻みで推定する方法 6 2023/03/03 11:58
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- その他(ネットショッピング・通販・ECサイト) 初期不良の対応について 5 2023/07/21 19:46
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Excel(エクセル) ウオーキングラップのグラフ化 1 2022/04/02 08:31
- 数学 登録番号と年月日と時間から作成した数字列を出来る限り小さくする方法 7 2022/06/03 16:10
- Excel(エクセル) Excel について <TIMEVALUE> 3 2022/10/20 15:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
コンボボックスのインデックス...
-
エクセルでXY座標に並べられた...
-
C#でbyte配列から画像を表示さ...
-
構造体配列の特定のメンバーをF...
-
配列の要素がすべてカラかどう...
-
配列の中の最大値とそのインデ...
-
Redim とEraseの違いは?
-
Excelマクロ:配列データからグ...
-
C言語 ポインタと配列
-
vba フィルター 複数条件 3つ以...
-
CheckBoxの配列化
-
VBで重複しているデータをユニ...
-
エクセルVBAからNotesでメー...
-
エクセルの列一括書き込み
-
定数配列の書き方
-
エクセル(VBA)の空白配列の削除...
-
DBから取得した値を配列へ代入する
-
配列の中から最大値だけ取り出...
-
pictureboxの名前を変数で設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
Excel2010のinputboxで複数デー...
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
配列のペースト出力結果の書式...
-
Dir関数で読み取り順を操作でき...
-
エクセルでXY座標に並べられた...
-
VBAで配列引数を値渡しできない...
-
C++で作成したDLLにVBAから配列...
-
構造体配列の特定のメンバーをF...
-
OutOfMemoryExceptionの回避策...
-
大量の変数を定義するにはどう...
-
VBAでMODE関数をつくる
-
VBScriptでCSVファイルを読み出...
-
定数配列の書き方
-
Segmentation Fault (メモリ制限?)
-
Excelのメモリ(配列)の上限は2G...
-
Redim とEraseの違いは?
-
CheckBoxの配列化
-
配列の中の最大値とそのインデ...
おすすめ情報