- ベストアンサー
エクセルのマクロで処理中の表示をしたいのですが…
エクセルでマクロを作りました。 起動はメニューからできるようにしました。 処理はsheet1のデータから演算処理した結果をsheet2 に出力します。始め、処理状況を表示(Visible = True)にしていたのですが、罫線などもあるため、処理に1時間ぐらいかかってしまいます。 そこで、処理状況を非表示(Visible = False)にしました。 しかし、仕事をしているという臨場感がないので、「今、処理中です」などの表示をしたいと思いますが、何か良い方法はありますでしょうか? どうぞ、ご教授ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 Application.DisplayAlerts = False にして、終わったらTrueにします。 Sub Test() Dim dWs As Worksheet, s As Single On Error GoTo ER: '実行中シートを作成 Set dWs = Worksheets.Add(before:=ThisWorkbook.Worksheets(1)) dWs.Name = "処理中" dWs.Range("D8").Value = "実行中です・・・" dWs.Range("D8").Font.Size = 48 '時間の掛かる処理---ここから s = Timer Do While Timer < s + 3 DoEvents Loop '時間の掛かる処理---ここまで 'シート削除 Application.DisplayAlerts = False dWs.Delete ER: Application.DisplayAlerts = True End Sub
その他の回答 (2)
- driverII
- ベストアンサー率27% (248/913)
Application.Statusbar = "処理中です(1/10)" などと進捗を表示させるのはけっこう簡単です。
お礼
どうもありがとうございました。 試してみました。 ちょっと地味ですね。 ステータスバーに色づけができたらいいのですが、できるでしょうか?
- papayuka
- ベストアンサー率45% (1388/3066)
単純なものなら「作業中」と大きく書いたシートを非表示にして持たせ、処理が始まったら表示して終わったらまた隠すとか。 独自のプログレスバーのようなものを公開している方もいます。 処理を挟むので遅くなるかも知れませんが、、、 時間のかかる処理中にダイアログを表示するマクロ http://www14.big.or.jp/~kawamura/excelmacro.htm#WAITAPP > 処理に1時間 可能なら↑ここの改善を優先された方が、、、^^;
お礼
どうもありがとうございました。 試してみました。 シートに表示するというのは良いアイデアですね。 ただ、処理が終わったときシートは非表示にするというより削除してしまいたいのですが、確認メッセージが出てしまいます。 確認メッセージを出さない方法はあるでしょうか?
お礼
どうもありがとうございました。 お蔭様で、とてもスマートにできました。