#17 ProgressBarコントロール

ProgressBarコントロールは、長い処理の進捗状況などをインジケータとして表示するコントロールです。コントロールをフォームに配置し、進み具合に関する値を設定するだけで、インジケータを表示させることができます。インジケータ自体に関するデザインや細かな操作はまったく必要ありません。

本項では、ProgressBarコントロールの使用例として、2つのサンプルを掲載します。

1つは、コマンドボタンのクリックによってマニュアルでインジケータを増減させる例、もう1つはフォームのタイマ時イベントを使って一定時間ごとに自動でインジケータを変化させる例です。2つ目の例では、ProgressBarコントロールのプロパティを設定することによって、縦にインジケータを表示させたり、マス目ではなく連続した形状のインジケータを表示させたりする方法も示しています。


ポイント

Minプロパティ、Maxプロパティ
インジケータの最小値と最大値を設定します。
たとえば、0〜50に設定した場合、次に説明するValueプロパティに25をセットすると、ちょうどインジケータの幅がコントロール全幅の半分の状態になります。50をセットするとインジケータが振り切った状態になります。

これらのプロパティはVBAでその都度設定することもできますが、サンプルフォーム1ではあらかじめプロパティシート上で0〜100の範囲を設定しています。もしテーブルを1件ずつ処理する状況を表示させたいような場合には、Maxプロパティにはその対象レコード数をセットすることになります。

またサンプルフォーム2では、コントロールごとにバーの長さが変化するスピードも変えています。これはそのようなプロパティがあるわけではありません。Valueプロパティの増加値が同じでも、Maxプロパティが異なることによってその比率が変わり、結果としてそのような違いとなることを示しているものです。

Valueプロパティ
MinプロパティとMaxプロパティに対するインジケータの幅を設定します。
通常のコントロールのValueプロパティは、そこでユーザが入力あるいは選択した値を取り出すために使うことが多いですが、ProgressBarの場合はこの値を設定することによってはじめて動作します。逆にMinプロパティとMaxプロパティがプロパティシートで設定してあれば、プログラムで処理するのは、処理の進捗に合わせてValueプロパティ値を変化させるだけです。ただ、MinプロパティとMaxプロパティの値の範囲内で設定するよう注意が必要です。


サンプルフォームの実行例

サンプルフォーム1(frmSample_17_1)
[増やす]・[減らす]ボタンをクリックすることによってインジケータが変化します。





サンプルフォーム2(frmSample_17_2)
フォームを開くと各インジケータが自動的に変化します。






サンプルDBのダウンロード

comctl_17.lzh(comctl_17.mdb)

| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved