Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
オーバーフロー
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=192#CommentId1354
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
るしぇ
 (社会人)
投稿日時
2008/12/20 00:43:38
d は Static じゃないから毎回 0 になると判断して c が正ならつねに d < c
が成り立ちます。
c は
c = a '現時間代入
で、システム時刻の分と秒の合計。つまり必ず正ですね。
'秒合わせ
が何を意味しているのか不明ですが、条件判断の必要はありません。
まあ、何も処理してないので何の影響もありませんが、邪魔なので全部削除
しましょう。
If d = -a Then
この条件は直前の
d = c - a
に代入して - a = c - a
c = 0 にした方が初回条件として分かり易いので修正。
Dim e As Integer
e = b / f
UserForm1.TextBox8 = Round(e, 1)
e が整数型なので Round する前に丸められています。
これも意味が無いので削除。
オーバーフローになる処理を逆に追っていくと
e = b / f ←ここでオーバーフロー
f は入力値なので置いておいて
b = b + d 'bは合計時間
d の積算になってて
d = c - a
ここで1つ前の処理の
c = a '現時間代入
と見比べると時間が正常に未来へ流れていれば
d は、つねに負で積算されていくから、いつかは必ずオーバーフロー
します。
どこまで負の数を積算していきたいのですか?
…その処理に特に意味があるとは思えませんが、とりあえず
ある程度大きくなったら 0 に戻せば良いのでは?