|
▼ピッピ さん:
こんばんは。
>.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
エラー処理はしていませんが・・・。
確認してみて下さい。
|
|