[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.