質問: "s"&thisworkbook.worksheets(1).cells(i,1).value next i end sub
回答: >worksheets.Add after:=worksheets(worksheets.count)が >黄色になります。 本当ですか?追加しようとしているブックには、シート数が万単位になっているという訳じゃないのですよね? このステップでエラーが起きることはありえないですね。 >最後に追加されたシートは名前が変更されていませんでした。 のなら、エラーが起きたのは、ここ activesheet.name = "s"&thisworkbook.worksheets(1).cells(i,1).value じゃないですか? であれば、このステップの直前に、一時的に MsgBox "s" & ThisWorkbook.Worksheets(1).Cells(i, 1).Value & vbLf & _ "i=" & i といったステップを挿入して、作られようとするシート名を表示して、 シート名が重複する名前でない シート名に禁則文字や名前の長さ制限に抵触してないか をチェックしてください。 私の推察では、シート名の重複でしょうね、きっと。 このプログラムが、1回目と2回目に呼ばれるとき、 最終行lrの値が変わっていた(最終行が追加されていた)としても このステップで、 >for i = 6 to lr 6から変わる前の最終行のA列の値まで、再使用されますね。 1回目と2回目に、A列の値が変わらない限り、2回目のシート作成に使われる名前は重複します。