アプリ版:「スタンプのみでお礼する」機能のリリースについて

また質問です。
VBであらかじめ書いてあった三つの円を信号機のように青は2.5秒、黄色は0.5秒、赤は3秒で青→黄→赤→青 …と三十秒間動かしたいのですが、caseの後ろには何をいれればいいかわからず
Private Sub Timer1_Timer()
Timer.Tag = Timer1.Tag + 0.5
progressbar1.Value = progressbar1.Value + 0.5
Select Case Timer1.Tag
Case
Shape5.FillColor = vbGreen
Shape5.FillStyle = 0
Case
Shape6.FillColor = vbYellow
Shape6.FillStyle = 0
Case
Shape7.FillColor = vbRed
Shape7.FillStyle = 0
end select
End Sub
としたのですがまったく動きません。タイマーを設定したのに時間の表示もでません。あと、progressbarというのもでてこないんです。
どうかお詳しい方お願いします。 m(_ _)m

A 回答 (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
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
shippoさんのとうりに入力しなおしたらうまくいきました。
本当にありがとうございました。

お礼日時:2007/07/03 22:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!