• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Excel2003】VBAのコピーメソッドを使い、一時的に256以上のシートを扱うことが可能ですか。)

VBAのコピーメソッドを使い、一時的に256以上のシートを扱うことが可能ですか。

このQ&Aのポイント
  • Excel2003のVBAを使い、CSVファイルのデータを読み込み、1レコードごとに新しいシートに展開する処理を行いたいと思っています。しかし、先に展開したシートの数が256を超えるとエラーが発生してしまいます。このシート数カウンタをクリアする方法はありますか?
  • Excel2003のVBAを使用して、CSVファイルのデータを1レコードずつ新しいシートに展開する処理を行っています。ただし、この処理を繰り返していると、展開したシートの数が256を超えるとエラーが発生します。このシート数カウンタをリセットする方法はありますか?
  • Excel2003のVBAを利用して、CSVファイルのデータを1シートに1レコードずつ展開する処理を行いたいのですが、展開したシートの数が256を超えるとエラーが発生してしまいます。このシート数カウンタを初期化する方法はありますか?

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

>この時、最初のCSVファイルから生成されたシート数がクリアされず、 >次のCSVファイルへ引き継がれているようで シートの実態はクリアされていて、内部のカウンタだけ残っているということでしょうか? 別の内部カウンタが存在するのか不明ですが、シートをクリアした時にWorksheets.countが正しい値を示さないということでしょうか? どのようにしてクリアなさっているのか不明ですが、クリアの方法を変えるなどで、正しく認識されるようにできないのかなぁ? あるいは、VBA側でシート数を数える変数を作成しておいて、その変数で制御するようにすれば256シートを超えなくても済みそうですが… (Worksheets(1)~Worksheets(256))

mogmogtae
質問者

お礼

ご回答ありがとうございます。 クリア時にWorksheets.countを見たのですが、 正しい値を示しています。

その他の回答 (3)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

No2です。 >クリア時にWorksheets.countを見たのですが、 >正しい値を示しています。 それなら、シートの数が制限を越えることは無いと思いますが?? ひょっとして値だけクリアして、新しいシートをさらに150シート作成しようとしているのでしょうか? もしそうであるなら、シート数がオーバーするのは当然です。 以下のいずれかの方法でいけるでしょう。 1)クリアするときにシートを削除して(Worksheets.count=1になる)、  次のブックの処理を始める 2)わざわざシートを削除する必要はないので、1ブックの処理は既存の  シート1から始めて、シートがないときに追加作成するようにする。  (無条件でシートを作成するようなことはしない) 3)No3様のご提案のように、1ブックの処理に新しいブックを当てて、次の  処理の前にオールクリア(=次はまた新しいブックで処理)

mogmogtae
質問者

お礼

ご回答ありがとうございます。 お礼が遅くなり申し訳ございません。 その後、教えていただいた方法等を色々試したのですが、 マイクロソフトのサポートオンラインに解決方法がありました。 http://support.microsoft.com/kb/210684/ja 教えていただいた皆様に改めて御礼申し上げます。

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.3

細かい事はわからないのですが、 Sub sample() Dim genponBook As Workbook '原本ブック Dim kekkaBook As Workbook '結果ブック Set genponBook = Workbook.Add '原本ブックを作る Set kekkaBook = Workbook.Add '結果ブックを作る '処理 genponBook.Close SaveChanges:=False '原本ブックを保存せずに閉じる kekkaBook.Close SaveChanges:=False '結果ブックを保存せずに閉じる End Sub とすれば、各々256を超えないのでは?

mogmogtae
質問者

お礼

ご回答ありがとうございます。 なるほど、別ブックにで処理するのですか。 ちょっと試してみます。

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

シート数に関する変数にByte型を使用していませんか?

mogmogtae
質問者

お礼

ご回答ありがとうございます。 残念ながら、シート数に関する変数は使っていません。

関連するQ&A

専門家に質問してみよう