ExcelVBA×プログレスバー|パーセント表示&キャンセルボタンを設定

お知らせ記事には広告が含まれておりますがExcelのスキルUPに繋がる様コンテンツ自体は手を抜かずに作成しております

パーセント表示&キャンセルボタン付きのプログレスバーを作る

プログレスバーを使うと作業の進捗管理ができます。

ずっとマクロが稼働中になり「このマクロは動いているのだろうか・・・」と困った事ありませんか?

プログレスバーを使うとこのような状況下でも作業の進捗管理ができます。

「もう少しで終わりそうだ」、「まだ時間がかかるな」と作業状況が一目でわかるようになります。

EnjoyExcel
EnjoyExcel

作業終了をずっと待っている間のモヤモヤ感によってストレスが溜まりますね。

できれば作業状況を簡単に管理したいものです。

本記事ではプログレスバーとは?という方を含めてどんなことが出来るのかを紹介する為に用意しました。

次の記事で実際にプログレスバー付のデータを紹介しています。合わせてコードも準備しています。

ポイントとしては2つです。便利な機能を実装しています。

  • 作業状況をパーセント表示
  • マクロを中断させる為のキャンセルボタンを用意

以降で動画を含めて解説していきます。

関連記事

繰り返しとなりますが本記事はプログレスバーの紹介記事です。

プログレスバーを用意する為のコードと解説は以下関連記事の中に用意しています。

今回の画像は盆の時期ですので夏をイメージしてみました。ちなみにうちの奥さん4姉弟でして姉、兄、兄、妻です。合わせて作ってみました。

プログレスバーはユーザーフォームです

プログレスバーは ユーザーフォームの中の1機能(コントロール)です。

勉強する事でユーザーフォームに触れていただく事が出来ます。

需要もある様ですしユーザーフォームを勉強する事にもなる。

これは両得な感じがしてきましたね。良い機会ですので記事を書いてみようと思います。

次回記事でコードを用意します。今回はプログレスバーがどんなものなのかを紹介する記事です。

改めてプログレスバーを紹介

プログレスバーと聞いて名前と機能が一致しない方も居るかと思います。

動画をご覧ください。ほとんどの方は何らかの形で同じ様な機能を見た事あると思います。

参考

プログレスバーを見てもらった方が分かりやすいので動画を用意しました。

今までとは勉強の質が違います

次の記事からはユーザーフォームを勉強する事になります。

今までの様にコードだけ紹介するわけにはいかず以下内容についても合わせて説明させていただきます。

新たに勉強していただく内容です
  • フォームの作り方
  • コードを書く場所
  • コードの書き方

今までやった事のない上記の様な作業をすることになります。

1つ1つ紹介していきますのでお付き合いください。

さらにこんなことも出来る

プログレスバーを用意するというだけでも色々使い道が広がるのですが今回はもう1つ勉強していただきます。

一度実行したコードを中断させるという機能も実装しています。こちらも動画をご覧ください。

実行中のマクロを止めています。

「なんかすごい事ある?」と感じてしまうかもしれませんがこれは「すごい事」です。

マクロは一度実行すると End Sub まで処理が走ってしまいます。

基本的に途中で止める事は出来ません。

という事は何らかの不具合があったとしてもやはりマクロは止まりません。

こんな事ありませんか?

・コードで書いた処理が重すぎて進んでいるのか止まったのか分からない時
・自分で無限ループのコードを組んでしまった時(ずっとループ)
・とにかく何が起きたか分からないけどカーソルぐるぐるが終わらない時

こんな状況の時は実行しているマクロを止めたいのです。

しかし基本は止まりませんのでCtrl+Alt+Deleteで再起動となってしまいます。

マクロに慣れない頃は作ったコードで実行テストをする前には保存を忘れない」様にしていました。

上記のような事が起きても諦める事が出来る様にという意味で保存を言い聞かせていた次第です。

再起動の頻発は色々面倒な事が起きます。

マクロを実行している最中に処理を止めて作業を抜けるという機能があれば面倒な作業が減ります。

おそらく全部は無理ですが程度によっては上記不具合から抜け出せる確率がグッと上がります

メリット、デメリット

ここで改めてプログレスバーについて勉強する事に対するメリット、デメリットを提示します。

まずはメリットです。

  • プログレスバーを自力で用意する事が出来る
  • ユーザーフォームを勉強する事が出来る
  • 処理を途中で抜ける処理、コードを勉強する事が出来る

3点目が非常に大きいです。続いてデメリットです。

  • ユーザーフォームまでは考えてない(面倒な感じがする)
  • 待ちが長いような作業ならそもそも待ち時間を減らす事を考える

2つめなんて何も言い返せませんね。まさに「ごもっとも」といったところです。

しかし現状ではどうしても処理を高速化出来ないけどフォームで運用可能かもというステップがあります。

そんな時はプログレスバーを使ってみましょう。何か解決策が見えるかもしれません。

ただしプログレスバーを使う事で本来片付けないといけない案件を見逃さない様にしましょう。

事例

メリットとデメリットの特徴が良く出ている事例でしたので紹介します。

階層構造のあるフォルダ群から特定のキーワードを持つ画像をエクセルに持ってくるというコードです。

作業時間がかかるコードになったのでプログレスバーを付けています。

最終的にコード自体を変えて作業時間を改善しプログレスバーの必要が無くなった為取り外しています。

まとめ

プログレスバーについてざっと説明してみました。

今回は動画も入れてみましたのでインプットし易かったのではないかと思います。

引き続きプログレスバーにご興味をお持ちの方は次の記事をご覧ください。

コードを掲載させていただきました。加えて解説もしています。

マクロを勉強してみませんか

プログレスバーはインターネットでも情報が掲載されています。

コードも掲載されていますがそのままコピペで使う事が出来るケースは極めて稀な状況です。

使用するにあたってはご自身の仕事に合わせてマクロを加工する必要があります。

よってある程度の知識が無いと仕事を効率化する事は難しいです。

私自身で無料の体験講座を受講してきました。

おすすめ出来るコンテンツでしたので紹介させていただきます。

独学で悩みながら勉強している方やイチから勉強し直したい方は是非関連記事をご覧ください。

キャンペーン中 こちらでVBA勉強出来ます
\価格を抑えたい方は是非この機会に受講を検討ください/

EnjoyExcel

タイトルとURLをコピーしました