投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/4/26 15:23:08
> TimerのIntervalを1、Tagを50に設定してみました。
> すると1回目にbtnStartを押したときは想定通りに止まるんですけど
1回目にタイマーが開始された時に、Tag の値は『50』から開始されますよね。


> 2回目に押すと、Label1に表示されている数字がパっと変わってしまいます。
そしてタイマーが止まるのは、以下の条件を通過した時です。
   If Timer1.Tag <= 0 Then
       Timer1.Enabled = False
   End If


すなわち、この処理が完了したとき Tag の中身は『0以下』になっているわけです。
具体的には 0 という値ですね。

では 2 回目を開始するときに、この Tag の値は何か別の値に変更していますか?
それとも 0 のままですか?


> (「数字が50回変わったら止まる」と理解しました。) 
Tag を 50 から始めれば、Tag ≦ 0 になるまでの 50 回は数字が変わりますね。

Tag を  2 から始めれば、2 回だけ実行され、Tag の中身は  0 になりますし、
Tag を  1 から始めれば、1 回だけ実行され、Tag の中身は  0 になりますし、
Tag を  0 から始めれば、1 回だけ実行され、Tag の中身は -1 になりますし、
Tag を -1 から始めれば、1 回だけ実行され、Tag の中身は -1 になります。