解決済みの質問
VBAにてCSV取り込みのプログラムを以下のように作成したのですが、 取り込んだデ...
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行目までしか取り込みたくない場合は
どのようにプログラムを変更すればいいでしょうか???
よろしくお願いいたします。
-
- 質問日時:
- 2012/2/7 15:29:04
-
- 解決日時:
- 2012/2/14 09:57:23
-
- 回答数:
- 1
-
- 閲覧数:
- 61
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
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人が役に立つと評価しています。

