- ベストアンサー
エクセルでCSV形式で保存するマクロを作成したい。
sheet1,sheet2,sheet3とあります。 そのうちsheet3だけを毎回「data.csv」のcsv形式で保存して画面を閉じ、 元のWorkbookは上書き保存しつつ画面は閉じないようなマクロを作成したいのですが。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
次のコードで如何でしょうか。 一切、上書き確認等のメッセージを出さないようにしています。 (もし、必要なら5行目の先頭に ' を付けてください。) 保存パス名を、3行目で指定してください。 Sub Macro5() Dim FilePath As String FilePath = "C:\TEST\" ' <----- 保存パス名指定 Sheets("Sheet3").Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=FilePath & "data.csv", _ FileFormat:=xlCSV, CreateBackup:=False ActiveWindow.Close ActiveWorkbook.Save Application.DisplayAlerts = True End Sub
その他の回答 (2)
- tbobi
- ベストアンサー率45% (544/1189)
普通にsheet3を選んでdata.csvという名前で保存すると、sheet3の名前がdataになってしまい、開いてたブック名もdata.csvに変わってしまいます。 そこで、sheet3を他のブックにコピーして、そのブックをdata.csvで保存するのをマクロの自動記録でしました。 以下の操作を記録します。 1 sheet3を右クリックし、移動またはコピーを選択。 2移動先ブック名で(新しいブック)を選択。 コピーを作成するにチェックを入れて、OKをクリック。 3 dataという名前で、csv形式で保存する。 4 data.csvを閉じる 記録したものの一例です ↓ Sub csv作成() 'sheet3をcsvファイルで保存する Sheets("Sheet3").Select Sheets("Sheet3").Copy Sheets("Sheet3").Select '次の場所にdata.csvで保存し、保存後そのファイルを閉じる ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\My Documents\data.csv", FileFormat _ :=xlCSV, CreateBackup:=False ActiveWindow.Close End Sub これを使う場合、保存場所はご自分の環境に合わせて書き換えてください。
お礼
>普通にsheet3を選んでdata.csvという名前で保存する >と、sheet3の名前がdataになってしまい、開いてたブッ>ク名もdata.csvに変わってしまいます。 ご指摘のとおりでした。 記述していただいた例を参考に作成したところ 上手くいきました。ありがとうございました。
- usagidaisuki
- ベストアンサー率27% (51/183)
マクロはプログラムを組まなくてもつくることが出来ます。 マクロの記録機能で、一連の操作を記録することが出来ますので、要望されている内容も記録が出来ます。試しにやってみましたが成功しました。
お礼
お礼が遅くなりましてごめんなさい。 おかげさまで確認メッセージがでなくなり、 スマートなマクロができあがりました。 本当にありがとうございました。