Excelから行ごとにファイル出力

希ですが、Excelファイルにあるデータを行ごとにファイルへ出力したいことがあります。私の場合、あるソフトウェアに収集データを投入するため、この作業が不可欠です。

ファイルを結合するというのはテキストファイルならコマンドラインで簡単にできますし、部分的な抽出も用意ですが、全行をそれぞれとなると面倒です。

当然、手作業で行っていてはやっていられないので、VBAで処理していますが、希な作業のため、毎回、調べ直しています。これも無駄なので、自分用メモを兼ねて以下にVBA例をあげます。

Sub save2File()
    ' Dim ws As Worksheet
    ' Set ws = ActiveWorkbook.Worksheets(1)
    
    Dim i As Integer
    i = 2
    
    Dim datFile As String
    
    Do While Cells(i, 1).Value <> ""
        datFile = ActiveWorkbook.Path &amp; "\files\" &amp; Cells(i, 2) &amp; ".txt"
        Open datFile For Output As #1
        Print #1, "記述1"
        Print #1, Cells(i, 21).Value
        Print #1, ""
        Print #1, "記述2"
        Print #1, Cells(i, 22).Value
        Close #1
        i = i + 1
    Loop

End Sub

上の例ではExcelファイルのあるフォルダーに「files」というフォルダーを事前に用意しておくこととしています。このフォルダー内へ2列目をファイル名とし、21,22列目をその内容としたテキストファイルを生成しています。

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*