- ベストアンサー
ExcelでのCSV出力
シート内の一部のデータをCSV形式にて出力したいのですが どのようにしたらよろしいのでしょうか? ちなみにこの処理をVBAにて実行させたいと思っております。 その際、保存する名前もデータ内から取得させたいと思っております。 どなたか、教えてください!!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
CSVで保存したい範囲を指定して、下記を実行してください。ファイル名をセルから取るなら Open "c:\my documents\" & cells(1,1) & ".csv"とすれば良いでしょう。 Sub test02() Dim c As Range fst = "y": m = 1 Open "c:\my documents\ccx.csv" For Output As #1 For Each c In Selection If c.Row = m Then If fst = "y" Then s = c fst = "n" Else s = s & "," & c End If Else Print #1, s s = c End If m = c.Row Next Print #1, s Close #1 End Sub テスト済み
その他の回答 (3)
- TTak
- ベストアンサー率52% (206/389)
シート(Sheet1)内の一部(セル範囲[A1:H38])のデータを新しいファイルにして、元のデータファイルと同じフォルダにCSV形式で保存するマクロです。ファイル名はセル[A1]の値を使った場合、次のようなサンプルになります。 Sub CSV_SAVE() Dim myFilePath As String Dim myFileName As String myFilePath = ThisWorkbook.Path & "\" myFileName = Sheets(1).Range("A1").Value & ".csv" Workbooks.Add ActiveWorkbook.Sheets(1).Range("A1:H38").Value = _ ThisWorkbook.Sheets(1).Range("A1:H38").Value With Application .DisplayAlerts = False .ScreenUpdating = False ActiveSheet.SaveAs _ Filename:=myFilePath & myFileName, _ FileFormat:=xlCSV ActiveWorkbook.Close False .DisplayAlerts = True .ScreenUpdating = True End With End Sub WINDOWS2000+EXCEL2000で動作確認済みです。
Excel.Worksheet.SaveAs FileName:=Path, FileFormat:=xlCSV > シート内の一部のデータを の場合は、選択範囲を新規シートにコピーしてから保存。
- PAPA0427
- ベストアンサー率22% (559/2488)
最後のカンマの処理が、いいかげんですが。 うまくモディファイして、ご利用ください。 Private Sub CVS_Wirte() FL = Worksheets("Sheet1").Cells(1, 1).Text Open FL For Output As #1 For rwIndex = 1 To 4 For colIndex = 1 To 10 Write #1, Worksheets("Sheet1").Cells(rwIndex, colIndex).Text & "," Next colIndex Next rwIndex End Sub