エクセル 一列ごとに1ファイルのテキストファイルへ出力

PC

先日、Excelベースで検討をしていて、一列ごとにテキストファイルに出力したときの自分用メモです。

想定しているのは次の図のように、1行目がCase番号、2行目以降にデータが入っているExcel。

行ごとのデータを出力するマクロがネット上のQ&Aにあったので、それをベースに修正を実施。
2行目以降を1行目のCase番号をファイル名に使いながらそれぞれ別のファイルにエクスポート(出力)するマクロへ修正した。

Sub ColumnOut()
 Dim i As Long
 Dim j As Long
 Dim Fno As Integer
 Dim OutColumn As String
    Const myPath As String = "C:\txt\"
 With Worksheets("Sheet1")
 For i = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
   Fno = FreeFile()
   Open myPath & "test_" & .Cells(1, i).Value & ".txt" For Output As #Fno
   For j = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
     OutColumn = .Cells(j, i).Value
    Print #Fno, OutColumn
   Next j
   OutColumn = Empty
   Close #Fno
 Next i
 End With
   Beep
 End Sub

このコードを開発タブ→Visual Basicをクリックして、表示→コードで出てきたコード編集ウインドウに張り付ける。
*開発タブがない場合は、ファイル→オプション→リボンのユーザー設定→「開発」にチェックを入れてOK

なお、保存場所を変更したい場合は「C:\txt\」を修正する。
実行前にこの保存場所を作成しておく必要があります。
Cドライブ直下に「txt」フォルダを作成後、このマクロを実行してみた。

意図通り、5個のファイルが作成された。ファイル名はtest_X.txtで、Xには1行目のCase番号となるようにした。
ファイル名を変更したい場合は「”test_” & .Cells(1, i).Value & “.txt”」を修正する。

ファイルの中身も意図通り、2行目以降のデータが入っている。

VBAの知識は全くありませんが、学生時代の別言語のプログラミングの知識でなんとかなりました。よかったよかった。

コメント(※承認制です)

タイトルとURLをコピーしました