• ベストアンサー

EXCEL→CSV形式で別ファイルに保存

EXCELデータ内のある1つのシートのデータをそのまま別ファイル(CSV)に保存したいのですがうまくいかないので教えてください。 本を見ながらこのようなマクロを作ったところ、EXCEL(○○.xls)の指定したシート(keihi)のみをCSV形式で別フォルダ(C:\経費振替)に保存することができたんですが、 元のEXCELも、ファイル名称・形式がCSV(○○.xls→keihi.csv)に変わってしまいます。 エクセルのファイル名、形式は変えずにできる方法ってありますか?? Sub データはきだし() Dim Ret As String Dim Res As Integer Dim FolderName As String Set WK1 = Worksheets("1 依頼書") Set WK4 = Worksheets("keihi") FolderName = "C:\経費振替" Ret = Dir(FolderName, 16) If Ret = "" Then Res = MsgBox("DATA保管用フォルダを作成します。", vbYesNo) If Res = vbYes Then MkDir FolderName End If End If ' Dim Res2 As Integer Res2 = MsgBox("DATAを作成します。", vbYesNo) WK4.Select If Res2 = vbYes Then With WK4 .SaveAs Filename:=FolderName & "\keihi", FileFormat:=xlCSV ←多分ココが何か間違ってるのだと思うんですが。 End With

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 いくつかやり方はあるのですが、もっとも簡単なのは、たぶん、こんな所でしょうね。 それと、一応、出力ファイル名は、明示的に、keihi.csv  としました。 Dim Res2 As Integer Res2 = MsgBox("DATAを作成します。", vbYesNo) WK4.Select If Res2 = vbYes Then WK4.Copy Application.DisplayAlerts = False '上書きダイアログ無視 ActiveWorkbook.SaveAs _   Filename:=FolderName & "\keihi.csv", FileFormat:=xlCSV ActiveWorkbook.Close False Application.DisplayAlerts = True End If

nakasati
質問者

お礼

ありがとうございます!! このとおりにしてみたら、思い通りのものができました。

その他の回答 (2)

noname#123709
noname#123709
回答No.3

#1です。 Cドライブ直下であれば ActiveWorkbook.SaveAs Filename:="C:\" & "TEST",FileFormat:=xlCSV でOKだと思いますよ。

nakasati
質問者

お礼

ありがとうございます。うまくできました!!

noname#123709
noname#123709
回答No.1

これでできませんか? With WK4 .Copy ActiveWorkbook.SaveAs Filename:=FolderName & "\keihi", FileFormat:=xlCSV End With 私が試したのはこちら・・・。 With Sheets("Sheet1") .Copy ActiveWorkbook.SaveAs Filename:=CreateObject("WScript.Shell").SpecialFolders("desktop") & "\" & "TEST", FileFormat:=xlCSV End With 通常シートをコピーする時は別のシートの前とか後ろとか指定しますが、指定 をしない状態だとコピーしたシートのみの新しいブックが作成されます。 要はその新しく作成されたブックをCSV形式で保存します。

nakasati
質問者

補足

ありがとうございます!! うまくできました(^^) でも、下の方のをそのままコピーして使ったら、デスクトップに保存されるんですね。 これをcドライブ直下にいれたいんですが、その場合はどうすればいいですか??

関連するQ&A