EXCELVBAでプログレスバーを作る

EXCELVBAでプログレスバーを作る

以前にEXCEL VBAの起動について紹介致しましたが、今回はEXCEL VBAを使って、プログレスバーを作成する手順についてご紹介致します。

プログレスバーとは、パソコンを利用する上で度々目にするアレです。

ダウンロードおよびインストールなどで目にされる事が多いかなと思います。EXCEL VBAでもこれが作成できます。

プログレスバーにより処理の進捗状況が確認できるので、フリーズの誤認なども防げます。

スポンサーリンク

Advertisement

フォームを作る

まずは、プログレスバーのウィンドウを作ります。

VBEを開き、「VBAPriject」や「Microsoft Excel objects」を選択し、右クリックを押下します。

すると下図のメニューが開きますので、「挿入」「ユーザーフォーム」の順番に選択します。

新規のフォームが作られます。

上からラベル、プログレスバー、コマンドボタンを設置します。

設置したコントロールのサイズや配置を調整します。

こんな形になりました。

フォームのサイズやコントロールの幅はお好みで調整してください。

コーディング

次は、EXCEL VBAのプログラムを書いていきます。

プログレスバーのフォームのコーディング

フォーム内のコーディングは、キャンセルボタンの処理です。

 

処理を行うシートのコーディング

次に、処理を行うシート内部にプレグレスバーを制御する処理を入れていきます。

ポイントは、①表示と②制御です。

①表示では、プログレスバーを定義して、最小値と最大値を設定します。

また、処理の内部でプログレスバーを表示し、終わりでプログレスバーを消すという処理も行います。

②制御では、処理内部でプログレスバーのゲージを増やすことと、キャンセルボタンが押されたかを監視し、押されたら処理を中断する処理も含みます。

サンプルコードは以下になります。

慣れてくるとフォームとプログラムのベースを作成して、コピーして使いまわすこともできます。

また、プログレスバーの最大値について、特定のシートの最終行を設定する場合には、以下の記事も活用してみてください。

EXCEL VBA 入力されているセルの最終行数を取得する