Excel VBA質問箱 IV

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

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


6797 / 13644 ツリー ←次へ | 前へ→

【43003】テキストファイルの読み込み nanshi 06/9/29(金) 0:02 質問[未読]
【43004】Re:テキストファイルの読み込み かみちゃん 06/9/29(金) 0:21 回答[未読]
【43058】Re:テキストファイルの読み込み nanashi 06/10/1(日) 0:08 お礼[未読]

【43003】テキストファイルの読み込み
質問  nanshi  - 06/9/29(金) 0:02 -

引用なし
パスワード
   いつもお世話になっています

今回 EXCELで以下のテキストファイルを読み込み、FLD1:-FLD5:の:より右の値を特定のシートのA列(AAAA)からE列(12:15:00)に読み込み(1行目)、次にFLD1:がくると同様に2行目に読み込むようなマクロを考えています。このような場合、どうすればいいかご教授ください。(初心者なのですみません)

FLD1: AAAA
FLD2: BBBB
FLD3: 1111
FLD4: 2006/09/27
FLD5: 12:15:00
FLD1: CCCC
FLD2: BBBB
FLD3: 2222
FLD4: 2006/09/27
FLD5: 12:15:00

【43004】Re:テキストファイルの読み込み
回答  かみちゃん  - 06/9/29(金) 0:21 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> テキストファイルを読み込み、FLD1:-FLD5:の:より右の値を特定のシートのA列(AAAA)からE列(12:15:00)に読み込み(1行目)、次にFLD1:がくると同様に2行目に読み込む

FLD1:〜FLD5:までが必ず順番に抜け番なくあるものとします。
また、テキストファイルとマクロブックが同じフォルダにあるものとします。
このような前提ですと、以下のようなコードでできます。

Sub Sample()
 Dim strFileName As String
 Dim FSO, buf As String
 Dim lngRow As Long
 Dim vntData(4) As Variant

 lngRow = 1
 '入力ファイル名
 strFileName = ThisWorkbook.Path & "\Test.txt"
 
 Set FSO = CreateObject("Scripting.FileSystemObject")
 With FSO.GetFile(strFileName).OpenAsTextStream
  Do Until .AtEndOfLine
   buf = .ReadLine
   Select Case Left(buf, 6)
    Case "FLD1: "
     vntData(0) = Mid(buf, 7)
    Case "FLD2: "
     vntData(1) = Mid(buf, 7)
    Case "FLD3: "
     vntData(2) = Mid(buf, 7)
    Case "FLD4: "
     vntData(3) = Mid(buf, 7)
    Case "FLD5: "
     vntData(4) = Mid(buf, 7)
     Cells(lngRow, 1).Resize(, 5).Value = vntData
     lngRow = lngRow + 1
     Erase vntData
   End Select
  Loop
  .Close
 End With
 MsgBox "終了"
End Sub

【43058】Re:テキストファイルの読み込み
お礼  nanashi  - 06/10/1(日) 0:08 -

引用なし
パスワード
   かみちゃん
ありがとうございます。

なんとかできそうです。

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