ここから本文です

エクセルのマクロでシートをcsvとして出力するにはどうしたらいいですか。 シ...

chocolateさん

2012/12/1522:39:33

エクセルのマクロでシートをcsvとして出力するにはどうしたらいいですか。
シートが複数ある場合は、シート1をcsv1、シート2をcsv2というふうに出力したいです。

名前をつけて保存ではなくボタンを押すと保存できるようなものにしたいです。

補足現在、自分のファイルがある同じフォルダに出力する場合にはどのように指定したらいいでしょうか?

閲覧数:
1,542
回答数:
1

違反報告

ベストアンサーに選ばれた回答

blu********さん

編集あり2012/12/1813:46:05

基本的には、シートを新たなBookにコピーして、そのBookを名前を付けてCSVで保存します。


例えばSheet1をC:\sample\csv1.csvで保存する場合です。

Sub sample()
Sheets("Sheet1").Copy 'Sheet1を新たなBookとしてコピー
ActiveWorkbook.SaveAs "C:\sample\csv1", xlCSV 'そのBookをcsvsで保存
ActiveWorkbook.Close False '保存したから閉じる
End Sub




全シートを"C:\sample\"にcsv1.csv~で保存する場合です。

Sub sample()
Dim i As Integer
For i = 1 To Sheets.Count '1からシート数まで
Sheets(i).Copy 'i番目のシートを新たなBookとしてコピー
ActiveWorkbook.SaveAs "C:\sample\csv" & i, xlCSV 'そのBookをcsvsで保存
ActiveWorkbook.Close False '保存したから閉じる
Next
End Sub




[ 補足へ ]
VBAのあるBookのパスは「ThisWorkbook.Path」で求められます。
全てのシートを出力する場合です。

Sub sample()
Dim i As Integer
For i = 1 To ThisWorkbook.Sheets.Count '1からシート数まで
ThisWorkbook.Sheets(i).Copy 'i番目のシートを新たなBookとしてコピー
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\csv" & i, xlCSV 'そのBookをcsvsで保存
ActiveWorkbook.Close False '保存したから閉じる
Next
End Sub

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる