いけず言葉しりとり

エクセルに入力済みの連続したデータを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 回答 (3件)

このマクロは、そのデータとは関係のない余計なデータが右側セル、下側にあると、誤動作しますので、その点は注意してください。


必ず、<標準モジュール>でお使いください。

'目的のブックのシートを開いたままお使いください。
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
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/05/10 16:05

#1です。


保存するフォルダの指定がありました。
Dpath="zzz" としてください。
このままだと、Excelファイルのあるパスに保存します。
    • good
    • 0
この回答へのお礼

了解しました。

お礼日時:2005/05/10 16:07

これでどうですか。


Sub テキストファイル出力()

Sheets("sheet1").Select
i = 2
Dpath = ActiveWorkbook.Path
While Cells(i, 1) <> ""
Open Dpath & "\" & Cells(i, 1) & ".txt" For Output As #1
For j = 1 To 3
Print #1, Cells(1, j)
Print #1, Cells(2, j)
Print #1, ""
Next j
Close
i = i + 1
Wend

End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。やってみましたが、何も保存されませんでした。

お礼日時:2005/05/10 16:06

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

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


おすすめ情報