人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: kaiketsu
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:VBA エクセル コピー ペースト 作成
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ken3memo
●27ポイント

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

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

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


2 ● degucho
●27ポイント

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

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

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

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

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

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

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

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

http://pasokoma.jp/bbsb/lg377219


3 ● jccrh1
●26ポイント

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

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

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

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

再表示し使用しました。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ