• ベストアンサー

エクセルを1000個起動すると、表示がバグってしまう原因

VBAを使って、エクセルを1000個起動するとします。 エクセルを100個程度起動したところで、 画面の表示が乱れたり、メモリ不足になったりします。 画面の表示の乱れについてですが、 シートをぐちゃぐちゃに表示したようなものが画面一面に表示されたりします。 ウインドウがどうこう以前に、表示自体がすべて崩壊しています。 マウスでの操作も不可能になります。 その後、数秒~数十秒後にブルーバック画面になってPCが落ちました。 表示のバグにより、メモリの読み書きにエラーが生じすぎて、 度を越したところでブルーバックになったと思われます。 一つのエクセルに、1000個のWorkbookを開くのではありません。 1つのアプリケーション(エクセル)に、1つのWorkbookがある状態です。 エクセル自体を別々のウィンドウで起動している状態です。 起動させるVBAで使用している変数はVariantです。 変数を定期的に解放しないことによるメモリ不足が原因でしょうか? すみません。メモリ不足についてはほとんど知りません。 ■マシン条件 メインメモリ4GB Excel2003 32・64bitとも症状は大体同じ Windows7,XPとも症状は大体同じ ここでいう症状は、100個程度以上起動したあたりから 正常に起動しなくなる症状です。

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.1

それは単純に、システムリソースの不足が原因です。そんなにたくさん同時に立ち上げることは、通常ではあり得ないため、Windows側の備えが不足しています。 システムリソース(ヒープ)の拡張方法は次のURLにありますが、これを例えば128MBとかに拡張した場合、OS自体が正常に動くかどうかは解りません。 http://trendy.nikkeibp.co.jp/article/tech/20070809/1002010/

emson100
質問者

お礼

ご返答ありがとうございます。 早速システムリソース(ヒープ)を増やしてみます。 Win7はデフォルトが20480でした。3倍位で試してみます。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 1000個や2000個程度のファイルを処理するマクロなんて、ざらにあるのではありますが、問題は、コードの質的な問題であって、メモリなどの物理的な問題ではないと思っています。 なお、一応、「32・64bitとも症状は大体同じ」というあたりは、了解済みのことだと思います。 >起動させるVBAで使用している変数はVariantです。 >変数を定期的に解放しないことによるメモリ不足が原因でしょうか? このように書かれても、それ自体が問題ではありません。その内容です。まず、VBAのコードは、どうなっているかだと思います。

  • MRT1452
  • ベストアンサー率42% (1392/3296)
回答No.2

他の方も書かれていますが、単にリソース不足に陥っただけかと。 リソースに関しては、どんなにメモリを積んだところで、ある一定量から増える事はありません。 メモリに余裕があるのに異常に遅くなったというのは大抵がリソースが限界に達している所為です。 というか、普通の使い方でそういうことをする事自体が異常ですし。 それを意図的に起こしている例がブラウザクラッシャー等なわけだし。 そのようにしなければいけない理由でもあるのでしょうか? 単なる実験で試してみただけでしょうか? Excelを1000も起動させる意図がわかりません。 ちなみにExcel一つで大体2~MBのメモリを消費しますから、 1000も立ち上がれば、最低2GBはメモリを使う計算。 まぁ、それ以前にプロセス数の限界に達してしまいますが。 デフォルト状態でも100プロセス程度が限界だったはずだし。 100個を越えた辺りから正常に起動しないというのはこの辺の関係でしょう。 ただの興味本位なら、PC崩しかねないので止めた方が良いと思いますよ。

emson100
質問者

お礼

ご返答ありがとうございます。 プロセス数に限度があるのですね。 初めて知りました。 早速、プロセス数の増やし方を探してみます。

関連するQ&A

  • VBA 起動時にエクセルの画面が表示されてしまう

    VBA 起動時にエクセルの画面が表示されてしまう こんにちは、VBA初めて1週間ぐらいの初心者です よろしくお願いします 動作環境として、OS:XP excel:excel2007 を使用しています まずはじめに、エクセルを開いて内容変更セーブして終了するというマクロを組んだのですが 別のプログラムから、 そのエクセルファイルに起動をかけて マクロを実行し終了するよう作りました。  /*** コード ***/ ThisWorkbook 0  Private Sub Workbook_Open() 1   Application.Visible = False          //エクセル画面を消す 2    3   call 内容変更し保存する関数()        // 標準モジュール内 SUB 関数 4    5   ThisWorkbook.Saved = True           // セーブしたことにする 6   If Workbooks.Count <= 1 Then Application.Quit // 他のエクセルが開いてない場合のみ終了する 7   ThisWorkbook.Close False            // エクセル終了 8  End Sub  /*** コード ***/ 質問1 ・1行目にエクセルの画面を消す関数を、プログラムの先頭に来ると思われる部分に入れて実行してみたのですが、 どうしても、起動してから画面を消す処理が始まるまでに、一瞬だけexcelのファイルが表示されてしまうのですが これを回避する方法はありますでしょうか? VBAを使ってマクロの処理をするのですが、 使う方にエクセルを使っているという事を悟られたくないのです 質問2 ・6行目、開いてるエクセルが自分だけの場合のみエクセルを終了すると組んだつもりなのですが、 処理を流すとエクセルで開いているファイルがすべて閉じてしまいます。 記述を間違えていたりしますか? 以上 ご教授お願いいたします <<検索ワード>> VBA VBA 起動画面表示 起動画面非表示 起動画面を出さない 起動画面を消す

  • EXCELを起動したとき120%の表示で起動させたい

    Windows7 Office2007でWordやEXCELを起動したとき、特にExcelの画面表示を120%の表示で起動させたい

  • ブルーバックで落ちて再起動する

    ブルーバックで落ちて再起動するんですが、そのブルーバックの画面が表示されて1秒もたたないうちに再起動するため、原因などの特定がまったく特定できません。 とりあえず、そのブルーバック画面を見たいのですが、その方法はありますか? ブルーバックは最近出るようになりましたが、変わったことは・・・ケースを変えたんですが(よく分からないどっかのケース→Antec Nine Hundred)そのときに何かやっちゃったか・・・自分でも良く分かりません。

  • エクセルの使用中に突然再起動に

    エクセル使用中に突然画面がブルーになり英語で色々表示がしてあるのですが、数秒後に電源が落ち、再起動しますか?と表示がでます。 毎回の事ではないのですが、再起動後データの保存がされていないので困っています。(PCはDell・inspiron・1520を使用しています)

  • Windows7 Word,Excel 起動が遅い

    最近Word、Excelの起動に時間がかかるようになりました。 <Word>  起動するとすぐに”Word2007”と一瞬ロゴ画面が出てすぐ消えWordのベース画面(?)が出るが画面一番上のメニューバーと一番下のステータスバーに何も表示されず、画面は全体が青色の画面になります。 その後、画面上に用紙が表示されてカーソルが点滅するまでの時間が約15秒かかります。 <Excel>  起動するとすぐに”Excel2007”と一瞬ロゴ画面が出てすぐ消えExcelの画面が出ます。  こちらは画面一番上にメニューバーとツールバー、画面一番下にステータスバーも正常に表示されるが、シートが表示されるまでの時間が約15秒かかります。 この症状に気が付いたのは10日ほど前ですが、いつからなのかはよく分かりません。 3月14日にWindowsのUpdateを行っているので(Office関係の更新が9個位ありました)、更新前の状態に戻してみましたがこの症状は改善できませんでした。 非常に特徴的なのが、無線LANスイッチをOFFにするとWordもExcelもほぼノータイム(1秒程度)で起動するのに、無線LANスイッチをONにするとこの症状が出ます。 原因と復旧方法が分かれば教えてください。 よろしくお願いします。

  • 起動しません…

    富士通FMV-BIBLO NB19Dです。姉から「家のパソコンがおかしい」と、預かったものの分かりません。症状は、電源を入れ、WINDOWSの画面でしばらく待つ~英語の画面が一瞬出る(バックがブルー)~FUJITSUの画面が数秒~「カリカリカリ」と言う感じの音がする、で、またWINDOWSの画面に戻る、を繰り返します。分かる方、宜しくお願いします。

  • 起動中にブルーバックのエラーが出て、再起動する。

    2006年12月初旬ころから 起動して10分位するとブルーバックのエラーが2秒くらい 表示されてパソコンが再起動される。 ウイルスチェックも異常なし。 当初は復元作業で異常が出る前に戻していたら よくなっていたが3月位からそれも効き目がなくなってきた。 先日はついに3度この症状を繰り返して パソコンが起動しなくなった。 NECロゴ・ウインドウズXPロゴで黒い画面で終わり。 仕方がないので再セットアップしたが また始まった。 挙句に今日は 「ソフトウエアでエラーが発生したため Windowsを起動できませんでした。 この問題を報告してください。 カーネルに必要なDLLを読み込みます。 サポート担当者に連絡し この問題を報告してください。」 の表示が出た。 (1)どこに報告するのか (2)解決方法はあるのか 同様な症状で悩んでいる方 対処方法をご存知の方は お聞かせください。 なおブルーバックのエラーは 2秒位出て早く切れますので何が書いてあるか わかりません

  • VB2005で起動中のExcelを取得したい

    VB2005で目的のファイルが起動中か判断し、起動中の 場合、そのファイルを変数に代入し、未起動の場合は 起動して変数に代入したいのですがどのような手法を とればいいでしょうか? 新規に開く場合は次のようにしています。 Dim oBook As Excel.Workbook = oBooks.Open(pFilePath)

  • エクセルの再表示の仕方

    エクセルを非表示にしてフォームだけを表示するようにしてエクセルを終了させてしまいました。 まだそのマクロは完成しておらず、テスト的に試してみただけです。 そのファイルを起動するとフォームしか表示されないため、コードを表示させることができません。 どうしたらエクセル(VBAの画面)を表示できるようになりますか?

  • 非表示になったエクセルは?

    VBAマクロでパソコン画面からエクセルを非表示にする場合、 Sub TEST1() Application.visible = False End Sub で画面からエクセルが消えると思いますが、消えたエクセルはどうなってしまうのでしょうか? 何もしなければいつまでもそのままなのでしょうか? 電源を切ればでてくるのでしょうか? Application.visible = Trueで表示されるのはわかりますが、消えたエクセルにどうやってそのマクロを作動させたら良いのでしょうか? 10秒後に自動的に再表示させる方法はマクロに最初から Application.OnTime Now + TimeValue("00:00:10) などで自動実行させればよいのでしょうが、そうでない場合の再表示方法を教えてください。

専門家に質問してみよう