プロが教えるわが家の防犯対策術!

昨日も質問させていただいたVBA初心者です。
いろいろ調べましたが解決しなかったので、
またまた質問させていただきます。

ファイルを読み込んで、それを別ファイルに保存したいのですが、
下記ですと、1行のみ保存されるだけでした。
この方法ですと、すべて保存されるはずと書かれていたのですが。
全くどこが悪いのか分かりません、よろしくお願いします。

Private Sub cmd_Click()
On Error GoTo Err_cmd_Click
Dim ReadFileName As String
Dim Contents As String
Dim WriteFileName As String

ReadFileName = "P:\dl_engine\logs1\service\20020223"
' ファイルを読み込む
Open ReadFileName For Input As #1
Input #1, Contents
Close #1

WriteFileName = "C:\Contents\data\Melody.csv"
' ファイルに保存
Open WriteFileName For Output As #2
Write #2, Contents
Close #2

'正常終了
Exit_cmd_Click:
Exit Sub

'エラー処理
Err_cmd_Click:
Beep
Select Case Err.Number
Case Else
MsgBox Err.Number & ":" & Err.Description
End Select
Resume Next
End Sub

A 回答 (1件)

こんにちは。

maruru01です。

読み込むところで、Doループでファイルの終端まで繰り返さないといけないですよ。
あと、Line Inputではダメですか?

Dim temp As String  '1行のデータの仮置き

Open ReadFileName For Input As #1
  Do Until EOF(1)
    Line Input #1, temp
    Contents = Contents & temp & vbCrLf
  Loop
Close #1
※Line Inputの場合はWriteではなくPrintを使用

それから、ファイル番号は1とか2とか自分で付けずに、FreeFile関数を使った方がいいですよ。
では。
    • good
    • 0
この回答へのお礼

さっそく試したところ、バッチリでした。
> ファイル番号は1とか2とか自分で付けずに、
> FreeFile関数を使った方がいいですよ。
そのようにしたいと思います。
よろしければ、理由など教えていただきますと助かります。

今回は本当にありがとうございました!

お礼日時:2002/04/03 16:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!