• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelの一行を一ファイルとして保存する方法は?)

Excelの一行を一ファイルとして保存する方法は?

このQ&Aのポイント
  • Excelの一行を一ファイルとして保存する方法について教えてください。
  • シートの一行ごとにTXTファイルを作成する方法を教えてください。
  • Excelのセル内のデータを維持したまま、一行ごとにファイルに保存する方法を教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1のものです。補足にご記入された内容になるように修正 します。 (1)A列のセル内容がファイル名になります。 (2)もとのシートのあるi行の A列--->CSVファイルをエクセルへ読みこんだ時のA1セルに B列--->A2セルへ C列--->A3セルへ。以下同様。 ファイル名に使ったA列も、CSVファイルへ持ってきて(残して)います。 になります。小数例でテスト済み。 Sub test02() d = Range("a1").CurrentRegion.Rows.Count For i = 1 To d s = "" Open "c:\my documents\" & Cells(i, "A") & ".csv" For Output As #1 For j = 1 To 5 Print #1, Cells(i, j) Next j Close #1 Next i End Sub

hiro-ss
質問者

お礼

imogasiさん、お手数をかけました。 修正していただいたVBAで希望通りできました。 わがまま言って済みませんでしたが、これでバッチリです。 有難うございました。           *ヒロ*

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

なんで答えが入っていないのだろう。難しくて下記ではダメなのかな。 5列のエクセルシートが1シートあるとします。5は本番に合わせて変えてください。各列同一列数でないときは その行のその列の内容Cells(i,j)が""かどうか聞く、ロジックに変えてください。(その場合は""セルが中間にないものと仮定します。) 下記で各行が別CSVファイルになると思います。少数例でテスト済み。 Sub test02() d = Range("a1").CurrentRegion.Rows.Count For i = 1 To d s = "" Open "c:\my documents\aax" & Trim(Str(i)) & ".csv" For Output As #1 For j = 1 To 5 If j = 1 Then s = Cells(i, j) Else s = s & "," & Cells(i, j) End If Next j Print #1, s Close #1 Next i End Sub

hiro-ss
質問者

補足

imogasiさん、レスが送れすみません。 昼間は会社なもんですから。 (^_^; 作って頂いたVBAをやってみましたら、一行が一枚のファイルとして出来ました。 ただファイル名が元のBook+連番になるんですが、Excelのその行のAセルに入っている番号(123や999など)にしたいんです。 それと、ExcelのAセル,BセルがCSVファイルのAセル,Bセルとして保存されるんですが、txtファイルの1行目,2行目にならないでしょうか。 できればよろしくお願いします。                *ヒロ*