エクセルのVBAを使っての処理中に、どのくらいまで処理が進んでいるかを表示したいのですが、どんな方法があるでしょうか?

msgbox のようなものがでて何%進行というようなのがでるといいです。
いろいろ方法はあると思いますので、よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/06/29 09:14:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:jccrh1 No.1

回答回数111ベストアンサー獲得回数19

ポイント27pt

msgboxだと処理が止まってしまうので

ステータスバーに進捗状況を表示した方がスマートだと思います。

 

進捗率は0~1までの値を設定してください。

 

「進捗表示_クリアー」処理は実行処理の最後で呼んでください。

ステータスバーの表示をクリアーします。

Sub 進捗表示(ByVal 進捗率 As Variant)
  進捗文字 = Format(進捗率, "##0.0%")
  Application.StatusBar = 進捗文字 & "  " & String(進捗率 * 10, "■") & String(10 - 進捗率 * 10, "□")
End Sub
Sub 進捗表示_クリアー()
  Application.StatusBar = False
End Sub

ダミーURL:http://q.hatena.ne.jp/1245764174

id:Koonies No.2

回答回数125ベストアンサー獲得回数8

ポイント27pt

僕も良く使うのはステータスバーですが、タイトルバーという方法もあります。

タイトルバーならEXCELを最小化していてもタスクバー(スタートメニューのとなり)で確認できるので使い方によっては便利です。

' 進捗割合を表示
Application.Caption = "99%完了..."

' 終われば元に戻す
Application.Caption = vbNullString

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_090.html

id:frkw2004 No.3

回答回数194ベストアンサー獲得回数21

ポイント26pt

ステータスバーだと、ユーザーの設定によっては表示されないので、別ウィンドウにラベルとか四角形とかで進捗を表示させるというのもあります。

メッセージボックスのように処理が中断されては困るので、自作のフォームでモードレスで表示させましょう。

また、エクセルの処理中、画面の再描画がされないので、適時DoeventsとかRepaintなどの再描画をさせる処理が必要です。

http://www

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません