• ベストアンサー

エクセルでCSV形式で保存するマクロを作成したい。

sheet1,sheet2,sheet3とあります。 そのうちsheet3だけを毎回「data.csv」のcsv形式で保存して画面を閉じ、 元のWorkbookは上書き保存しつつ画面は閉じないようなマクロを作成したいのですが。 よろしくお願いします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.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

miluke
質問者

お礼

お礼が遅くなりましてごめんなさい。 おかげさまで確認メッセージがでなくなり、 スマートなマクロができあがりました。 本当にありがとうございました。

その他の回答 (2)

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.2

普通に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 これを使う場合、保存場所はご自分の環境に合わせて書き換えてください。

miluke
質問者

お礼

>普通にsheet3を選んでdata.csvという名前で保存する >と、sheet3の名前がdataになってしまい、開いてたブッ>ク名もdata.csvに変わってしまいます。 ご指摘のとおりでした。 記述していただいた例を参考に作成したところ 上手くいきました。ありがとうございました。

回答No.1

マクロはプログラムを組まなくてもつくることが出来ます。 マクロの記録機能で、一連の操作を記録することが出来ますので、要望されている内容も記録が出来ます。試しにやってみましたが成功しました。

関連するQ&A