|
まんじゅう さん、おはようございます。
>EXCELにて、指定のファイルをインポートして
>グループ別のファイル(100バイトで改行)を出力するVBAの作成をしています。
>先頭行の1から8までが1グループでグループごとのファイルを出力したいです。
>先頭行9は最終
テキストファイルのようですので、LINE INPUTで取りこみました。
Sub test()
Dim s1 As String, flg As Boolean, NN As Long, LL As Long
flg = False
'
Open "C:\D\InputData.TXT" For Input As #1
Do Until EOF(1)
Line Input #1, s1
'ファイルを開いていなければFile Open
If flg = False Then GoSub OutOp
Print #2, s1
'8を書きこんだらFile Close
If Left(s1, 1) = "8" Then GoSub OutCl
Loop
Close #1
If flg = True Then GoSub OutCl
'メイン終了
Exit Sub
'書き出すファイルを開くサブルーチンです
OutOp:
NN = NN + 1
Open "C:\D\out" & Format(NN, "000") & ".txt" For Output As #2
flg = True
Return
'書き出すファイル閉じるサブルーチンです
OutCl:
Close #2
flg = False
Return
End Sub
こんな感じです。
ただし、改行コードがCR+LFでないもの(テレメーターやMAC由来のテキストファイル)では失敗します。FSOのReadLineメソッドを使用する方が安全かもしれません。
|
|