質問: “aabbcc”
回答: う~ん サンプルのステートメントをよく噛みしめていますか? 現在のシート数はどうやって求めましたか? worksheets.count ですよね。これが常に現在の シート数を持っているのです。コピーして、シートが 増えたらこのcountプロパティも増えます。 論理的には以下のようなコードになるでしょう。 dim 現シート数 as integer dim 最終シート as excel.worksheet dim 最新シート as excel.worksheet do '末尾にシートをコピーする 現シート数 = xlbook.worksheets.count 最終シート = xlbook.worksheets(現シート数) xlsheet.copy(after:=最終シート) 最新シート = xlbook.worksheets(現シート数 + 1) '***** 何らかの処理 ***** if 終了 then exit do loop 尚、最初からシート数が分かっているような実務は 殆どありませんよ。30年以上この商売してますが、 そんなのは1回あったかなかったくらいです。 ついでに言うと、複数形のものはコレクション、 単数形のものはオブジェクトと言います。 workbooksはコレクションで、workbookの集合です。 だから、count(個数)があり、メンバを追加する意味で add(新規ブック作成)やopen(既存ブックを開く)という メソッドがあります。メンバを減らすのはcloseです。 同様にシートもworksheetsとworksheetがあります。 addやcopyでメンバが増え、deleteで削除されます。 コレクションからはインデックスか名前を指定すると オブジェクトが得られます。上記もインデックスで コレクションからオブジェクトを得ていますよね。 こういう関係を知らないと正確なプログラムは作れ ません。