現在コマンドボタンを押したら、ラベルに値を表示させるプログラムを作っているのですが、うまく行きません。どうしたらいいでしょうか?
処理としては、cntという変数の値を1ずつ表示させたいのですが、1,2,3,4,5,6,7,8,9,10とラベルに表意させたいのですが、最後の11しか表示されません。
Private Sub Command2_Click()
Dim i As Integer
Dim cnt As Integer
cnt = 0
For i = 0 To 10 Step 1
cnt = cnt + 1
Label7.Caption = cnt
Next i
End Sub
> Label7.Caption = cnt
これは上書きしています。
Label7の文字列をcntにしてください という命令なので、
cntが"11"という文字ならばそのような結果になります。
追記のような感じで出力するには、
Label7.Caption = Label7.Caption & "," cnt
みたいにしないといけません。
ただしこれだと一工夫必要。
> Label7.Caption = Label7.Caption & "," cnt
&が抜けてました。
Label7.Caption = Label7.Caption & "," & cnt
# CStr(cnt)の方がベターかも。
ありがとうございます。
それでは、変数の値を1つずつ11まで表示させるには、どうしたらいいですか?
> ただしこれだと一工夫必要。
はできたのでしょうか。。。
このままだと最終的に、
,1,2,3,4,5,6,7,8,9,10,11
~~
になっちゃうんですが。
> それでは、変数の値を1つずつ11まで表示させるには、どうしたらいいですか?
ボタンのクリックイベントの中で、For文で全部表示しているから
ボタン押しただけで、,1,2,3,4,5,6,7,8,9,10,11とでちゃうようになっています。
1つずつとはどういうことでしょうか?
ボタンを1回押すとある一定の時間で
1
1,2
1,2,3
・・・・
みたいなことをやりたいのか
ボタンを押すたびに数を増やしていきたいのかわかりません。
説明不足ですみません。
ラベルには、1
2
3
4
....みたいに表示させたいのですが・・・
で、表示するタイミングは?
ボタンを押すと1ずつアップするのか、
ボタンを押したら勝手に1ずつアップしていくのかどちらですか?
ボタンを押したら勝手にアップするほうです。
Private cnt As Integer ' <----- こいつを追加
Private Sub Command2_Click()
' Dim i As Integer
' Dim cnt As Integer ---> グローバル変数にする(Staticでもよさそうだが)
' For i = 0 To 10 Step 1
cnt = cnt + 1
Label7.Caption = cnt
' Next i
End Sub
で試してみてください。
多分11よりもおおきな数字まで行きます。
どうすればいいかは考えてみてください。
変化なしです。
> 変化なしです。
ごめんなさい。勝手にアップするほうでしたね。まちがえました。
タイマーコントロールを使います。
ヘルプかなんかでとりあえず調べてみてください。
どれぐらいの間隔であっぷしていくのかとかの情報も提示してください。
http://www.bcap.co.jp/hanafusa/VBHLP/puro_taima.htm
に似たようなサンプルがありました。
Intervalとか、ボタンの機能とかを変更してみてください。
どうもありがとうございました。
ツイート | ![]() |