Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


57843 / 76734 ←次へ | 前へ→

【23625】Re:ファイルの変換
発言  ichinose  - 05/3/30(水) 20:40 -

引用なし
パスワード
   ▼ピッピ さん:
こんばんは。

>.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

エラー処理はしていませんが・・・。
確認してみて下さい。
1 hits

【23623】ファイルの変換 ピッピ 05/3/30(水) 17:36 質問
【23625】Re:ファイルの変換 ichinose 05/3/30(水) 20:40 発言
【23630】Re:ファイルの変換 Jaka 05/3/31(木) 9:14 発言
【23632】Re:ファイルの変換 ピッピ 05/3/31(木) 13:49 回答

57843 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free