人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのVBAを使っての処理中に、どのくらいまで処理が進んでいるかを表示したいのですが、どんな方法があるでしょうか?
msgbox のようなものがでて何%進行というようなのがでるといいです。
いろいろ方法はあると思いますので、よろしくお願いします。

●質問者: kaiketsu
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:いるか エクセル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● jccrh1
●27ポイント

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


2 ● Koonies
●27ポイント

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

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

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

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

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


3 ● ふるるP
●26ポイント

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

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

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

http://www

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ