progressbarの更新方法

タグの編集
投稿者 Ken  (小学生) 投稿日時 2009/7/13 00:34:40
progressbarを使ったアプリケーション作りをしています。
progressbarを更新させる(15秒おきぐらいに)にはどのようなことをすればいいのでしょうか?
Value = 0
Step = 7
Minimum = 0
Maximum = 100
になっています。
投稿者 Ken  (小学生) 投稿日時 2009/7/13 00:36:36
VB2008を使っています。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/7/13 01:04:44
Timer をフォームに貼り付け、間隔(Interval)を 15000 に設定します。
そして Tick イベントに、Progressbar の Value を増加させるコードを記述します。

あとは、Timer1.Start() で開始すれば OK かと。
投稿者 KEN  (小学生) 投稿日時 2009/8/11 23:12:02
Tickにいれるのはどういうコードなんですか?
全然わからなくてすいませんm(_ _)m
投稿者 流れ者  (社会人) 投稿日時 2009/8/12 00:08:40
KENさん

こんにちは。

>Tickにいれるのはどういうコードなんですか?
フォーム名:Form1、Timerコントロール名:Timer1 の前提で説明します。
1.Timer1を配置したForm1のコードを表示する。
2.表示されたコード画面の上部の、「From1」と表示されたコンボボックスから、
 「Timer1」を選択する。
3.となりの「(宣言)」と表示されたコンボボックスから、「Tick」を選択する。
4.「Private Sub Timer1_Tick(・・・」というサブプロシージャが作成されるので、
 この中に、処理を記述する。

投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/8/12 00:50:39
Ken さんと
KEN さんは、同一人物でしょうか?

> Tickにいれるのはどういうコードなんですか?
Progressbar の Value を増加させるコードです。

たとえば、値を 1 ずつ増加させたいのであれば
 Progressbar.Value = Progressbar.Value + 1
のように記述できます。
投稿者 KEN  (社会人) 投稿日時 2009/8/12 03:36:47
すいません。
KenもKENも同じです。
投稿者 KEN  (小学生) 投稿日時 2009/8/12 03:55:36
早速試してみたんですけど、
非共有メンバを参照するにはオブジェクト参照が必要です
と怒られてしまいました。
どう解決するといいですか?
投稿者 KEN  (小学生) 投稿日時 2009/8/12 03:58:54
自己解決しました。
ごめんなさい。
Progressbar.Value = Progressbar.Value + 1
じゃなく
Progressbar1.Value = Progressbar1.Value + 1
にしたらできました。
100を超えるとプログラムが終了してしまいます。
100になると自動で止まるようにできませんでしょうか?
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/8/12 05:28:13
Value が最大値(今は、Maximum = 100 に設定しているのですよね)に達しているかどうかを調べ、
達していれば、Value の追加を止めるために、Timer1.Stop() を呼び出せば OK です。


最大値に達しているかどうかを調べるには、「If ステートメント」を使います。
If の使い方については、このサイトの初級講座「第6回 条件判断」をご覧ください。
投稿者 KEN  (小学生) 投稿日時 2009/8/12 20:34:33
ありがとうございます
できました。
 If ProgressBar1.Value = 100 Then
            Timer1.Stop()
        Else
        End If
をTimer1_Tickの中に入れたら100になったらストップしました。
投稿者 流れ者  (社会人) 投稿日時 2009/8/14 18:48:41
おはようございます。

蛇足ですが。

>If ProgressBar1.Value = 100 Then
>            Timer1.Stop()
>        Else
>        End If

上記の場合、”ELSE”はいりません。
”Else”は”If”後に書かれた条件に当てはまらない場合の処理を書く場所です。
例をあげると、以下のコードがあるとします。

Dim a As Integer
     :
If a = 0 Then
   処理A
Else
   処理B
End If

この場合、変数aが0なら処理Aが、0以外なら、処理Bが実行されます。
もし、変数aが0の場合のみ、処理を実行したいのなら、

Dim a As Integer
     :
If a = 0 Then
   処理
End If

で、大丈夫です。
投稿者 KEN  (小学生) 投稿日時 2009/8/15 00:22:59
ありがとうございます。
Elseは余分だったんですね。