今更ながら VBA の話。

ワークブックのシートをセパレートし、各シートを独立したブックとして保存するマクロを組んでいて気が付いた。
worksheet.Copy() メソッドや worksheet.Move() メソッドで引数を省略して 「新しい未保存のブックが自動的に作成され対象シートがコピーまたは移動する」 ということをになるのだけれど、このメソッドたちは新たに作られらブックの Workbook オブジェクトを返してくれない代わりに、新しいブックが自動的にアクティブになるらしいです。

つまり
Dim newBook As Workbook
Set newBook = currentSheet.Copy()
newBook.SaveAs "hogehoge"
ではなくて「新規作成されたブックは自動的にアクティブになる(はず)」 という仕様を信じ、
currentSheet.Copy()
Dim newBook As Workbook
Set newBook = ActiveWorkbook
としなければならないようです。
多分裏切られたことはないけれどできれば使いたくない ActiveWorkbook です。
まるで 「鉄棒競技で手を放し、練習通りにクルクル回れば練習通りの場所に棒がある」 みたいな。