プログラムで1シートに10~20のグラフを作成し、
1ブック内に25シートコピーを作る処理をさせています。
途中、10以上シートをコピーをすると、メモリエラーで落ちます。
グラフオブジェクトを含む場合、10シートが限界らしいのですが、
プログラムからの回避策を知っている方、よろしくお願いします。
※グラフのフォント「自動サイズ調整」チェックボックスをオフにする、はダメでした。
※レジストリやWindowsの設定ファイルの変更以外でおねがいします。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
シートの複写や追加は、メモリなどに影響されます。
何もないシートを追加していくだけでも ある数(メモリによって違う)でエラーになります。
25シートだけならば 最初にシートだけ追加してから
後でグラフを作成したらいかがでしょうか?
あと
http://support.microsoft.com/kb/179679/ja
ブックにグラフを123以上または124追加する場合、この問題が発生することがあります。 これが Microsoft Excel での制限です。
ということなので グラフ数は 123以下でないとダメです。
これは エクセルの仕様(不具合?)となりますので こちらのHPに
載っている方法1で回避できないか 試してみたらいいでしょう。
たぶん検索すれば見つかると思いますが、EXCELの仕様(バグ?)でシートのコピーを繰り返すとエラーになるようです。
http://support.microsoft.com/kb/210684/ja
上記ページでは回避策としては、テンプレートを利用する例がかかれていますが、シートコピーではなく、シートを作成してオブジェクトをコピーするようにしても、回避できると思います。
下記の質問ではテンプレートでの回避例を例示しています。
回答ありがとうございます。
同じプログラムで、グラフを含まなければエラーが出ないことは確認済みのため、
>EXCELの仕様(バグ?)でシートのコピーを繰り返すとエラーになる
は、今回当てはまりません。
他にご存知でしたら、よろしくお願いします。
マイクロソフトの説明にもあるようにコピーできるシート数は、実行環境やシートの内容に依存します。
http://support.microsoft.com/kb/210684/ja
注 : ブックを保存する前にワークシートをコピーできる回数は、ワークシートのサイズによって異なります。
空のシートで10枚出来なたから、グラフのあるシートで10枚できるわけではありません。
回避策は先に説明したように、
・個々のシートでグラフを作成するか、
・コピー元を一旦テンプレートとして保存しそれをコピーするか、
あるいは検証していませんが、
・1シートコピーするごとにブックを保存するか
になると思います。
えーっと、実行環境やシートの内容に依存するのはわかっています^^;;
>空のシートで10枚出来なたから、グラフのあるシートで10枚できるわけではありません。
これもわかっています^^;;
ちなみに環境はメモリ2G積んでいます。
その上で、回避策がないですか?という質問なのですが・・・。
>1シートコピーするごとにブックを保存するか
はすでに実装済みです。
テンプレートも同様にエラーが発生します。
質問文がわかりにくかったらすみません。
回答ありがとうございます。
メモリを最低限にするため、
「1シート目にグラフを10~20作成し、そのシートをコピーする」仕様です。
理由は、どのシートも同じテンプレート(表示文字、グラフ数、設定が同じ)になるためです。
また、シートを25枚作成してから各シートにグラフを追加しても、途中でメモリエラーになります。
今回の質問の意図は、「グラフ数は 123以下でないとダメ」な設定をプログラム側でどうにかできないか?
ということです。
他にご存知でしたら、よろしくお願いします。