dポイントプレゼントキャンペーン実施中!

VBAを使って、エクセルを1000個起動するとします。

エクセルを100個程度起動したところで、
画面の表示が乱れたり、メモリ不足になったりします。

画面の表示の乱れについてですが、
シートをぐちゃぐちゃに表示したようなものが画面一面に表示されたりします。
ウインドウがどうこう以前に、表示自体がすべて崩壊しています。
マウスでの操作も不可能になります。

その後、数秒~数十秒後にブルーバック画面になってPCが落ちました。
表示のバグにより、メモリの読み書きにエラーが生じすぎて、
度を越したところでブルーバックになったと思われます。


一つのエクセルに、1000個のWorkbookを開くのではありません。
1つのアプリケーション(エクセル)に、1つのWorkbookがある状態です。

エクセル自体を別々のウィンドウで起動している状態です。

起動させるVBAで使用している変数はVariantです。

変数を定期的に解放しないことによるメモリ不足が原因でしょうか?
すみません。メモリ不足についてはほとんど知りません。


■マシン条件
メインメモリ4GB
Excel2003

32・64bitとも症状は大体同じ
Windows7,XPとも症状は大体同じ
ここでいう症状は、100個程度以上起動したあたりから
正常に起動しなくなる症状です。

A 回答 (3件)

それは単純に、システムリソースの不足が原因です。

そんなにたくさん同時に立ち上げることは、通常ではあり得ないため、Windows側の備えが不足しています。

システムリソース(ヒープ)の拡張方法は次のURLにありますが、これを例えば128MBとかに拡張した場合、OS自体が正常に動くかどうかは解りません。

http://trendy.nikkeibp.co.jp/article/tech/200708 …
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

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

お礼日時:2010/02/18 23:28

こんにちは。



1000個や2000個程度のファイルを処理するマクロなんて、ざらにあるのではありますが、問題は、コードの質的な問題であって、メモリなどの物理的な問題ではないと思っています。

なお、一応、「32・64bitとも症状は大体同じ」というあたりは、了解済みのことだと思います。

>起動させるVBAで使用している変数はVariantです。
>変数を定期的に解放しないことによるメモリ不足が原因でしょうか?

このように書かれても、それ自体が問題ではありません。その内容です。まず、VBAのコードは、どうなっているかだと思います。
    • good
    • 0

他の方も書かれていますが、単にリソース不足に陥っただけかと。


リソースに関しては、どんなにメモリを積んだところで、ある一定量から増える事はありません。
メモリに余裕があるのに異常に遅くなったというのは大抵がリソースが限界に達している所為です。

というか、普通の使い方でそういうことをする事自体が異常ですし。
それを意図的に起こしている例がブラウザクラッシャー等なわけだし。

そのようにしなければいけない理由でもあるのでしょうか?
単なる実験で試してみただけでしょうか?
Excelを1000も起動させる意図がわかりません。

ちなみにExcel一つで大体2~MBのメモリを消費しますから、
1000も立ち上がれば、最低2GBはメモリを使う計算。
まぁ、それ以前にプロセス数の限界に達してしまいますが。
デフォルト状態でも100プロセス程度が限界だったはずだし。
100個を越えた辺りから正常に起動しないというのはこの辺の関係でしょう。

ただの興味本位なら、PC崩しかねないので止めた方が良いと思いますよ。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
プロセス数に限度があるのですね。
初めて知りました。

早速、プロセス数の増やし方を探してみます。

お礼日時:2010/02/18 23:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!