• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロ)

エクセルマクロ:入力したワークシートを新しいブックにコピーして保存する方法

このQ&Aのポイント
  • エクセルマクロを使って入力したワークシートを新しいブックにコピーして保存する方法について紹介します。
  • ただし、コピーしたワークシートには元のエクセルファイルの数式も含まれてしまうことがあります。
  • 値のみを貼り付ける場合は、値を貼り付けながら新しいブックにコピーすることができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

> 教えていただいたように値コピー貼り付け後 > 新しいブックにワークシートコピー > そのあと元ファイルの値のみにしたワークシートを削除 値貼り付けした時点でVlookup関数は値になります、先の回答と同じ結果です。 値貼り付けするけどC列のVlookupだけ関数を残したいという事ですか? Vlookup関数が別シートを参照しているので普通にコピーしてBook名が付加されるのを避けたいとか。 とりあえず、いまいちやりたいことが理解できませんが Vlookupが別シートを参照しているのでしたら、そのシートも新しいブックにコピーして、Vlookup関数も生かします。 Sheet2はVlookupで参照しているシートです。 Vlookup以外の関数は値になります。他の関数も残したいのであれば(質問時の値貼り付けはなんだったのかになりますが)、ここから、ここまで、の間は不要です。 Sub newfilesave() Dim c As Range Sheets("Sheet1").Copy 'ここから ActiveSheet.Cells.Copy ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False ActiveSheet.Range("A1").Select 'ここまで ThisWorkbook.Sheets("Sheet2").Copy _ After:=ActiveWorkbook.Sheets(1) With ThisWorkbook.Sheets("Sheet1") For Each c In .Range(.Cells(1, "C"), .Cells(Rows.Count, "C").End(xlUp)) ActiveWorkbook.Sheets(1).Cells(c.Row, "C").Formula = c.Formula Next End With ActiveWorkbook.Sheets(1).Activate '名前を付け、ファイル形式も決めてデスクトップに日付を付けて保存する。。 'ActiveWorkbook.SaveAs _ ' Filename:="C:\Users\xxxxx\Desktop\" & Format(Now(), "yyyymmdd_hhmm"), _ ' FileFormat:=xlOpenXMLWorkbook End Sub

nenosuke
質問者

お礼

回答いただきありがとうございました。 あまり詳しくなく最初にお答えいただいた プログラムでうまく動きました。 内容をきちんと解釈できなかったためにお手数をおかけしました。 とても参考になりました。ありがとうございました

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

以下のようにしてみてはいかがですか。 Sub newfilesave() Sheets("Sheet1").Copy ActiveSheet.Cells.Copy ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False ActiveSheet.Range("A1").Select '名前を付け、ファイル形式も決めてデスクトップに日付を付けて保存する。。 'ActiveWorkbook.SaveAs _ ' Filename:="C:\Users\xxxxx\Desktop\" & Format(Now(), "yyyymmdd_hhmm"), _ ' FileFormat:=xlOpenXMLWorkbook End Sub

nenosuke
質問者

補足

回答いただきありがとうございます。 質問の時に書く忘れてしまったのですが、 元のファイルで B列に入力されたデータを元にC列がVookupで埋まるようになっており 元ファイルのC列ができればその関数が残ったままになるよう 運用できればと思っています。 この場合ワークシートを元ファイルのブック内にコピー後 教えていただいたように値コピー貼り付け後 新しいブックにワークシートコピー そのあと元ファイルの値のみにしたワークシートを削除 という方法になるでしょうか?

関連するQ&A