[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『CSVファイルの2行目までだけ読み込みたい』(めろす)
CSVファイルの上から2行目だけ読み込みたいのですが、以下のコードをどう直したらよいでしょうか?教えて下さい。
CSVファイルの読み込みコードを探したところ、別なサイトで以下のようなコードを見つけました。
読み込み対象のファイルにはヘッダ行が2行あります。ヘッダ行だけ読み込みたいのです。全体としては行数がかなり多いので、ファイルの終わりまで処理を続けてほしくありません。
Sub test()
Dim FileType, Prompt As String
Dim FileNamePath As Variant
Dim textline, csvline() As String
Dim Rowcnt As Integer
Dim ch1 As Long
FileType = "CSV ファイル (*.csv),*.csv"
Prompt = "CSV File を選択してください"
FileNamePath = SelectFileNamePath(FileType, Prompt)
If FileNamePath = False Then
End
End If
ch1 = FreeFile
Open FileNamePath For Input As #ch1
Rowcnt = 1
Do While Not EOF(ch1)
'一行目を読み込む
Line Input #ch1, textline
'"を除く
textline = Replace(textline, """", "")
'テキストをカンマでちょん切って配列に読み込む
csvline() = Split(textline, ",")
Range(Cells(Rowcnt, 1), _
Cells(Rowcnt, UBound(csvline()) + 1)) = csvline()
Rowcnt = Rowcnt + 1
Loop
CloseFile:
Close #ch1
End Sub
ご教示よろしくお願いします。
2行目だけ。
先頭2行だけなら、1行目も処理をする。
Do While Not EOF(ch1)
Loop
を削除。
*-*-*-*
'一行目を読み込む
Line Input #ch1, textline
'もう一行読み込む
Line Input #ch1, textline
'"を除く
textline = Replace(textline, """", "")
'テキストをカンマでちょん切って配列に読み込む
csvline() = Split(textline, ",")
Range(Cells(Rowcnt, 1), _
Cells(Rowcnt, UBound(csvline()) + 1)) = csvline()
(あん)
あん様
なるほど、Line Inputって、Loopを使わなくても自動的に次の行に行くのですね。
ありがとうございました。 (めろす)
あん様
1行目と2行目両方読み込みたいので、2回同じ処理を繰り返せばよいのですね。
ありがとうございました。 (めろす)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.