ちょっと変わったマニアな作品が集結

テストデータとして下記を作りました。
ファイル名をaa1.csvで保存しました。

大島,大阪
古河,豊橋
恩田,岐阜
寒川,福島
桐井,新潟
青井,久留米

上記のCSVファイルをマクロを利用して
1行1ファイルのテキストファイルに出力したいです。

また、出力する形式として、
A列をテキストファイル名に
B列のみをファイル文書に書き出したいです。

1行1ファイルのテキストファイルに出力はできたのですが、
A列とB列がテキストファイルの文章として出力されてしまいます。

A列をテキストファイル名に
B列のみをファイル文書に書き出す
マクロを作成することはできるでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

以下のようにしてください。


---------------------------------------
'目的のブックのシートを開いたままお使いください。
Sub ColumnOut2Text()
Dim i As Long
Dim j As Long
Dim Fno As Integer
Dim OutColumn As String
'ユーザー設定
Const myPath As String = "C:\ZZZ\"
'かならず、最後に\ を入れてください。
'
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
Fno = FreeFile()
Open myPath & .Cells(i, 1).Value & ".txt" For Output As #Fno
'For j = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
' OutColumn = .Cells(1, j).Value & Chr(13) & .Cells(i, j).Value & Chr(13)
'Print #Fno, OutColumn
'Next j
'OutColumn = Empty
Print #Fno, .Cells(i, 2).Value 'この行を追加
Close #Fno
Next i
End With
Beep
End Sub
------------------------------------------------
不要な行はコメントアウトしています。
追加した行は、以下の1行です。
Print #Fno, .Cells(i, 2).Value 'この行を追加

尚、sheet1のB列にCSVファイルの2列目のデータ(大阪、豊橋、岐阜等)が格納されていると理解しています。
もし、違っていたら、その旨補足してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。

やりたいことが完璧にできました。

ずいぶん不要な行があったみたいですね。
本当に助かりました。

お礼日時:2016/09/24 00:54

補足要求です。


質問1:
提示された例では、1つのファイルとして
"大島.txt" というファイルをつくり、その内容は "大阪" というようにしたいということでしょうか?

質問2:
>1行1ファイルのテキストファイルに出力はできたのですが、
>A列とB列がテキストファイルの文章として出力されてしまいます。
このマクロを提示していただけますか?
    • good
    • 0
この回答へのお礼

質問1:おっしゃるとおりです。

質問2:
教えてgooにて見つけたものです。

'目的のブックのシートを開いたままお使いください。
Sub ColumnOut2Text()
Dim i As Long
Dim j As Long
Dim Fno As Integer
Dim OutColumn As String
'ユーザー設定
  Const myPath As String = "C:\ZZZ\"
 'かならず、最後に\ を入れてください。
'
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
 Fno = FreeFile()
 Open myPath & .Cells(i, 1).Value & ".txt" For Output As #Fno
 For j = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
  OutColumn = .Cells(1, j).Value & Chr(13) & .Cells(i, j).Value & Chr(13)
  Print #Fno, OutColumn
 Next j
 OutColumn = Empty
 Close #Fno
Next i
End With
 Beep
End Sub

お礼日時:2016/09/24 00:02

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Q1行単位のデータをテキストファイルに保存するマクロ

エクセルに入力済みの連続したデータを1行単位で以下のような内容でテキストファイルを作成し、
かつテキストファイル名を、セルに入力されている文字を使って保存するマクロを作りたいのですが、
どのようにしたら良いのでしょうか?よろしくお願いします。

*エクセルシート
(ファイル名:aaa.xls シート名:sheet1 エクセルシートがあるフォルダ名:yyy)

_|A |B |C |
1|x |y |z |
2|a1|a2|a3|
3|b1|b2|b3|

*テキストファイル(保存するフォルダ名:zzz)

---テキストファイルの内容(ファイル名:a1.txt)
x
a1

y
a2

z
a3
---
---テキストファイルの内容(ファイル名:b1.txt)
x
b1

y
b2

z
b3
---

エクセルはExcel2000でWindows2000を使用しております。

Aベストアンサー

このマクロは、そのデータとは関係のない余計なデータが右側セル、下側にあると、誤動作しますので、その点は注意してください。
必ず、<標準モジュール>でお使いください。

'目的のブックのシートを開いたままお使いください。
Sub ColumnOut2Text()
Dim i As Long
Dim j As Long
Dim Fno As Integer
Dim OutColumn As String
'ユーザー設定
  Const myPath As String = "C:\ZZZ\"
 'かならず、最後に\ を入れてください。
'
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
 Fno = FreeFile()
 Open myPath & .Cells(i, 1).Value & ".txt" For Output As #Fno
 For j = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
  OutColumn = .Cells(1, j).Value & Chr(13) & .Cells(i, j).Value & Chr(13)
  Print #Fno, OutColumn
 Next j
 OutColumn = Empty
 Close #Fno
Next i
End With
 Beep
End Sub

このマクロは、そのデータとは関係のない余計なデータが右側セル、下側にあると、誤動作しますので、その点は注意してください。
必ず、<標準モジュール>でお使いください。

'目的のブックのシートを開いたままお使いください。
Sub ColumnOut2Text()
Dim i As Long
Dim j As Long
Dim Fno As Integer
Dim OutColumn As String
'ユーザー設定
  Const myPath As String = "C:\ZZZ\"
 'かならず、最後に\ を入れてください。
'
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Coun...続きを読む


人気Q&Aランキング