| 
    
     |  | ▼ピッピ さん: こんばんは。
 
 >.datというテキスト形式のデータファイルの中身が
 >会社名
 >担当者名
 >日付
 >ABC123456789
 >DEF987654321
 >   :
 >   :
 >というデータからエクセルに
 >   A        B   C   D
 >1 123456789  123  ABC  456
 >2 987654321  987  DEF  654
 >   :        :   :   :
 >といった感じに変換したいのですが方法を教えていただけないでしょうか?
 >A列にはアルファベット以外の9桁の数字を、B列には3番目〜5番目までの数字をC列には1番目から3番目
 >までのアルファベットをD列には6番目から8番目までの数字を入力するというコードを書きたいのですが
 セル分けするデータが「ABC123456789」と固定長と言う事でよいですか?
 方法はいくつかあると思いますが、
 
 1 Openステートメントで目的のテキストファイルをオープン。
 2 Line Inputステートメントで1行づつデータを読み込む。
 3 3行までは、空読み。
 4 4行目からは、規則に従ってセルに配置。
 5 データの終わりまで「4」を繰り返す。
 6 ファイルのクローズ。
 
 という手順で・・・、
 '========================================================
 Sub main()
 Const 空読み = 3
 Dim flnm As String
 Dim cnt As Long
 Dim dat As String
 flnm = "D:\My Documents\TESTエリア\smp1.txt"
 '↑読み込むテキストファイルを指定します。
 flno = FreeFile()
 Open flnm$ For Input As #flno
 Do Until EOF(flno) 'データが終わるまで繰り返す
 Line Input #flno, dat
 cnt = cnt + 1
 If cnt > 空読み Then '4行目以降だったら?
 Range(Cells(cnt - 空読み, 1), Cells(cnt - 空読み, 4)).Value = _
 Array(Right(dat, 9), Mid(dat, 4, 3), Left(dat, 3), Mid(dat, 6, 3))
 End If
 Loop
 Close #flno
 End Sub
 
 エラー処理はしていませんが・・・。
 確認してみて下さい。
 
 |  |