ここから本文です

解決済みの質問

VBAにてCSV取り込みのプログラムを以下のように作成したのですが、 取り込んだデ...

train_train1000さん

VBAにてCSV取り込みのプログラムを以下のように作成したのですが、

取り込んだデータを別のシートに書き込もうとした時エラーで落ちてしまいます。

何が悪いのでしょうか??

Dim strCSVFileName As String 'CSVファイル名(フルパス)
Dim strTextLine As String '読み込んだレコード内容
Dim strCsvLine() As String 'カンマで分離した内容
Dim GYO As Long '収容するセルの行
Dim lngREC As Long 'レコード件数カウンタ

'CSVファイル名取得
strCSVFileName = Sheets("Sheet1").Range("B7").Value

'FreeFile値の取得(以降この値で入出力する)
intFF = FreeFile
'指定ファイルをOPEN(入力モード)
Open strCSVFileName For Input As #intFF

On Error GoTo CloseFile

GYO = 1
'ファイルのEOF(End of File)まで繰り返す
Do Until EOF(intFF)
'レコード件数カウンタの加算
lngREC = lngREC + 1
'xlAPP.StatusBar = "読み込み中です....(" & lngREC & "レコード目)"

'レコードを読み込む
Line Input #intFF, strTextLine

'カンマで分離します
strCsvLine() = Split(strTextLine, ",")

'行を加算しA~E列にレコード内容を表示(先頭は2行目)
Sheets("Sheet2").Range(Cells(GYO, 1), Cells(GYO, UBound(strCsvLine()))) = strCsvLine() '配列渡し
→☆★☆★ここで落ちます。「Sheets("Sheet2").」がない状態だと落ちません。☆★☆★

GYO = GYO + 1
Loop

CloseFile:
'指定ファイルをCLOSE
Close #intFF

補足
ちなみに、CSVファイルを5行目から最終行-1行目までしか取り込みたくない場合は
どのようにプログラムを変更すればいいでしょうか???

よろしくお願いいたします。

違反報告

ベストアンサーに選ばれた回答

atozslyさん

Sheets("Sheet2").Range(Sheets("Sheet2").Cells(GYO, 1), Sheets("Sheet2").Cells(GYO, UBound(strCsvLine())))

、、と何となく気になったところを言ってみる、、

>CSVファイルを5行目から
For n = 1 To 4
Line Input 、、、
Next
、、って感じで読み飛ばせば、、
#ここにも必要ならEOFの判断が、、

>最終行-1行目
うーむ、、
いまのままだと先読みしてやる必要があるのかな、、

Line Input #intFF, strTextLine
Do Until EOF(intFF)
lngREC = lngREC + 1
strCsvLine() = Split(strTextLine, ",")
Sheets("Sheet2").Range。。。。。。
Line Input #intFF, strTextLine
Loop
#テストはしてないけどこんな感じでいけるんじゃ、、


FSOだと行数取れるからそれで回せるとおもうんですけど、、

  • 違反報告
  • 編集日時:2012/2/7 16:34:14
  • 回答日時:2012/2/7 15:55:29
この質問・回答は役に立ちましたか?
役に立った!

お役立ち度:お役立ち度 0点(5点満点中)0人が役に立つと評価しています。

この質問に付けられたタグ

タグとは

知恵ノートとは?

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

話題のキーワード

[カテゴリ:Office系(Word、Excel)]

ただいまの回答者

06時47分現在

1188
人が回答!!

1時間以内に2,094件の回答が寄せられています。

>>回答ひろばに行く


知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する