エクセルのブックで、VBAを使ってなんどもシートのコピー、ペースト、削除を繰り返したら、新規のシート作成ができなくなりました。そういった制限があるのでしょうか? 現象としては、なんどかやっているうちにコピーがきかなくなり、最後のシートが上書きされるようになりました。

 試したのは、エクセル2003です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/07/20 15:33:48
  • 終了:2009/07/20 20:04:25

回答(3件)

id:ken3memo No.1

ken3memo回答回数243ベストアンサー獲得回数752009/07/20 16:28:08

ポイント27pt

Excelでシートの追加、削除を繰り返すと、

シートの総数は増えていないけど、

[f:id:ken3memo:20090720161932j:image]

オブジェクトに振っている Sheetの番号が増えていきますね。

面白そうなので、マクロ記録に肉付けして、

下記のマクロを走らせました。

Option Explicit

Sub Macro1()

Dim i As Long

Application.DisplayAlerts = False

For i = 1 To 99999

Sheets.Add 'シートを追加する。

Debug.Print ActiveSheet.Name

ActiveSheet.Name = "TEST" '名前をテストにする

Sheets("Sheet1").Select 'Sheets1をコピーする。

Cells.Select

Selection.Copy

Sheets("TEST").Select 'テストで貼り付ける。

Cells.Select

ActiveSheet.Paste

Sheets("TEST").Delete 'テストのシートを消す

Next i

Application.DisplayAlerts = True

End Sub

すると、

Sheet5852

でエラーが発生しました。

5852ってのが、中途半端ですが、途中でエラーで止まります。

もしかすると、内部でオブジェクトを管理している番号が、

シートを追加時に+1されるだけで、使いまわさないので、

制限があるのかもしれませんね。

(シートの総数は増えていないのに、内部管理の関係?)

原因の次は、回避サクだと思うのですが、

Excel2003 シート 制限 で 検索したのですが、記述を見つけれませんでした。(スミマセン)

少し違うかもしれませんが

http://www.moug.net/tech/exvba/0040023.htm

に、同じようなことが書いてありました。

何かの参考となれば、幸いです。

id:degucho No.2

degucho回答回数253ベストアンサー獲得回数672009/07/20 16:41:11

ポイント27pt

ローカルのヘルプにもあると思いますが2000以降はメモリに依存になります。

http://office.microsoft.com/ja-jp/excel/HP051992911041.aspx

ただしこのメモリというのが、マシンの搭載メモリではなくて

Excel自身が確保するメモリ量でこれぐらいのシートで何枚というのは

経験則になってしまいます。

ツール→オプション→新しいブックのシート数で大量に設定できたように

空シートはメモリを食いません。

足りない場合は↓のようにシートのサイズを下げる工夫をしてみてください

http://pasokoma.jp/bbsb/lg377219

id:jccrh1 No.3

jccrh1回答回数111ベストアンサー獲得回数192009/07/20 17:34:03

ポイント26pt

私も業務プログラムで、同じような状態になりました。

EXCELを再立ち上げすれば、またシートコピーは出きるようになります。

 

制限事項は分かりませんが、対処としてはシートは削除しないで再利用することだと思います。

私は必要のなくなったシートは非表示にし、新しいシートを使いたい時に非表示にしたシートを

再表示し使用しました。

 

ダミーURL http://q.hatena.ne.jp/1248071626

  • id:ken3memo
    Excel でプログラムを使用してワークシートをコピーするとランタイム エラー 1004 が発生する
    http://support.microsoft.com/kb/210684/ja
    これかなぁ。
    >この問題を解決するには、次のサンプル コードのように、コピー処理中にブックを定期的に保存したり閉じたりします。

    と書いてあります。
  • id:kaiketsu
    一度とじればいいんですね。
  • id:Mook
    http://q.hatena.ne.jp/1173285638

    過去に同様と思われる質問がありましたが、テンプレートを使用することで
    ある程度は回避できたように思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません