- ベストアンサー
メッセージボックスの表示
エクセル2000のVBAでメッセージボックスを表示させたいのですが、OKボタンを押して閉じるのではなく、VBAの記述でメッセージをオープン、クローズがしたいのですが、方法がわかりません。 何がしたいかというと、 FOR~NEXTなどの処理で今何件処理しているかをリアルタイムで表示させたいのです。 どなたか知っている方がいれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
フォームを使えばいいのかな、と思います。 Visual Basic Editor のメニューから「挿入」→「ユーザーフォーム」でフォームを追加して、VBA の方は Dim i As Integer UserForm1.Show vbModeless For i = 0 To 100 UserForm1.ProgressBar1.Value = i UserForm1.Label1.Caption = i & "件処理しました。" Next i UserForm1.Hide のような感じで。 私の PC では、コントロールツールボックスの「ツールの選択(かなづちのアイコン)」で「 Microsoft ProgressBar Control 」というのがあったので、これを使って書いてありますが、Office 2000 に入ってたのか Access 2000 に入っていたのか、あるいは他のものに入っていたのかよくわからないので、質問者さんの PC でも使えるかどうかはよくわかりません。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>メッセージボックスを表示させたいのですが Msgbox は簡単ですが、メッセージボックスといえばそれに 限られます。Msgboxに拘った質問でしょうか。 #1のご回答からすると、「進行状況(今処理しているのは何件目かの数)を表示したい」ように捉えられていて、 その他のコントロール類でも差し支えないのでしょうか。 また進行に連れ、一旦表示を消すのでしょうか。表示したままで件数を変えるのでしょうか。視覚的に図示する(プログレスバーなど)のか、数字で表示しても良いのか(テキストボックスやラベルコントロールなど) >メッセージをオープン、クローズがしたいのですが メッセージボックスではオープン、クローズといわないと思いますが、表示・非表示のことでしょうか。 表示をして、次の表示に移るタイミングなどはどうお考えですか。2秒経過したら、次の状態を表示するとか。 件数が台替わりしたら、表示を変えるとか これらの点を明確になさった方が良い。 むしろ目的を明確に述べて、Msgbox使うかどうかは、回答者に任せてはどうでしょう。例えばMsgboxを使うなど出して、拘ると、それが目的に対して最適な方法かどうかが、抜け落ちますよ。
お礼
情報不足ですみませんでした。 まだVBA初心者なので、どうすればいいかよくわからなくて・・・ プログレスバーっていう便利な機能もあるんですね。 勉強になりましたっ
- papayuka
- ベストアンサー率45% (1388/3066)
こちらが参考になると思います。 http://www14.big.or.jp/~kawamura/excelmacro.htm の waitapp.xls [Excel97]waitapp.xls (109kB) Excel2000でもそのまま使えると思います。 また、ActiveX ControlのProgressBar (ActiveX Control) [Excel97] も公開されているようです。 Excel2000でもそのまま使えるかは不明です。多分問題ないと思いますが、、、
お礼
参考ページはとてもためになりました。 活用させていただきます。
お礼
ありがとうございました。 フォームを使えばいいんですね! やってみます。