Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37179 / 76732 ←次へ | 前へ→

【44727】新規ブックの処理について
質問  tomo  - 06/11/30(木) 11:19 -

引用なし
パスワード
   マスターとなるブック("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"自体も消去させるので,ファイル名の変更作業がなければ,よりベストと考えています。
簡潔なコードがあれば是非ご教示願います。

よろしくお願いします。
2 hits

【44727】新規ブックの処理について tomo 06/11/30(木) 11:19 質問
【44728】Re:新規ブックの処理について Jaka 06/11/30(木) 13:41 発言
【44751】Re:新規ブックの処理について tomo 06/11/30(木) 17:12 お礼
【44739】Re:新規ブックの処理について Kein 06/11/30(木) 15:45 回答
【44757】Re:新規ブックの処理について tomo 06/11/30(木) 18:38 質問
【44794】Re:新規ブックの処理について Kein 06/12/1(金) 15:38 発言
【44801】Re:新規ブックの処理について tomo 06/12/1(金) 16:58 お礼

37179 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free