[リストへもどる]
一括表示

投稿時間:2002/12/11(Wed) 16:30
投稿者名:
Eメール:wimhseo@hotmail.com
URL :
タイトル:
ReDim Preserve
初めて書き込みします。

Open sFile For Input As #1
    index = 0
    
    Do Until EOF(1)
    ReDim Preserve sGakuseiNo(0 To index)
    ReDim Preserve sShimei(0 To index)
    ReDim Preserve iTen1(0 To index)
    ReDim Preserve iTen2(0 To index)
    
    index = index + 1
    
    Loop
    
    MsgBox index & "件読み込みました。", vbOKOnly, "表示"
    
    Close #1

途中のコードなんですけど、本当は278件くらいしかデータがないのに、indexのところで件数を数えてみると
1148件くらいでmsgboxで表示されてしまいます。
4回同じ繰り返しがされているのは判るのですが、それがどこで間違っているかわかりません。
お願いします。

投稿時間:2002/12/11(Wed) 16:49
投稿者名:A221
Eメール:
URL :
タイトル:
Re: ReDim Preserve
>     Do Until EOF(1)
>     ReDim Preserve sGakuseiNo(0 To index)
>     ReDim Preserve sShimei(0 To index)
>     ReDim Preserve iTen1(0 To index)
>     ReDim Preserve iTen2(0 To index)

ここの間に処理が入っているだろうと推測しますが、入力でデータを
とりこぼしていませんか?

EOFまで読むようになっているので、とりこぼしたらEOFまでに
ループが278回(既定の件数)よりもたくさん回ります。
    
>     index = index + 1
>    
>     Loop
>    
>     MsgBox index & "件読み込みました。", vbOKOnly, "表示"
>    
>     Close #1
>
> 途中のコードなんですけど、本当は278件くらいしかデータがないのに、indexのところで件数を数えてみると
> 1148件くらいでmsgboxで表示されてしまいます。
> 4回同じ繰り返しがされているのは判るのですが、それがどこで間違っているかわかりません。
> お願いします。

あと、ファイルナンバーは1固定ではなく、Freefile関数で拾ってきたほうがよいですよ。

投稿時間:2002/12/12(Thu) 09:04
投稿者名:
Eメール:
URL :
タイトル:
ありがとうございます!!
> >     Do Until EOF(1)
> >     ReDim Preserve sGakuseiNo(0 To index)
> >     ReDim Preserve sShimei(0 To index)
> >     ReDim Preserve iTen1(0 To index)
> >     ReDim Preserve iTen2(0 To index)
>
> ここの間に処理が入っているだろうと推測しますが、入力でデータを
> とりこぼしていませんか?
>
> EOFまで読むようになっているので、とりこぼしたらEOFまでに
> ループが278回(既定の件数)よりもたくさん回ります。
>      
> >     index = index + 1
> >    
> >     Loop
> >    
> >     MsgBox index & "件読み込みました。", vbOKOnly, "表示"
> >    
> >     Close #1
> >
> > 途中のコードなんですけど、本当は278件くらいしかデータがないのに、indexのところで件数を数えてみると
> > 1148件くらいでmsgboxで表示されてしまいます。
> > 4回同じ繰り返しがされているのは判るのですが、それがどこで間違っているかわかりません。
> > お願いします。
>
> あと、ファイルナンバーは1固定ではなく、Freefile関数で拾ってきたほうがよいですよ。


質問に答えていただいてありがとうございます。
もう一度考え直してやってみます。