プログレスバーを使う
  ActiveXコントロールの一つ、プログレスバーの使用方法を説明します。

● 準備 ●

(1) 新しいフォームをデザインモードで開く

(2) メニューバーの[挿入]-[ActiveXコントロール]を選択し、[ActiveXコント
    ロールの挿入]ダイアログを開く
    
(3) リストボックスの中から[Microsoft ProgressBar Control Version 6.0]を
    選択してOKボタンをクリックする (Access97の場合Version 5.0)
    
(4) プログレスバーコントロールをフォームの中ほどに貼り付け、バー下部に
    コマンドボタンを配置する

      

(5) プログレスバーの名前を「Progress1」、コマンドボタンの名前を「コマン
    ド1」とする。
    
(6) [コマンド1]のOnClick/クリック時イベントに以下のコードを記述する


● サンプル ●

Private Sub コマンド1_Click()
    Dim i         As Integer 'ループカウンタ
    Dim PauseTime As Double  '時間計測変数

    Me.Progress1.Max = 10   'プログレスバーの最大値
    Me.Progress1.Min = 0    'プログレスバーの最小値

    'プログレスバーの値を増減させるループ処理
    For i = Me.Progress1.Min To Me.Progress1.Max
        Me.Progress1.Value = i

        '現在の時刻の1秒後まで処理を止める無限ループ
        PauseTime = Timer + 1
        Do While Timer < PauseTime '※1
        Loop
    Next
End Sub


● 動作確認 ●

  フォームビューに切り替え、コマンドボタンをクリックします。


● 詳細 ●

  まずプログレスバーの最大値と最小値を設定します。この2つの値の差がバー
が移動するスムーズさに影響します。差が大きければスムーズになり、小さけ
ればバーは大まかに移動します。

  次にプログレスバーのValueプロパティに値を代入していきますが、代入する
値を増やすためにループ処理を行っています。今回のループ処理ではTimer関数
を使用して現在時刻との差を計測しています。
  ※1の部分で1を足していますので、ここではプログレスバーの値は1秒ごとに
増えていきます。ここで足している値を変化させることで値が増えるタイミン
グを変えることが出来ます。

  このようにプログレスバーを使うことによって、時間のかかる処理の進行度
合いを表示することが出来ます。
  サンプルでは時間でプログレスバーの値を増やしていますが、もちろん他の
処理をトリガにすることも可能です。例えば、多数のレコードを順番に処理す
る場合など、Max値をレコード総数にして処理が進むごとにValueプロパティを
増やしていけば、レコード処理の状態を表示することが出来ます。

Access97/2000



戻る


Excel Word Access VBA! モーグ