【VB.NET】処理の進行状況を視覚的にわかるように表示する方法

訪問して頂きありがとうございます。まさふくろーです。

この記事では、プログレスバーを使って、処理の進行状況を視覚的にわかるように表示する方法をご紹介します。

処理の進行状況を視覚的にわかるように表示する

  1. サンプルデータ作成:サンプルのデータテーブルを作成
  2. 処理開始:データテーブルの件数を取得⇒子画面(プログレスバー)呼び出し
  3. プログレスバーの処理を行う

 

使用するコントロール

ProgressBarコントロール

解説

 

 

処理の進捗状況を視覚的に表示するには、ProgressBarコントロールを使います。

ProgressBarコントロールは、ツールボックスの「コモンコントロール」から「ProgressBar」を選択して、フォームに配置します。

ProgressBarコントロールを使うときは、Minimumプロパティで最小値、Maximumプロパティで最大値を設定し、Valueプロパティで現在の値を指定します。

その他、使用するコントロール

コントロール 用途
Label フォーム上の任意の位置に文字列を表示する プログレスバーの上に「処理中」メッセージを表示する
Button クリックしたときに処理を実行する プログレスバーの処理などを記述する

作成手順(親画面)

「サンプルデータ作成」ボタンの設置

ツールボックスから「Button」を選択します。

 

フォームに配置します。

 

「Text」プロパティに「サンプルデータ作成」と入力し、ボタンに表示する文字を設定します。

 

イベントハンドラーの作成

プロパティウィンドウの①「イベント」をクリック⇒②イベント一覧「Click」の入力ボックス(ピンク枠)をダブルクリックし、「Click」イベントを作成します。

 

「処理開始」ボタンの設置

ツールボックスから「Button」を選択します。

 

フォームに配置します。

 

「Text」プロパティに「処理開始」と入力し、ボタンに表示する文字を設定します。

 

イベントハンドラーの作成

プロパティウィンドウの①「イベント」をクリック⇒②イベント一覧「Click」の入力ボックス(ピンク枠)をダブルクリックし、「Click」イベントを作成します。

 

作成手順(子画面:プログレスバー)

Windowsフォームの追加

メニューバーの「プロジェクト」をクリックします。

 

「Windowsフォームの追加」を選択します。

 

①「フォームの名前」を入力⇒②「追加」ボタンをクリックします。

 

「フォーム」の各種設定

プロパティウィンドウにて、以下プロパティを設定します。

 

 

プロパティ 設定値
FormBorderStyle フォームの境界線およびタイトルバーの設定 None
BackColor フォームの背景色を設定 ControlLight
Size フォームの大きさを設定 263, 71
StartPosition フォームの起動時の表示位置を設定 CenterScreen

「プログレスバー」の設置

ツールボックスから「ProgressBar」を選択します。

 

フォームに配置します。

 

「プログレスバー」の各種設定

プロパティウィンドウにて、以下プロパティを設定します。

 

 

プロパティ 設定値
Location フォーム上のコントロールの位置を設定 7, 41
Size コントロールの大きさを設定 249, 22

「ラベル」の設置

ツールボックスから「Label」を選択します。

 

フォームに配置します。

 

「ラベル」の各種設定

プロパティウィンドウにて、以下プロパティを設定します。

 

 

プロパティ 設定値
AutoSize フォントサイズをもとにサイズの自動調整を行うかの設定 False
Location フォーム上のコントロールの位置を設定 13, 13
Size コントロールの大きさを設定 232, 17
Text ラベルに表示する文字 ブランク

サンプルプログラム(子画面:プログレスバー)

9 プログレスバー最大値設定用プロパティ
23 画面起動時に、以下プロパティの値を設定。
25 プログレスバーの最小値に「0」を設定。
26 プログレスバーの最大値に「ProcessCount」を設定。親画面で設定した処理件数を取得。
27 プログレスバーのValueプロパティに「0」を設定。Valueプロパティの初期化。

サンプルプログラム(親画面)

3 データテーブルのインスタンスを作成
10 サンプルデータ作成ボタンクリック時に、以下処理を行う。
12 データテーブルの列項目の初期化。
13 データテーブルに「Item1」列を作成。
15 カウンター変数「i」を宣言
16 DataRow型変数「Row」を宣言
18 100回、以下処理を繰り返す。
19 データテーブル新規行をDataRow型変数「Row」に設定
20 データテーブルの「Item1」列に、カウンター変数を設定
21 データテーブルの新規行に値を追加
33 処理開始ボタンクリック時に、以下処理を行う。
35 「Form2」クラスのインスタンスを作成
38 18行目~22行目で作成したデータテーブルの件数を取得し、「ProcessCount」プロパティに設定。
39 子画面(プログレスバー)を呼び出す。
41 子画面(プログレスバー)のラベルに「処理中・・・」メッセージを設定
44 プログレスバーの「Value」プロパティ設定用、カウンター変数「NowCnt」を宣言。
46 データテーブルの件数分、以下処理を繰り返す。
48 カウンター変数「NowCnt」の値を「1」ずつ加算。
49 プログレスバーの「Value」プロパティに、カウンター変数「NowCnt」を設定。
50 0.1秒待機(実際は、このコードは不要)。ここに、処理すべきコードを記述する。
54 子画面(プログレスバー)のラベルの初期化。
55 子画面(プログレスバー)を閉じる。

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら