• 締切済み

EXCELマクロ実行中に

EXCELのマクロを実行中にのみ「処理中…」などの表示を出させ、処理終了後に表示を消すということは可能でしょうか? ちなみにEXCELは2000です。

みんなの回答

  • TTak
  • ベストアンサー率52% (206/389)
回答No.5

> ループ処理の代わりに各処理終了後に段階表示できるように変数を加算 ということは、 ProgressBar1.Value =0 処理1 ProgressBar1.Value =50 処理2 ProgressBar1.Value =100 処理3 のような形でしょうか? 0のまま進まないということは(エラーはないですよね?)、上記の例で、 1) 処理2処理3が処理1に比べとんでもなく早い 2) エラー処理などのルーチンがあって、処理1のどこかでそっちに飛んでいる 3) 処理1でApplication.ScreenUpdating=Falseが実行されている などが考えられます。F8でマクロをステップ実行してみると良いでしょう。

harusan731
質問者

お礼

再度ありがとうございます。 そうです。そのように処理しています。 結局できたのですが、原因はユーザーフォームの「ShowModal = True」 になっていました。これを「False」にする事で解消しました。 ただ、ユーザーフォームの下地が白くなってしまうんですよね…

  • project-a
  • ベストアンサー率54% (107/195)
回答No.4

ユーザーフォームで作成してはどうでしょうか? 小さいユーザーフォームを作成して、StartUpPosition プロパティを "2-画面の中央" にします。 中央にラベルを配置して Caption プロパティを "しばらくお待ちください" とします。 実際の処理では、例として Private Sub CommandButton1_Click()  UserForm1.Show 0 'ユーザーフォームを表示  <実際の処理を記述>  UserForm1.Hide  'ユーザーフォームを非表示 End Sub とすると、処理中は画面中央に"しばらくお待ちください" と表示され、処理が終わると消えます。

harusan731
質問者

お礼

ありがとうございます! そうですね。シンプルでとても良い案だと思います。 早速利用させていただきます。

  • TTak
  • ベストアンサー率52% (206/389)
回答No.3

できます。 フォームにプログレスバーを配置します。 ループ処理の場合は、プログレスバーのゲージをループ終了までの回数のパーセンテージに応じて、増加させていきます。 ループでなくWindowsの処理待ちの場合は、プログレスバーのゲージを適当な所で止めるしかありません。 VBEのツールボックスで右クリックして、[その他のコントロール]を選択、利用可能なコントロールの一覧から、"Micrsoft ProgressBar Control, varsion?"を選択してください。ツールボックスにプログレスバーコントロールのボタンが現れます。 下記はユーザーフォームに配置したCommandButton1のクリックで、ProgressBar1のゲージを100回ループの進行と共に増加させる例です。 Private Sub CommandButton1_Click() Dim n As Integer n = 100 For i = 0 To n ProgressBar1.Value = (i / n) * ProgressBar1.Max Next i End Sub

harusan731
質問者

お礼

処理がループ処理でないため、ループ処理の代わりに各処理終了後に段階表示できるように変数を加算していったのですが、プログレスバーが0のまま進みませんでした。 なぜでしょう…??

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

簡単に、StatusBar を利用する方法もありますね。 Sub test() With Application For i = 1 To 10000 x = Int(i / 100) .StatusBar = "処理中: " & .Rept("|", x) Next .StatusBar = "" End With End Sub

harusan731
質問者

お礼

ご回答ありがとうございます! が、上記方法がよく分かりません… ちなみに処理はループ処理ではありません。

harusan731
質問者

補足

すいません。わかりにくかったため見落としていました。 画面中央付近に表示させたいのです。

  • pc_knight
  • ベストアンサー率66% (52/78)
回答No.1

プログレスバーに処理の進行状況を表示させる方法はいかがでしょうか。 プログレスバー表示を処理に数分かかる処理に組み込んでみましたが、進捗状況がアナログ表示されるので重宝しております。

参考URL:
http://www.happy500z.com/YNxv9g1810.html
harusan731
質問者

お礼

ありがとうございます! が、うまくいきません… プログレスバーが0のまま動きません。 (1)ループ処理ではないから(?) (2)あちこちのシートに跳んで処理しているから(?) 原因不明です。 screenupdating=false にして処理をしているからでしょうか? (表示の都度切り替えましたがダメでした) う~ん…

関連するQ&A

  • マクロ実行後エクセルを閉じたい

    2つの別々のファイルを開いて片方からもう片方にコピーして 保存して終了する。(両方とも閉じる) というマクロを作ったのですが コピー終了後に実行したマクロ付きのエクセルも閉じてデスクトップ上には何も開いていない状態にしたいのですがworkbookのところに 下記の命令を記述してもうまくいきません。 Application.Run "XXXXXX" ThisWorkbook.Save ThisWorkbook.Saved = True If Workbooks.Count <= 1 Then Application.Quit ThisWorkbook.Close False マクロ付きのエクセルも一旦は閉じるのですがその後に 別の白紙のブックが開いてしまうのです。 続けて他のマクロをスケジュールで実行したいのですが実行時に 「既にエクセルが開いています」みたいな警告が表示され 実行できません。 エクセルを完全に閉じるようにするにはどうしたらいいのでしょうか?

  • エクセル:マクロを実行しているときの、めまぐるしい画面の動きを

    マクロを実行しているとき、実際のアクティブシートで処理されている動きがディスプレイ上でめまぐるしく動きますが、 (1)例えば、マクロの実行中の間中、「しばらくお待ちください!」だけを表示したい。 (2)可能ならば、あと約何分で終了という表示をしたい。 せめて、(1)だけでもしたいのですが、お願いします。

  • Excelのマクロが実行されません

    昨日、ExcelでマクロやVBAを作成してみました。 きちんと実行できていましたが、 今日やってみようと思ったら、 「このプロジェクトのマクロは無効に設定されています」とエラーメッセージが出て、実行できませんでした。 セキュリティーレベルは中にしてあります。 また、マクロの有効オプションを選択するように、ヘルプに書いてありますが、エクセルを起動しても、その表示が出ません。 どうしたら、いいのでしょうか。 ちなみに、他のパソコンでは正常に起動します。 どうか教えてください。

  • エクセル マクロで自動実行と終了について

    エクセルで作ったマクロを自動実行・自動保存・自動終了したいので、下記のような 記述のマクロをつくり、Windowsのタスク処理で1回/日実行させようとしています。 ----<ここから>------------------------------------ Sub Auto_Open()    :   :   Workbooks("ekuseru.xls").Close SaveChanges:=True End Sub ----<ここまで>------------------------------------ 質問その1  マクロを編集したい場合はどうすればいいのでしょう?  そのBookを開くとマクロが動き出し、保存した上で終了してしまいます。  マクロ無効でBookを開くと「ツール」⇒「マクロ」⇒「マクロ」で「編集」はクリッ  クできないようになってます。 質問その2  マクロが終了するとき、Bookは閉じますがエクセル自体は閉じません。  (意味通じますか?)  エクセル自体を閉じるにはマクロの記述はどうすればいいのでしょう? 以上、よろしくお願いします。

  • Access2000のVBAでエクセルマクロ実行

    お世話になります。 Access2000のVBAでエクセルのマクロとアクセルのマクロを 交互に実行したいと思っております。 (1)エクセルのマクロ1を実行 (2)アクセスのマクロAを実行 (3)エクセルのマクロ2を実行 と交互に実行したいのです。 下記のサイトなどを参考に試みたのですが、 http://www.nurs.or.jp/~ppoy/access/access/acX005.html (1)を実行している途中に (2)が進んでしまいます。 どのようにすれば、(1)が終わってから(2)と、前の処理が 終わってから次の処理に進むことが出来るのでしょうか? Access2000のVBAから指示をかけたいので、 Access2000のVBAのコードで教えて頂ければと 思います。

  • エクセルでマクロを実行中に「クリップボードに大きな情報が・・」

    エクセルでマクロを実行中に「クリップボードに大きな情報があります。この情報をほかのプログラムに貼り付けるられるようにしますか?」というメッセージが表示され処理が中断されます。この表示が出ないようにしたいのですがどうしたらよいのでしょうか?

  • エクセル マクロ たまに固まる!

    超初心者です。よろしくお願いします。 最近マクロに興味を持ち始めたのですが、たまに実行するとエクセルが固まって閉じられなくなるときがあります。確か「なんとかの情報をなんとかしています。この処理には数分かかります。」みたいなメッセージが出ていたような気がします。 タスクマネージャのアプリケーションからも終了できず、プロセスから終了すると閉じることができました。これは防ぐことのできないトラブルですか?

  • Excel起動時にマクロを実行させない

     皆さんこんにちは。宜しくお願いしますm(_ _)m。  Excelでマクロを含んだファイルを作成していたのですが、急に「不正な処理」でファイルそのものが起動できなくなってしまいました。  どうやら、Excel起動時に実行されるマクロに問題が有るようなので、実行を中止したいのです。  ショートカットキーがあったと思うのですが、どうしても思い出せません。助けてくださいm(_ _)m!

  • EXCELのマクロ実行トリガ

    お世話になります。 EXCELでマクロなどを作った時に、「マクロ」→「マクロの表示」→「実行」としなくても、シート上にスイッチの絵などを配置して、それをトリガにするのはどうするのでしょうか? 宜しくお願い致します。

  • AccessでExcelのマクロを実行させたい

    WinXpでAccess2002を使用しています。 今、Accessのマクロで、ExcelのAファイルを出力させましたが、この後、続けて、以降の処理を行うにはどのように記述すれば良いでしょうか? (1)ExcelのAファイルを開く。 (2)AファイルのマクロA-1を実行させる。

専門家に質問してみよう