別ブックに複数シートのコピー(Excel・VBA)

処理結果を複数のシートに出力した後、その結果のシートだけを別のブックに出力する処理を作っている。 複数のシートを別ブックとして出力する方法は、ネットを見ればすぐにいくつも見つかる。 例えば、こんな感じ。

Application.DisplayAlerts = False ' メッセージボックスを非表示 ThisWorkbook.Worksheets(Array("A", "B", "C")).Copy ActiveWorkbook.SaveAs Filename:=strFileName ' 名前を付けて上書き保存 ActiveWorkbook.Close False ' 新しく作成したブックを閉じる Application.DisplayAlerts = True ' メッセージボックスを表示
それはいいのだけど、出来上がったブックのシートの順番が問題。 ボクは、Array("A", "B", "C") とか Array("B", "A", "C") のように Array の順番にできるのかと思っていたけど、そうではなく元のブックの順番に依ることが分かった。 Array の順がどうであろうとかわらない。 なので、元のブックのシート順を変えるか、コピー後にシートの順番を変えるしかなさそう。
--
はれ

No comments: