- ベストアンサー
VB 6.0でtimerを使ったプログラムで三色信号を動かしたい
- VB 6.0のtimerとselect caseを使ったプログラムで三色信号を動かしたい質問です。具体的には青→黄→赤→青という順番で30秒間動かしたいですが、どのように書けば良いかわかりません。
- また、プログラムを実行してもまったく動かない上に、時間の表示やprogressbarが表示されない問題も発生しています。
- VBであらかじめ書いてあった三つの円を信号機のように動かすプログラムを作成したいのですが、その具体的な方法について詳しい方に教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
下記を確認してください。 ・Timer1のintervalは指定してますか? ・progressbar1のMaxは指定してますか? ・Timer1.Tagは文字列ですので「Timer1.Tag = Timer1.Tag + 0.5」のような指定はできません。「Timer1.Tag = CStr(Val(Timer1.Tag) + 0.5)」のように数値と文字列を使い分けてください。 ・Caseに対する値がないため、Caseでの判断ができません。Tagに入っている値を入れる必要があるかと思います。 ・色を塗る指定はありますが、消す指定がないので、このプログラムでは信号機のように消えることがありません。 以下は質問文の書き方を利用して私が作成するなら。。。ということで書いておきます。別な書き方もありますが、ひとまず下記だけでも動くかと思います。 【設定値】 「Timer1.Interval=500」 「progressbar1.Max = 60」 「Shape5.FillColor = &H0000FF00&」 「Shape6.FillColor = &H0000FFFF&」 「Shape7.FillColor = &H000000FF&」 【ソース】 Private Sub Timer1_Timer() Timer1.Tag = CStr(Val(Timer1.Tag) + 1) ProgressBar1.Value = ProgressBar1.Value + 1 Select Case Timer1.Tag Case "1" Shape5.FillStyle = 0 Case "5" Shape5.FillStyle = 1 Shape6.FillStyle = 0 Case "6" Shape6.FillStyle = 1 Shape7.FillStyle = 0 Case "12" Shape7.FillStyle = 1 Shape5.FillStyle = 0 Timer1.Tag = "0" End Select If ProgressBar1.Value >= 60 Then Shape5.FillStyle = 1 Timer1.Enabled = False End If End Sub
お礼
ご回答ありがとうございます。 shippoさんのとうりに入力しなおしたらうまくいきました。 本当にありがとうございました。