- ベストアンサー
プログラムについて
前に「あいうえお」のような一行を表示させるプログラムについてお聞きしたんですけど、今度は一行目に「あいうえお」二行目に「かきくけこ」三行目に「1234567890」四行目に「abcd」のように一度に四行、またはそれ以上を表示させたいんです。 それで次のようにプログラムを作ったんですが最後の行のabcdが表示されるだけでした。 Private Sub Command1_Click() Dim strWork As String Open "c:\mydata\test.txt" For Input As #1 Do While Not EOF(1) Line Input #1, strWork Loop Close #1 MsgBox strWork End Sub 全部表示させるにはどうすればいいかお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
strWork が更新されて、最後の一文だけの情報になってます。 Private Sub Command1_Click() Dim strWork As String Open "c:\mydata\test.txt" For Input As #1 Do While Not EOF(1) Line Input #1, strWork MsgBox strWork Loop Close #1 End Sub メッセージボックスの場所を変えてみましょう
その他の回答 (3)
- yanmaa
- ベストアンサー率45% (207/457)
まずは回答 Private Sub Command1_Click() Dim strWork As String Dim strInputBuff As String Open "c:\mydata\test.txt" For Input As #1 strWork = "" Do While Not EOF(1) Line Input #1, strInputBuff strWork = strWork & strInputBuff & vbCrLf Loop Close #1 MsgBox strWork End Sub ここから説明 Do Line Input #1, strWork Loop とするとループ1回目の"strWork"は「あいうえお」で ループ2回目は「かきくけこ」です、3回目は「1234567890」、4回目は「abcd」が各々上書き設定されます。 5回目はEOFの為ループを抜けます。 よって最後の「abcd」がメッセージボックスとして表示されるという事です。 ですから回答のように一度別の変数へ追加しながら代入する必要があります。なお、「vbCrLf」は改行です。
お礼
丁寧な説明ありがとうございます。vbCrLfは改行なんですね(^^; ありがとうございました。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 このコードではtest.txtの最後の行しかstrWorkに格納されません。 1行ずつ読んでつなげていく必要があります。 次のようにします。 なお、ファイル番号は、FreeFile関数を使った方が確実です。 では。 Private Sub Command1_Click() Dim temp As String Dim strWork As String Dim fileNum As Integer fileNum = FreeFile strWork = "" Open "c:\mydata\test.txt" For Input As #fileNum Do While Not EOF(fileNum) Line Input #fileNum, temp strWork = strWork & temp & vbCrLf Loop Close #fileNum MsgBox strWork End Sub
お礼
こんにちは^^こういうやりかたもあったんですね、ありがとうございました。FreeFile関数についてわからないので学習しようと思います。
- sienna
- ベストアンサー率35% (51/145)
ようするにテキストファイルの中身を メッセージボックスに表示したいという事ですよね。 DO WHILE NOT EOF(1) LINE INPUT #1,BUFF1 BUFF1=BUFF1+CHR(13)+CHT(10) BUFF2=BUFF2+BUFF1 LOOP 参考まで。
お礼
アドバイスありがとうございました。そうなんです、テキストファイルの中身を メッセージボックスに表示したいんですがうまくいかなくて(^^; やってみますね、ありがとうございました。
お礼
ありがとうございました、strworkが更新されてたんですか(^^; これからも勉強します。