エクセルのmsgbox は、マクロの実行を中断してしまいます。同じようなポップアップで、単なる状態を教えてくれるのがあったら教えてください。(これに、進行状況がでているようなのだとなおよしです。)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/06/28 14:52:18
  • 終了:2009/07/05 14:55:02

回答(3件)

id:juner No.1

juner回答回数21ベストアンサー獲得回数02009/06/28 17:28:02

ポイント27pt

msgboxで出力するものを、一定のセルに出力してはどうでしょう?

勿論、msgboxの様に一時停止はしませんから、早い処理の場合、最後のメッセージしか見れないでしょうけれど。

もしくはメッセージを出力する行か列を作って出力していくか…。

http://msft.ems.okayama-u.ac.jp/ems2/sum.html

URLはセルの値を読み書きする方法の一例です…。

id:kaiketsu

ポップアップしてくれるのがあるといいのですが、

2009/06/28 18:20:08
id:garyo No.2

garyo回答回数1782ベストアンサー獲得回数962009/06/28 21:20:34

ポイント27pt

http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html

ユーザーフォームを作成してそこに何分の何と進行を表示してはどうでしょうか。

http://www.officepro.jp/excelvbaform/form_form/index1.html

モードレスで表示すれば、処理しながら表示できると思います。

id:frkw2004 No.3

ふるるP回答回数192ベストアンサー獲得回数212009/06/28 21:37:40

ポイント26pt

自作のユーザーフォームで、vbModelessでオープンすれば、フォームが表示しても処理が継続します。

UserForm1, UserForm2を用意し、UserForm1のShowModalをFalseにして、コマンドボタンをひとつおきます。UserForm2にはラベルをおきます。UserForm1のコマンドボタンでUserForm2を表示し、進捗具合を表示するサンプルです。

Private Sub CommandButton1_Click()

Dim i As Long

UserForm2.Show vbModeless

UserForm2.Label1.Caption = ""

For i = 1 To 100000

DoEvents

If i Mod 10000 = 0 Then

UserForm2.Label1.Caption = String(i \ 10000, "□")

Else

End If

Next

End Sub

http://q.hatena.ne.jp/1246168336

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません