• ベストアンサー

ExcelでのCSV出力

シート内の一部のデータをCSV形式にて出力したいのですが どのようにしたらよろしいのでしょうか? ちなみにこの処理をVBAにて実行させたいと思っております。 その際、保存する名前もデータ内から取得させたいと思っております。 どなたか、教えてください!!

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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)
回答No.3

シート(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で動作確認済みです。

noname#4564
noname#4564
回答No.2

Excel.Worksheet.SaveAs FileName:=Path, FileFormat:=xlCSV > シート内の一部のデータを の場合は、選択範囲を新規シートにコピーしてから保存。

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.1

最後のカンマの処理が、いいかげんですが。 うまくモディファイして、ご利用ください。 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

関連するQ&A