| 
    
     |  | マスターとなるブック("base.xls"とします)に数値データがあり,あるブック("output.xls"とします)が存在する場合は,このブックを開き,ない場合は,新規ブックを開き,"aaa.xls"又は新規ブックに"base.xls"の数値データをコピーするマクロを作成しています。 以下のようにしました。
 
 With Application.FileSearch
 .Filename = "output.xls"
 If .Execute > 0 Then
 Workbooks.Open Filename:="output.xls"
 Else
 Workbooks.Add
 ActiveWorkbook.SaveAs Filename:="output.xls"
 End If
 End With
 
 そして,次のようにして,コピーを行わせてます。
 
 Windows("base.xls").Activate
 Sheets("sheet1").Select
 range("A1:A50").select
 Selection.Copy
 Windows("output.xls").Activate
 Sheets("sheet1").Select
 range("A1").select
 ActiveSheet.Paste
 (Sheet2についても同様にしてコピー作業を行い,
 以降のSheetも繰り返し行わせています。)
 
 この後,コード化は省略しますが(Call文等があったり長くなるので・・・),貼付した"output.xls"のデータを利用して,さらに別ブック(例えば"result.xls")に必要なデータだけを貼り付けて,別ブックで最終計算を行わせます。
 最後にKill "output.xls"として,"output.xls"自体消去させ,マクロが終了します。
 (直接,"base.xls"から別Sheetに貼り付ければ等と指摘を受けそうですが,今回は無視してください)
 
 今回は新規ブックを"output.xls"と名前を付けて保存させましたが,仮に名前の変更を行わない場合(ActiveWorkbook.SaveAs Filename:="output.xls"を省略),新規ブック名は"Book1.xls"となると思います。
 (自動マクロで新規ブックを開いてコピーをさせる作業を記録させて確認した結果, 勝手に"Book1.xls"となっていました。)
 ただし,この場合,すでに"Book1.xls"が開いていた場合,"Book2.xls"となってしまい,Excelの使用条件によって,一定の名前にならないことが考えられます。
 
 ここで質問なのですが,上記から,新規ブックに特定の名前を付けて保存しておかなければ,いかなる条件においても正常にマクロが作動しないのではと思い,上記のようにコード化したのですが,新規ブック名の変更作業を表すコードは必要なものなのでしょうか?
 
 マクロとしては正常に流れるので問題はないのですが,最後に"Book1.xls"自体も消去させるので,ファイル名の変更作業がなければ,よりベストと考えています。
 簡潔なコードがあれば是非ご教示願います。
 
 よろしくお願いします。
 
 |  |